Criação de um estágio S3¶
Um estágio externo (isto é, S3) especifica onde os arquivos de dados são armazenados para que os dados nos arquivos possam ser carregados em uma tabela.
Os dados podem ser carregados diretamente de arquivos em um bucket S3 especificado, com ou sem um caminho de pasta (ou prefixo, em terminologia do S3). Se o caminho terminar com /
, todos os objetos da pasta S3 correspondente serão carregados.
Nota
No estágio anterior, se você seguiu as instruções para configurar uma função do AWS IAM com as políticas e permissões necessárias para acessar seu bucket S3 externo, você já criou um estágio S3. Você pode ignorar esta etapa e continuar para Cópia de dados de um estágio S3.
Neste tópico:
Estágios externos¶
Além de carregar diretamente a partir dos arquivos em buckets S3, o Snowflake oferece suporte à criação de estágios externos nomeados, que encapsulam todas as informações necessárias para a preparação de arquivos, incluindo:
O bucket S3 onde os arquivos são preparados.
O objeto de integração de armazenamento nomeado ou credenciais S3 para o bucket (se ele estiver protegido).
Uma chave de criptografia (se os arquivos no bucket tiverem sido criptografados).
Os estágios externos nomeados são opcionais, mas recomendados quando você planeja carregar dados regularmente a partir do mesmo local.
Criação de um estágio externo¶
Você pode criar um estágio nomeado usando a interface da Web ou SQL:
Exemplo¶
O exemplo a seguir usa SQL para criar um estágio externo chamado my_s3_stage
que faz referência a um bucket S3 privado/protegido chamado mybucket
com um caminho de pasta chamado encrypted_files/
. A instrução CREATE inclui a integração de armazenamento s3_int
que foi criada em Opção 1: Configuração de uma integração de armazenamento do Snowflake para acessar o Amazon S3 para acessar o bucket S3. O estágio faz referência a um objeto de formato de arquivo nomeado chamado my_csv_format
, que descreve os dados nos arquivos armazenados no caminho do bucket:
CREATE STAGE my_s3_stage STORAGE_INTEGRATION = s3_int URL = 's3://mybucket/encrypted_files/' FILE_FORMAT = my_csv_format;
Nota
Ao especificar um objeto de formato de arquivo nomeado (ou opções individuais de formato de arquivo) para o estágio, não é necessário especificar posteriormente as mesmas opções de formato de arquivo no comando COPY usado para carregar dados do estágio.
Próximo: Cópia de dados de um estágio S3