Escolha de um estágio interno para os arquivos locais¶
Um estágio especifica onde os arquivos de dados são armazenados (isto é, “preparados”) para que os dados nos arquivos possam ser carregados em uma tabela.
Neste tópico:
Tipos de estágios internos¶
O Snowflake oferece suporte aos seguintes tipos de estágios internos:
Usuário
Tabela
Nomeado
Por padrão, a cada usuário e tabela no Snowflake é atribuído automaticamente um estágio interno para a preparação dos arquivos de dados a serem carregados. Além disso, você pode criar estágios internos nomeados.
As informações de preparação de arquivos são necessárias durante as duas etapas do processo de carregamento de dados:
Você deve especificar um estágio interno no comando PUT ao carregar arquivos no Snowflake.
Você deve especificar o mesmo estágio no comando COPY INTO <tabela> ao carregar dados em uma tabela a partir dos arquivos preparados.
Considere o melhor tipo de estágio para arquivos de dados específicos. Cada opção oferece benefícios e possíveis inconvenientes.
Estágios do usuário¶
Cada usuário tem um estágio do Snowflake alocado a ele por padrão para armazenar arquivos. Este estágio é uma opção conveniente se seus arquivos forem acessados apenas por um único usuário mas precisarem ser copiados em várias tabelas.
Os estágios do usuário têm as seguintes características e limitações:
Os estágios do usuário são referenciadas usando
@~
; por exemplo, useLIST @~
para listar os arquivos em um estágio do usuário.Ao contrário dos estágios nomeados, os estágios do usuário não podem ser alterados ou descartados.
Os estágios do usuário não oferecem suporte à configuração de opções de formato de arquivo. Em vez disso, você deve especificar o formato do arquivo e as opções de cópia como parte do comando COPY INTO <tabela>.
Esta opção não é apropriada se:
Vários usuários requerem acesso aos arquivos.
O usuário atual não tem privilégios INSERT sobre as tabelas nas quais os dados serão carregados.
Estágios da tabela¶
Nota
Tabelas Apache Iceberg™ no Snowflake não aceitam estágios de tabela.
Por padrão, cada tabela tem um estágio do Snowflake alocado a ela para armazenamento de arquivos. Este estágio é chamado de estágio de tabela.
Você pode usar um estágio de tabela se precisar copiar arquivos apenas para uma única tabela, mas quiser torná-los acessíveis a vários usuários.
Os estágios da tabela têm as seguintes características e limitações:
Um estágio de tabela tem o mesmo nome da tabela. Por exemplo, uma tabela nomeada
mytable
tem um estágio referenciado como@%mytable
.Um estágio de tabela é um estágio implícito vinculado a um objeto de tabela. Ele não é um objeto de banco de dados separado. Um estágio de tabela não tem privilégios próprios. Um estágio de tabela não é apropriado se você precisar copiar dados de arquivos para várias tabelas.
Para preparar arquivos em um estágio de tabela, consultar os arquivos ou descartá-los, você deve ser o proprietário da tabela (ter a função com o privilégio OWNERSHIP sobre a tabela).
Diferentemente de um estágio nomeado, você não pode alterar ou remover um estágio de tabela.
Os estágios de tabela não oferecem suporte à transformação de dados durante o carregamento (usando uma consulta como fonte para o comando COPY).
Estágios nomeados¶
Os estágios nomeados são objetos de banco de dados que proporcionam o maior grau de flexibilidade para o carregamento de dados:
Os usuários com os privilégios apropriados no estágio podem carregar dados em qualquer tabela.
Como o estágio é um objeto de banco de dados, aplicam-se as regras de segurança/acesso que se aplicam a todos os objetos. Os privilégios de usar um estágio podem ser concedidos ou revogados de funções. Além disso, a propriedade do estágio pode ser transferida para outra função.
Se você planeja preparar arquivos de dados que serão carregados apenas por você ou serão carregados somente em uma única tabela, talvez você prefira simplesmente usar seu estágio de usuário ou o estágio da tabela na qual você carregará dados.
Os estágios nomeados são opcionais mas recomendados quando você planeja carregamentos de dados regulares que podem envolver múltiplos usuários e/ou tabelas. Para instruções sobre como criar um estágio nomeado, consulte Criar um estágio nomeado abaixo.
Criação de um estágio nomeado¶
Você pode criar um estágio interno nomeado usando SQL ou a interface da Web:
Nota
Para criar um estágio interno, você deve usar uma função que receba ou herde os privilégios necessários. Para obter mais detalhes, consulte Requisitos de controle de acesso para CREATE STAGE.
Criação de um estágio nomeado usando SQL¶
Use o comando CREATE STAGE para criar um estágio nomeado usando SQL.
O exemplo a seguir cria um estágio interno que usa criptografia do lado do servidor:
CREATE STAGE my_int_stage ENCRYPTION = (TYPE = 'SNOWFLAKE_SSE');
Criação de um estágio nomeado usando Snowsight¶
Para usar Snowsight para criar um estágio interno nomeado, faça o seguinte:
Faça login no Snowsight.
No menu de navegação, selecione Create » Stage » Snowflake Managed.
Na caixa de diálogo Create Stage, insira um Stage Name.
Selecione o banco de dados e o esquema onde você deseja criar o estágio.
Opcionalmente, desmarque Directory table. As tabelas de diretório permitem que você veja os arquivos no estágio, mas exigem um warehouse e, portanto, têm um custo. Você pode optar por desmarcar essa opção por enquanto e ativar uma tabela de diretórios posteriormente.
Selecione o tipo de Encryption compatível com todos os arquivos do seu estágio. Para obter detalhes, consulte criptografia para estágios internos. Você não pode alterar o tipo de criptografia depois de criar o estágio.
Nota
Para habilitar o acesso aos dados, use a criptografia no lado do servidor. Caso contrário, os arquivos preparados serão criptografados no lado do cliente por padrão e ilegíveis quando baixados. Para obter mais informações, consulte Criptografia do lado do servidor para acesso a dados não estruturados.
Preencha os campos para descrever seu estágio. Para obter mais informações, consulte CREATE STAGE.
Selecione Create.
Criação de um estágio nomeado usando o Console clássico¶
Selecione Databases » <nome_bd> » Stages.
Próximo: Preparação de arquivos de dados de um sistema de arquivo local