CREATE STAGE¶
Cria um novo estágio chamado interno ou externo a ser usado para carregar dados de arquivos em tabelas Snowflake e descarregar dados de tabelas em arquivos:
- Estágio interno:
- Armazena arquivos de dados internamente no Snowflake. Para obter mais detalhes, consulte Escolha de um estágio interno para os arquivos locais. 
- Estágio externo:
- Faz referência a arquivos de dados armazenados em um local fora do Snowflake. Atualmente, os seguintes serviços de armazenamento em nuvem são suportados: - Buckets Amazon S3 
- Buckets Google Cloud Storage 
- Contêineres Microsoft Azure 
 - O local de armazenamento pode ser tanto privado/protegido ou público. - Não é possível acessar dados mantidos em classes de armazenamento em nuvem que exigem restauração antes que possam ser recuperados. Estas classes de armazenamento de arquivos incluem, por exemplo, a Amazon S3 Glacier Flexible Retrieval ou Glacier Deep Archive, o ainda o Microsoft Azure Archive Storage. 
Um estágio interno ou externo pode incluir uma tabela de diretórios. Tabelas de diretório armazenam um catálogo de arquivos preparados no armazenamento em nuvem.
Além disso, esse comando é compatível com as seguintes variantes:
- CREATE OR ALTER STAGE: cria um novo estágio se ele não existir ou altera um estágio existente. 
- CREATE STAGE … CLONE: cria um clone de um estágio existente. Para obter mais informações, consulte Considerações sobre clonagem. 
- Consulte também:
Sintaxe¶
-- Internal stage
CREATE [ OR REPLACE ] [ { TEMP | TEMPORARY } ] STAGE [ IF NOT EXISTS ] <internal_stage_name>
    internalStageParams
    directoryTableParams
  [ FILE_FORMAT = ( { FORMAT_NAME = '<file_format_name>' | TYPE = { CSV | JSON | AVRO | ORC | PARQUET | XML | CUSTOM } [ formatTypeOptions ] } ) ]
  [ COMMENT = '<string_literal>' ]
  [ [ WITH ] TAG ( <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' , ... ] ) ]
-- External stage
CREATE [ OR REPLACE ] [ { TEMP | TEMPORARY } ] STAGE [ IF NOT EXISTS ] <external_stage_name>
    externalStageParams
    directoryTableParams
  [ FILE_FORMAT = ( { FORMAT_NAME = '<file_format_name>' | TYPE = { CSV | JSON | AVRO | ORC | PARQUET | XML | CUSTOM } [ formatTypeOptions ] } ) ]
  [ COMMENT = '<string_literal>' ]
  [ [ WITH ] TAG ( <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' , ... ] ) ]
Onde:
internalStageParams ::=
  [ ENCRYPTION = (   TYPE = 'SNOWFLAKE_FULL'
                   | TYPE = 'SNOWFLAKE_SSE' ) ]
externalStageParams (for Amazon S3) ::=
  URL = '<protocol>://<bucket>[/<path>/]'
  [ AWS_ACCESS_POINT_ARN = '<string>' ]
  [ { STORAGE_INTEGRATION = <integration_name> } | { CREDENTIALS = ( {  { AWS_KEY_ID = '<string>' AWS_SECRET_KEY = '<string>' [ AWS_TOKEN = '<string>' ] } | AWS_ROLE = '<string>'  } ) } ]
  [ ENCRYPTION = ( [ TYPE = 'AWS_CSE' ] MASTER_KEY = '<string>'
                   | TYPE = 'AWS_SSE_S3'
                   | TYPE = 'AWS_SSE_KMS' [ KMS_KEY_ID = '<string>' ]
                   | TYPE = 'NONE' ) ]
  [ USE_PRIVATELINK_ENDPOINT = { TRUE | FALSE } ]
externalStageParams (for Google Cloud Storage) ::=
  URL = 'gcs://<bucket>[/<path>/]'
  [ STORAGE_INTEGRATION = <integration_name> ]
  [ ENCRYPTION = (   TYPE = 'GCS_SSE_KMS' [ KMS_KEY_ID = '<string>' ]
                   | TYPE = 'NONE' ) ]
externalStageParams (for Microsoft Azure) ::=
  URL = 'azure://<account>.blob.core.windows.net/<container>[/<path>/]'
  [ { STORAGE_INTEGRATION = <integration_name> } | { CREDENTIALS = ( [ AZURE_SAS_TOKEN = '<string>' ] ) } ]
  [ ENCRYPTION = (   TYPE = 'AZURE_CSE' MASTER_KEY = '<string>'
                   | TYPE = 'NONE' ) ]
  [ USE_PRIVATELINK_ENDPOINT = { TRUE | FALSE } ]
externalStageParams (for Amazon S3-compatible Storage) ::=
  URL = 's3compat://{bucket}[/{path}/]'
  ENDPOINT = '<s3_api_compatible_endpoint>'
  [ { CREDENTIALS = ( AWS_KEY_ID = '<string>' AWS_SECRET_KEY = '<string>' ) } ]
directoryTableParams (for internal stages) ::=
  [ DIRECTORY = ( ENABLE = { TRUE | FALSE }
                  [ AUTO_REFRESH = { TRUE | FALSE } ] ) ]
directoryTableParams (for Amazon S3) ::=
  [ DIRECTORY = ( ENABLE = { TRUE | FALSE }
                  [ REFRESH_ON_CREATE =  { TRUE | FALSE } ]
                  [ AUTO_REFRESH = { TRUE | FALSE } ] ) ]
directoryTableParams (for Google Cloud Storage) ::=
  [ DIRECTORY = ( ENABLE = { TRUE | FALSE }
                  [ AUTO_REFRESH = { TRUE | FALSE } ]
                  [ REFRESH_ON_CREATE =  { TRUE | FALSE } ]
                  [ NOTIFICATION_INTEGRATION = '<notification_integration_name>' ] ) ]
directoryTableParams (for Microsoft Azure) ::=
  [ DIRECTORY = ( ENABLE = { TRUE | FALSE }
                  [ REFRESH_ON_CREATE =  { TRUE | FALSE } ]
                  [ AUTO_REFRESH = { TRUE | FALSE } ]
                  [ NOTIFICATION_INTEGRATION = '<notification_integration_name>' ] ) ]
formatTypeOptions ::=
-- If TYPE = CSV
     COMPRESSION = AUTO | GZIP | BZ2 | BROTLI | ZSTD | DEFLATE | RAW_DEFLATE | NONE
     RECORD_DELIMITER = '<string>' | NONE
     FIELD_DELIMITER = '<string>' | NONE
     MULTI_LINE = TRUE | FALSE
     FILE_EXTENSION = '<string>'
     PARSE_HEADER = TRUE | FALSE
     SKIP_HEADER = <integer>
     SKIP_BLANK_LINES = TRUE | FALSE
     DATE_FORMAT = '<string>' | AUTO
     TIME_FORMAT = '<string>' | AUTO
     TIMESTAMP_FORMAT = '<string>' | AUTO
     BINARY_FORMAT = HEX | BASE64 | UTF8
     ESCAPE = '<character>' | NONE
     ESCAPE_UNENCLOSED_FIELD = '<character>' | NONE
     TRIM_SPACE = TRUE | FALSE
     FIELD_OPTIONALLY_ENCLOSED_BY = '<character>' | NONE
     NULL_IF = ( '<string>' [ , '<string>' ... ] )
     ERROR_ON_COLUMN_COUNT_MISMATCH = TRUE | FALSE
     REPLACE_INVALID_CHARACTERS = TRUE | FALSE
     EMPTY_FIELD_AS_NULL = TRUE | FALSE
     SKIP_BYTE_ORDER_MARK = TRUE | FALSE
     ENCODING = '<string>' | UTF8
-- If TYPE = JSON
     COMPRESSION = AUTO | GZIP | BZ2 | BROTLI | ZSTD | DEFLATE | RAW_DEFLATE | NONE
     DATE_FORMAT = '<string>' | AUTO
     TIME_FORMAT = '<string>' | AUTO
     TIMESTAMP_FORMAT = '<string>' | AUTO
     BINARY_FORMAT = HEX | BASE64 | UTF8
     TRIM_SPACE = TRUE | FALSE
     MULTI_LINE = TRUE | FALSE
     NULL_IF = ( '<string>' [ , '<string>' ... ] )
     FILE_EXTENSION = '<string>'
     ENABLE_OCTAL = TRUE | FALSE
     ALLOW_DUPLICATE = TRUE | FALSE
     STRIP_OUTER_ARRAY = TRUE | FALSE
     STRIP_NULL_VALUES = TRUE | FALSE
     REPLACE_INVALID_CHARACTERS = TRUE | FALSE
     IGNORE_UTF8_ERRORS = TRUE | FALSE
     SKIP_BYTE_ORDER_MARK = TRUE | FALSE
-- If TYPE = AVRO
     COMPRESSION = AUTO | GZIP | BROTLI | ZSTD | DEFLATE | RAW_DEFLATE | NONE
     TRIM_SPACE = TRUE | FALSE
     REPLACE_INVALID_CHARACTERS = TRUE | FALSE
     NULL_IF = ( '<string>' [ , '<string>' ... ] )
-- If TYPE = ORC
     TRIM_SPACE = TRUE | FALSE
     REPLACE_INVALID_CHARACTERS = TRUE | FALSE
     NULL_IF = ( '<string>' [ , '<string>' ... ] )
-- If TYPE = PARQUET
     COMPRESSION = AUTO | LZO | SNAPPY | NONE
     SNAPPY_COMPRESSION = TRUE | FALSE
     BINARY_AS_TEXT = TRUE | FALSE
     USE_LOGICAL_TYPE = TRUE | FALSE
     TRIM_SPACE = TRUE | FALSE
     USE_VECTORIZED_SCANNER = TRUE | FALSE
     REPLACE_INVALID_CHARACTERS = TRUE | FALSE
     NULL_IF = ( '<string>' [ , '<string>' ... ] )
-- If TYPE = XML
     COMPRESSION = AUTO | GZIP | BZ2 | BROTLI | ZSTD | DEFLATE | RAW_DEFLATE | NONE
     IGNORE_UTF8_ERRORS = TRUE | FALSE
     PRESERVE_SPACE = TRUE | FALSE
     STRIP_OUTER_ELEMENT = TRUE | FALSE
     DISABLE_AUTO_CONVERT = TRUE | FALSE
     REPLACE_INVALID_CHARACTERS = TRUE | FALSE
     SKIP_BYTE_ORDER_MARK = TRUE | FALSE
Nota
Não especifique as opções de cópia usando os comandos CREATE STAGE, ALTER STAGE, CREATE TABLE ou ALTER TABLE. Recomendamos que você use o comando COPY INTO <tabela> para especificar as opções de cópia.
Sintaxe da variante¶
CREATE OR ALTER STAGE¶
Cria um novo estágio, se ele ainda não existir, ou transforma um estágio existente no estágio definido na instrução. Uma instrução CREATE OR ALTER STAGE segue as regras de sintaxe de uma instrução CREATE STAGE e tem as mesmas limitações de uma instrução ALTER STAGE.
Para obter mais informações, consulte Notas de uso de CREATE OR ALTER STAGE.
-- Internal stage
CREATE OR ALTER [ { TEMP | TEMPORARY } ] STAGE <internal_stage_name>
    internalStageParams
    directoryTableParams
  [ FILE_FORMAT = ( { FORMAT_NAME = '<file_format_name>' | TYPE = { CSV | JSON | AVRO | ORC | PARQUET | XML | CUSTOM } [ formatTypeOptions ] } ) ]
  [ COMMENT = '<string_literal>' ]
-- External stage
CREATE OR ALTER [ { TEMP | TEMPORARY } ] STAGE <external_stage_name>
    externalStageParams
    directoryTableParams
  [ FILE_FORMAT = ( { FORMAT_NAME = '<file_format_name>' | TYPE = { CSV | JSON | AVRO | ORC | PARQUET | XML | CUSTOM } [ formatTypeOptions ] } ) ]
  [ COMMENT = '<string_literal>' ]
CREATE STAGE … CLONE¶
Cria um novo estágio com os mesmos valores de parâmetros:
CREATE [ OR REPLACE ] STAGE [ IF NOT EXISTS ] <name> CLONE <source_stage>
  [ ... ]
Para obter mais detalhes, consulte CREATE <objeto> … CLONE.
Parâmetros obrigatórios¶
- internal_stage_nameou .- external_stage_name
- Especifica o identificador do estágio; deve ser único para o esquema em que o estágio é criado. - Além disso, o identificador deve começar com um caractere alfabético e não pode conter espaços ou caracteres especiais, a menos que toda a cadeia de caracteres do identificador esteja entre aspas duplas (por exemplo, - "My object"). Os identificadores delimitados por aspas duplas também diferenciam letras maiúsculas de minúsculas.- Para obter mais detalhes, consulte Requisitos para identificadores. 
Nota
Ao criar um estágio externo, um URL também é necessário. Para obter mais detalhes, consulte Parâmetros do estágio externo (neste tópico).
Se um URL não for especificado, o Snowflake cria um estágio interno por padrão.
Parâmetros opcionais¶
- { TEMP | TEMPORARY }
- Especifica que o estágio criado é temporário e será descartado no final da sessão em que foi criado. Nota: - Quando um estágio externo temporário é descartado, apenas o estágio em si é abandonado; os arquivos de dados não são removidos. 
- Quando um estágio interno temporário é descartado, todos os arquivos do estágio são purgados do Snowflake, independentemente de seu estado de carga. Isso impede que arquivos em estágios internos temporários utilizem o armazenamento de dados e, consequentemente, resultando em encargos de armazenamento. No entanto, isso também significa que os arquivos preparados não podem ser recuperados através do Snowflake, uma vez que o estágio é descartado. - Dica - Se você planeja criar e usar estágios internos temporários, você deve manter cópias de seus arquivos de dados fora do Snowflake. 
 
- FILE_FORMAT = ( FORMAT_NAME = 'file_format_name' )ou .- FILE_FORMAT = ( TYPE = CSV | JSON | AVRO | ORC | PARQUET | XML | CUSTOM [ ... ] )
- Especifica o formato do arquivo para o estágio, que pode ser qualquer um dos dois: - FORMAT_NAME = 'file_format_name'
- Especifica um formato de arquivo nomeado existente a ser utilizado para o estágio. O formato do arquivo nomeado determina o tipo de formato (CSV, JSON etc.), bem como quaisquer outras opções de formato, para os arquivos de dados carregados utilizando este estágio. Para obter mais detalhes, consulte CREATE FILE FORMAT. 
- TYPE = CSV | JSON | AVRO | ORC | PARQUET | XML | CUSTOM [ ... ]
- Especifica o tipo de arquivos para o estágio: - O carregamento de dados de um estágio (usando COPY INTO <tabela>) abrange todos os tipos de formato suportados. 
- O descarregamento de dados em um estágio (usando COPY INTO <local>) abrange - CSV,- JSONou- PARQUET.
 - Se um tipo de formato de arquivo for especificado, opções adicionais específicas de formato podem ser determinadas. Para obter mais detalhes, consulte Opções de tipo de formato (formatTypeOptions) (neste tópico). - O tipo de formato - CUSTOMespecifica que o estágio subjacente contém dados não estruturados e só pode ser usado com a opção de cópia- FILE_PROCESSOR.
 - Padrão: - TYPE = CSV
Nota
FORMAT_NAME e TYPE são mutuamente exclusivos; você só pode especificar um ou outro para um estágio.
- COMMENT = 'string_literal'
- Especifica um comentário para o estágio. - Padrão: sem valor 
- TAG ( tag_name = 'tag_value' [ , tag_name = 'tag_value' , ... ] )
- Especifica o nome da tag e o valor da cadeia de caracteres dela. - O valor de tag é sempre uma cadeia de caracteres, e o número máximo de caracteres do valor da tag é 256. - Para obter informações sobre como especificar tags em uma instrução, consulte Cota de tags para objetos. 
Parâmetros do estágio interno (internalStageParams)¶
- [ ENCRYPTION = ( TYPE = 'SNOWFLAKE_FULL' | TYPE = 'SNOWFLAKE_SSE' ) ]
- Especifica o tipo de criptografia com suporte para todos os arquivos armazenados no estágio. Você não pode alterar o tipo de criptografia depois de criar o estágio. - TYPE = ...
- Especifica o tipo de criptografia utilizado. - Importante - Se você precisar de Tri-Secret Secure para conformidade de segurança, use o tipo de criptografia - SNOWFLAKE_FULLpara estágios internos.- SNOWFLAKE_SSEnão é compatível com Tri-Secret Secure.- Os valores possíveis são: - SNOWFLAKE_FULL: criptografia do lado do cliente e do lado do servidor. Os arquivos são criptografados por um cliente quando ele os carrega no estágio interno usando PUT. Snowflake usa uma chave de criptografia de 128 bits por padrão. Você pode configurar uma chave de 256 bits definindo o parâmetro CLIENT_ENCRYPTION_KEY_SIZE.- Todos os arquivos também são criptografados automaticamente usando criptografia forte AES-256 no lado do servidor. 
- SNOWFLAKE_SSE: somente criptografia do lado do servidor. Os arquivos são criptografados quando chegam ao estágio pelo serviço de nuvem onde sua conta Snowflake está hospedada.- Especifique a criptografia do lado do servidor se você planeja consultar URLs de arquivos pré-assinados para seus arquivos preparados. Para obter mais informações, consulte Tipos de URLs disponíveis para acessar arquivos. 
 
 - Padrão: - SNOWFLAKE_FULL
Parâmetros do estágio externo (externalStageParams)¶
- URL = 'cloud_specific_url'
- Se este parâmetro for omitido, o Snowflake cria um estágio interno - Importante - Coloque o URL entre aspas simples ( - '') para que o Snowflake identifique a cadeia de caracteres. Se as aspas forem omitidas, quaisquer credenciais que você fornecer poderão ser exibidas em texto simples no histórico. Recomendamos verificar a sintaxe da instrução CREATE STAGE antes de executá-la.- Quando você cria um estágio na interface da web do Snowflake, a interface delimita automaticamente os valores de campo com aspas, se necessário. 
- Coloque uma barra ( - /) no URL para filtrar o caminho de pasta especificado. Se a barra for omitida, todos os arquivos e pastas começando com o prefixo para o caminho especificado serão incluídos.- Note que a barra é obrigatória para acessar e recuperar arquivos de dados não estruturados no estágio. 
 - Amazon S3 - URL = 'protocol://bucket[/path/]'
- Especifica o URL para o local externo (bucket S3 existente) utilizado para armazenar arquivos de dados para carga/descarga, onde: - protocolé um dos seguintes:- s3refere-se ao armazenamento S3 em regiões AWS públicas fora da China.
- s3chinarefere-se ao armazenamento S3 em regiões AWS públicas na China.
- s3govrefere-se ao armazenamento S3 em regiões governamentais.
 - O acesso ao armazenamento em nuvem em uma região governamental usando uma integração de armazenamento está limitado às contas Snowflake hospedadas na mesma região governamental. - Da mesma forma, se você precisar acessar o armazenamento em nuvem em uma região da China, poderá usar uma integração de armazenamento somente de uma conta Snowflake hospedada na mesma região da China. - Nesses casos, use o parâmetro CREDENTIALS no comando CREATE STAGE (em vez de usar uma integração de armazenamento) para fornecer as credenciais para autenticação. 
- bucketé o nome do bucket S3 ou o alias no estilo bucket para um ponto de acesso ao bucket S3. Para um ponto de acesso S3, você também deve especificar um valor para o parâmetro- AWS_ACCESS_POINT_ARN.
- pathé um caminho opcional que diferencia maiúsculas de minúsculas para arquivos no local de armazenamento em nuvem (os arquivos têm nomes que começam com uma cadeia de caracteres comum) que limita o conjunto de arquivos. Os caminhos são chamados alternativamente de prefixos ou pastas por diferentes serviços de armazenamento em nuvem.
 
 - AWS_ACCESS_POINT_ARN = 'string'
- Especifica o nome de recurso da Amazon (ARN) para seu ponto de acesso S3. Necessário somente quando você especifica um alias de ponto de acesso S3 para seu armazenamento - URL.
 - Google Cloud Storage - URL = 'gcs://bucket[/path/]'
- Especifica o URL para o local externo (bucket GCS existente) utilizado para armazenar arquivos de dados para carga/descarga, onde: - bucketé o nome do bucket GCS.
- pathé um caminho opcional que distingue letras maiúsculas de minúsculas para arquivos no local de armazenamento em nuvem (ou seja, os arquivos têm nomes que começam com uma cadeia de caracteres comum) que limita o conjunto de arquivos. Os caminhos são chamados alternativamente de prefixos ou pastas por diferentes serviços de armazenamento em nuvem.
 
 - Microsoft Azure - URL = 'azure://account.blob.core.windows.net/container[/path/]'
- Especifica o URL para o local externo (contêiner Azure existente) utilizado para armazenar arquivos de dados para carregamento, onde: - accounté o nome da conta Azure (por exemplo,- myaccount). Use o ponto de extremidade- blob.core.windows.netpara todos os tipos com suporte de contas de armazenamento de blobs Azure, incluindo Data Lake Storage Gen2.- Observe que, atualmente, o acesso ao armazenamento Azure blob em regiões governamentais usando uma integração de armazenamento está limitado a contas Snowflake hospedadas no Azure na mesma região governamental. O acesso ao seu armazenamento blob a partir de uma conta hospedada fora da região governamental utilizando credenciais diretas é suportado. 
- containeré o nome do contêiner Azure (por exemplo,- mycontainer).
 - pathé um caminho opcional que distingue letras maiúsculas de minúsculas para arquivos no local de armazenamento em nuvem (ou seja, os arquivos têm nomes que começam com uma cadeia de caracteres comum) que limita o conjunto de arquivos. Os caminhos são chamados alternativamente de prefixos ou pastas por diferentes serviços de armazenamento em nuvem.
 
 - Padrão: sem valor (um estágio interno é criado) 
- STORAGE_INTEGRATION = integration_nameou .- CREDENTIALS = ( cloud_specific_credentials )
- Necessário apenas se o local de armazenamento for privado/protegido; não necessário para buckets/contêineres públicos - Amazon S3 - STORAGE_INTEGRATION = integration_name
- Especifica o nome da integração de armazenamento utilizada para delegar a responsabilidade de autenticação do armazenamento em nuvem externo a uma entidade de gerenciamento de identidade e acesso (IAM) do Snowflake. Para obter mais detalhes, consulte CREATE STORAGE INTEGRATION. - Nota - Recomendamos fortemente o uso de integrações de armazenamento. Esta opção evita a necessidade de fornecer credenciais de armazenamento em nuvem usando o parâmetro CREDENTIALS ao criar estágios ou carregar dados. 
- O acesso ao armazenamento S3 em regiões governamentais usando uma integração de armazenamento está limitado a contas Snowflake hospedadas no AWS na mesma região governamental. O acesso ao seu armazenamento S3 a partir de uma conta hospedada fora da região governamental usando credenciais diretas é suportado. 
 
- CREDENTIALS = ( AWS_KEY_ID = 'string' AWS_SECRET_KEY = 'string' [ AWS_TOKEN = 'string' ] )ou .- CREDENTIALS = ( AWS_ROLE = 'string' )
- Especifica as credenciais de segurança para conexão ao AWS e acesso ao bucket S3 privado/protegido onde os arquivos a serem carregados/descarregados são preparados. Para obter mais informações, consulte Configuração de acesso seguro ao Amazon S3. - As credenciais especificadas dependerão da associação das permissões de acesso do Snowflake para o bucket com um usuário ou função do AWS IAM (Identity & Access Management): - Usuário IAM: as credenciais de IAM são necessárias. As credenciais temporárias (também conhecidas como «com escopo») são geradas por AWS Security Token Service (STS) e consiste em três componentes: - AWS_KEY_ID
- AWS_SECRET_KEY
- AWS_TOKEN
 - Todos os três são obrigatórios para ter acesso a um bucket privado/protegido. Após um período designado, as credenciais temporárias expiram e não podem mais ser utilizadas. Você deve então gerar um novo conjunto de credenciais temporárias válidas. - Importante - O comando COPY também permite o uso de credenciais permanentes (ou «de longo prazo»); no entanto, por razões de segurança, o Snowflake não recomenda o uso delas. Se você precisar usar credenciais permanentes, o Snowflake recomenda gerar periodicamente novas credenciais permanentes para estágios externos. 
- Função IAM: omitir as credenciais de segurança e chaves de acesso e, em vez disso, identificar a função usando - AWS_ROLEe especificar a função AWS ARN (Amazon Resource Name).
 
 - Google Cloud Storage - STORAGE_INTEGRATION = integration_name
- Especifica o nome da integração de armazenamento utilizada para delegar a responsabilidade de autenticação do armazenamento em nuvem externo a uma entidade de gerenciamento de identidade e acesso (IAM) do Snowflake. Para obter mais detalhes, consulte CREATE STORAGE INTEGRATION. 
 - Microsoft Azure - STORAGE_INTEGRATION = integration_name
- Especifica o nome da integração de armazenamento utilizada para delegar a responsabilidade de autenticação do armazenamento em nuvem externo a uma entidade de gerenciamento de identidade e acesso (IAM) do Snowflake. Para obter mais detalhes, consulte CREATE STORAGE INTEGRATION. - Nota - Recomendamos fortemente o uso de integrações de armazenamento. Esta opção evita a necessidade de fornecer credenciais de armazenamento em nuvem usando o parâmetro CREDENTIALS ao criar estágios ou carregar dados. 
- O acesso ao armazenamento Azure blob em regiões governamentais usando uma integração de armazenamento está limitado a contas Snowflake hospedadas no Azure na mesma região governamental. O acesso ao seu armazenamento blob a partir de uma conta hospedada fora da região governamental utilizando credenciais diretas é suportado. 
 
- CREDENTIALS = ( AZURE_SAS_TOKEN = 'string' )
- Especifica o símbolo SAS (assinatura de acesso compartilhado) para conexão com o Azure e acesso ao contêiner privado/protegido onde os arquivos contendo os dados carregados são preparados. As credenciais são geradas pelo Azure. 
 - Padrão: sem valor (não são fornecidas credenciais para o estágio externo) 
- ENCRYPTION = ( cloud_specific_encryption )
- Necessário ao carregar de arquivos criptografados ou descarregar em arquivos criptografados. Não é necessário se o local de armazenamento e os arquivos não forem criptografados. - Carregamento de dados:
- Modifica as configurações de criptografia usadas para descriptografar os arquivos criptografados no local de armazenamento e extrair dados. 
- Descarregamento de dados:
- Modifica as configurações de criptografia usadas para criptografar os arquivos descarregados no local de armazenamento. 
 - Amazon S3 - ENCRYPTION = ( [ TYPE = 'AWS_CSE' ] MASTER_KEY = 'string' | TYPE = 'AWS_SSE_S3' | TYPE = 'AWS_SSE_KMS' [ KMS_KEY_ID = 'string' ] | TYPE = 'NONE' )- TYPE = ...
- Especifica o tipo de criptografia utilizado. Os valores possíveis são: - AWS_CSE: criptografia do lado do cliente (exige um valor- MASTER_KEY). Atualmente, a chave mestra do lado do cliente que você fornece só pode ser uma chave simétrica. Quando um valor- MASTER_KEYé fornecido, o Snowflake assume- TYPE = AWS_CSE(quando um valor- MASTER_KEYé fornecido,- TYPEnão é necessário).
- AWS_SSE_S3: criptografia do lado do servidor que não exige configurações adicionais de criptografia.
- AWS_SSE_KMS: criptografia do lado do servidor que aceita um valor opcional- KMS_KEY_ID.
 - Para obter mais informações sobre os tipos de criptografia, consulte a documentação do AWS sobre criptografia do lado do cliente ou criptografia do lado do servidor. - NONE: sem criptografia.
 
- MASTER_KEY = 'string'(aplica-se somente à criptografia- AWS_CSE)
- Especifica a chave mestra do lado do cliente utilizada para criptografar os arquivos no bucket. A chave mestra deve ser uma chave de 128 bits ou 256 bits na forma codificada em Base64. 
- KMS_KEY_ID = 'string'(aplica-se somente à criptografia- AWS_SSE_KMS)
- Opcionalmente especifica a ID para a chave AWS gerenciada por KMS usada para criptografar arquivos descarregados no bucket. Se nenhum valor for fornecido, sua ID de chave KMS é usada para criptografar arquivos ao descarregar. - Observe que este valor é ignorado para o carregamento de dados. 
 - Padrão: - NONE- Google Cloud Storage - ENCRYPTION = ( TYPE = 'GCS_SSE_KMS' [ KMS_KEY_ID = 'string' ] | TYPE = 'NONE' )- TYPE = ...
- Especifica o tipo de criptografia utilizado. Os valores possíveis são: - GCS_SSE_KMS: criptografia do lado do servidor que aceita um valor opcional- KMS_KEY_ID.- Para obter mais informações, consulte a documentação do Google Cloud: 
- NONE: sem criptografia.
 
- KMS_KEY_ID = 'string'(aplica-se somente à criptografia- GCS_SSE_KMS)
- Opcionalmente, especifica a ID da chave gerenciada por KMS da nuvem que é usada para criptografar arquivos descarregados no bucket. Se nenhum valor for fornecido, sua ID de chave padrão KMS definida no bucket é usada para criptografar arquivos ao descarregar. - Observe que este valor é ignorado para o carregamento de dados. A operação de carregamento deve ser bem sucedida se a conta de serviço tiver permissões suficientes para descriptografar os dados no bucket. 
 - Padrão: - NONE- Microsoft Azure - ENCRYPTION = ( TYPE = 'AZURE_CSE' MASTER_KEY = 'string' | TYPE = 'NONE' )- TYPE = ...
- Especifica o tipo de criptografia utilizado. Os valores possíveis são: - AZURE_CSE: criptografia do lado do cliente (exige um valor MASTER_KEY). Para obter mais informações, consulte as informações sobre criptografia do lado do cliente na documentação do Microsoft Azure.
- NONE: sem criptografia.
 
- MASTER_KEY = 'string'(aplica-se somente à criptografia AZURE_CSE)
- Especifica a chave mestra do lado do cliente usada para criptografar ou descriptografar arquivos. A chave mestra deve ser uma chave de 128 bits ou 256 bits na forma codificada em base64. 
 - Padrão: - NONE
- USE_PRIVATELINK_ENDPOINT = { TRUE | FALSE }
- Especifica se você deve usar a conectividade privada para um estágio externo a fim de reforçar sua postura de segurança. - Se o estágio externo usar uma integração de armazenamento e essa integração estiver configurada para conectividade privada, defina esse parâmetro como FALSE. - Para obter informações sobre como usar esse parâmetro, consulte uma das seguintes opções: 
Parâmetros do estágio externo para armazenamento compatível com Amazon S3 (externalStageParams)¶
URL = 's3compat://bucket[/path/]'
Especifica o URL do local externo (bucket existente acessado usando um ponto de extremidade compatível com API S3) usado para armazenar arquivos de dados, onde:
bucketé o nome do bucket.
pathé um caminho opcional que diferencia maiúsculas e minúsculas (ou prefixo na terminologia S3) para arquivos no local de armazenamento em nuvem (ou seja, arquivos com nomes que começam com uma cadeia de caracteres comum).
ENDPOINT = 's3_api_compatible_endpoint'
Domínio totalmente qualificado que aponta para o ponto de extremidade de API compatível com S3.
Parâmetros da tabela de diretório (directoryTableParams)¶
Estágios internos nomeados¶
- ENABLE = { TRUE | FALSE }
- Especifica se deve ser ativada uma tabela de diretório no estágio interno nomeado. - Padrão: - FALSE
- AUTO_REFRESH = { TRUE | FALSE }
- Especifica se o Snowflake deve atualizar automaticamente os metadados da tabela de diretório quando arquivos de dados novos ou atualizados estiverem disponíveis no estágio interno nomeado. - TRUE
- O Snowflake atualiza automaticamente os metadados da tabela de diretório. 
- FALSE
- O Snowflake não atualiza automaticamente os metadados da tabela de diretório. Você deve atualizar manualmente os metadados da tabela de diretório periodicamente usando ALTER STAGE … REFRESH para sincronizar os metadados com a lista atual de arquivos no caminho do estágio. 
 - Padrão: - FALSE
Estágios externos¶
Amazon S3
ENABLE = { TRUE | FALSE }
Especifica se deve ser adicionada uma tabela de diretório ao estágio. Quando o valor é TRUE, uma tabela de diretório é criada com o estágio.
Padrão:
FALSE
REFRESH_ON_CREATE = { TRUE | FALSE }
Especifica se deve atualizar automaticamente os metadados da tabela de diretório uma vez, imediatamente após a criação do estágio. A atualização dos metadados da tabela de diretório sincroniza os metadados com a lista atual de arquivos de dados no caminho especificado do estágio. Esta ação é necessária para que os metadados registrem quaisquer arquivos de dados existentes no estágio nomeado especificado na configuração de
URL =.
TRUE
O Snowflake atualiza automaticamente os metadados da tabela de diretório uma vez após a criação do estágio.
Nota
Se o URL do armazenamento em nuvem especificado contiver cerca de 1 milhão de arquivos ou mais, recomendamos que você defina
REFRESH_ON_CREATE = FALSE. Após criar o estágio, atualize os metadados da tabela de diretório de forma incremental, executando as instruções ALTER STAGE … REFRESH que especificam subcaminhos no local de armazenamento (ou seja, subconjuntos de arquivos a serem incluídos na atualização) até que os metadados incluam todos os arquivos no local.
FALSE
O Snowflake não atualiza automaticamente os metadados da tabela de diretório. Para registrar quaisquer arquivos de dados existentes no estágio, você deve atualizar manualmente os metadados da tabela de diretório uma vez usando ALTER STAGE … REFRESH.
Padrão:
TRUE
AUTO_REFRESH = { TRUE | FALSE }
Especifica se o Snowflake deve permitir acionar atualizações automáticas dos metadados da tabela de diretório quando os arquivos de dados novos ou atualizados estiverem disponíveis no estágio externo nomeado especificado no valor de URL.
TRUE
O Snowflake permite acionar a atualização automática dos metadados da tabela de diretório.
FALSE
O Snowflake não permite acionar atualizações automáticas dos metadados da tabela de diretório. Você deve atualizar manualmente os metadados da tabela de diretório periodicamente usando ALTER STAGE … REFRESH para sincronizar os metadados com a lista atual de arquivos no caminho do estágio.
Padrão:
FALSEGoogle Cloud Storage
ENABLE = { TRUE | FALSE }
Especifica se deve ser adicionada uma tabela de diretório ao estágio. Quando o valor é TRUE, uma tabela de diretório é criada com o estágio.
Padrão:
FALSE
REFRESH_ON_CREATE = { TRUE | FALSE }
Especifica se deve atualizar automaticamente os metadados da tabela de diretório uma vez, imediatamente após a criação do estágio. A atualização dos metadados da tabela de diretório sincroniza os metadados com a lista atual de arquivos de dados no caminho especificado do estágio. Esta ação é necessária para que os metadados registrem quaisquer arquivos de dados existentes no estágio nomeado especificado na configuração de
URL =.
TRUE
O Snowflake atualiza automaticamente os metadados da tabela de diretório uma vez após a criação do estágio.
Nota
Se o URL do armazenamento em nuvem especificado contiver cerca de 1 milhão de arquivos ou mais, recomendamos que você defina
REFRESH_ON_CREATE = FALSE. Após criar o estágio, atualize os metadados da tabela de diretório de forma incremental, executando as instruções ALTER STAGE … REFRESH que especificam subcaminhos no local de armazenamento (ou seja, subconjuntos de arquivos a serem incluídos na atualização) até que os metadados incluam todos os arquivos no local.
FALSE
O Snowflake não atualiza automaticamente os metadados da tabela de diretório. Para registrar quaisquer arquivos de dados existentes no estágio, você deve atualizar manualmente os metadados da tabela de diretório uma vez usando ALTER STAGE … REFRESH.
Padrão:
TRUE
AUTO_REFRESH = { TRUE | FALSE }
Especifica se o Snowflake deve permitir acionar atualizações automáticas dos metadados da tabela de diretório quando os arquivos de dados novos ou atualizados estiverem disponíveis no estágio externo nomeado especificado na configuração de
[ WITH ] LOCATION =.
TRUE
O Snowflake permite acionar a atualização automática dos metadados da tabela de diretório.
FALSE
O Snowflake não permite acionar atualizações automáticas dos metadados da tabela de diretório. Você deve atualizar manualmente os metadados da tabela de diretório periodicamente usando ALTER STAGE … REFRESH para sincronizar os metadados com a lista atual de arquivos no caminho do estágio.
NOTIFICATION_INTEGRATION = 'notification_integration_name'
Especifica o nome da integração de notificação usada para atualizar automaticamente os metadados da tabela de diretório usando notificações Pub/Sub GCS. Uma integração de notificação é um objeto Snowflake que fornece uma interface entre o Snowflake e serviços de enfileiramento de mensagens de terceiros.
Microsoft Azure
ENABLE = { TRUE | FALSE }
Especifica se deve ser adicionada uma tabela de diretório ao estágio. Quando o valor é TRUE, uma tabela de diretório é criada com o estágio.
Padrão:
FALSE
REFRESH_ON_CREATE = { TRUE | FALSE }
Especifica se deve atualizar automaticamente os metadados da tabela de diretório uma vez, imediatamente após a criação do estágio. A atualização dos metadados da tabela de diretório sincroniza os metadados com a lista atual de arquivos de dados no caminho especificado do estágio. Esta ação é necessária para que os metadados registrem quaisquer arquivos de dados existentes no estágio nomeado especificado na configuração de
URL =.
TRUE
O Snowflake atualiza automaticamente os metadados da tabela de diretório uma vez após a criação do estágio.
Nota
Se o URL do armazenamento em nuvem especificado contiver cerca de 1 milhão de arquivos ou mais, recomendamos que você defina
REFRESH_ON_CREATE = FALSE. Após criar o estágio, atualize os metadados da tabela de diretório de forma incremental, executando as instruções ALTER STAGE … REFRESH que especificam subcaminhos no local de armazenamento (ou seja, subconjuntos de arquivos a serem incluídos na atualização) até que os metadados incluam todos os arquivos no local.
FALSE
O Snowflake não atualiza automaticamente os metadados da tabela de diretório. Para registrar quaisquer arquivos de dados existentes no estágio, você deve atualizar manualmente os metadados da tabela de diretório uma vez usando ALTER STAGE … REFRESH.
Padrão:
TRUE
AUTO_REFRESH = { TRUE | FALSE }
Especifica se o Snowflake deve permitir acionar atualizações automáticas dos metadados da tabela de diretório quando os arquivos de dados novos ou atualizados estiverem disponíveis no estágio externo nomeado especificado na configuração de
[ WITH ] LOCATION =.
TRUE
O Snowflake permite acionar a atualização automática dos metadados da tabela de diretório.
FALSE
O Snowflake não permite acionar atualizações automáticas dos metadados da tabela de diretório. Você deve atualizar manualmente os metadados da tabela de diretório periodicamente usando ALTER STAGE … REFRESH para sincronizar os metadados com a lista atual de arquivos no caminho do estágio.
Padrão:
FALSE
NOTIFICATION_INTEGRATION = 'notification_integration_name'
Especifica o nome da integração da notificação usada para atualizar automaticamente os metadados da tabela de diretório usando as notificações de Event Grid do Azure. Uma integração de notificação é um objeto Snowflake que fornece uma interface entre o Snowflake e serviços de enfileiramento de mensagens de terceiros.
Opções de tipo de formato (formatTypeOptions)¶
Dependendo do tipo de formato de arquivo especificado (FILE_FORMAT = ( TYPE = ... )), você pode incluir uma ou mais das seguintes opções de formato específicas (separadas por espaços em branco, vírgulas ou novas linhas):
TYPE = CSV¶
- COMPRESSION = AUTO | GZIP | BZ2 | BROTLI | ZSTD | DEFLATE | RAW_DEFLATE | NONE
- Uso:
- Carregamento de dados, descarregamento de dados e tabelas externas 
- Definição:
- Ao carregar dados, especifica o algoritmo de compressão atual para o arquivo de dados. O Snowflake usa esta opção para detectar como um arquivo de dados já comprimido foi comprimido para que os dados comprimidos no arquivo possam ser extraídos para carregamento. 
- Ao descarregar os dados, comprime o arquivo de dados usando o algoritmo de compressão especificado. 
 
- Valores:
- Valores suportados - Notas - AUTO- Ao carregar dados, o algoritmo de compressão detectado automaticamente, exceto para arquivos comprimidos com Brotli, que atualmente não podem ser detectados automaticamente. Ao descarregar os dados, os arquivos são automaticamente comprimidos usando o padrão, que é o gzip. - GZIP- BZ2- BROTLI- Deve ser especificado ao carregar/descarregar arquivos comprimidos com Brotli. - ZSTD- Zstandard v0.8 (e superior) é suportado. - DEFLATE- Arquivos compactados Deflate (com cabeçalho zlib, RFC1950). - RAW_DEFLATE- Arquivos compactados Raw Deflate (sem cabeçalho, RFC1951). - NONE- Ao carregar dados, indica que os arquivos não foram comprimidos. Ao descarregar os dados, especifica que os arquivos descarregados não são comprimidos. 
- Padrão:
- AUTO
 
- RECORD_DELIMITER = 'string' | NONE
- Uso:
- Carregamento de dados, descarregamento de dados e tabelas externas 
- Definição:
- Um ou mais caracteres de byte único ou multibyte que separam registros em um arquivo de entrada (carregamento de dados) ou arquivo não carregado (descarregamento de dados). Aceita sequências de escape comuns ou os seguintes caracteres de byte único ou multibyte: - Caracteres de byte único:
- Valores octais (com prefixo - \\) ou valores hexadecimais (com prefixo- 0xou- \x). Por exemplo, para registros delimitados por acento circunflexo (- ^), especifique o valor octal (- \\136) ou hexadecimal (- 0x5e).
- Caracteres multibyte:
- Valores hexadecimais (com prefixo - \x). Por exemplo, para registros delimitados pelo caractere de centavo (- ¢), especifique o valor hexadecimal (- \xC2\xA2).- O delimitador para RECORD_DELIMITER ou FIELD_DELIMITER não pode ser uma subcadeia de caracteres do delimitador para a outra opção de formato de arquivo (por exemplo, - FIELD_DELIMITER = 'aa' RECORD_DELIMITER = 'aabb').
 - O delimitador especificado deve ser um caractere válido UTF-8 e não uma sequência aleatória de bytes. Observe também que o delimitador é limitado a um máximo de 20 caracteres. - Também aceita um valor de - NONE.
- Padrão:
- Carregamento de dados:
- Caractere de nova linha. Note que a “nova linha” é lógica de tal forma que - \r\nserá entendido como uma nova linha para arquivos em uma plataforma Windows.
- Descarregamento de dados:
- Caractere de nova linha ( - \n).
 
 
- FIELD_DELIMITER = 'string' | NONE
- Uso:
- Carregamento de dados, descarregamento de dados e tabelas externas 
- Definição:
- Um ou mais caracteres de byte único ou multibyte que separam campos em um arquivo de entrada (carregamento de dados) ou arquivo não carregado (descarregamento de dados). Aceita sequências de escape comuns ou os seguintes caracteres de byte único ou multibyte: - Caracteres de byte único:
- Valores octais (com prefixo - \\) ou valores hexadecimais (com prefixo- 0xou- \x). Por exemplo, para registros delimitados por acento circunflexo (- ^), especifique o valor octal (- \\136) ou hexadecimal (- 0x5e).
- Caracteres multibyte:
- Valores hexadecimais (com prefixo - \x). Por exemplo, para registros delimitados pelo caractere de centavo (- ¢), especifique o valor hexadecimal (- \xC2\xA2).- O delimitador para RECORD_DELIMITER ou FIELD_DELIMITER não pode ser uma subcadeia de caracteres do delimitador para a outra opção de formato de arquivo (por exemplo, - FIELD_DELIMITER = 'aa' RECORD_DELIMITER = 'aabb').- Nota - Para caracteres não ASCII, você deve usar o valor da sequência de bytes hexadecimais para obter um comportamento determinístico. 
 - O delimitador especificado deve ser um caractere válido UTF-8 e não uma sequência aleatória de bytes. Observe também que o delimitador é limitado a um máximo de 20 caracteres. - Também aceita um valor de - NONE.
- Padrão:
- vírgula ( - ,)
 
- MULTI_LINE = TRUE | FALSE
- Uso:
- Carregamento de dados e tabelas externas 
- Definição:
- Booliano que especifica se várias linhas são permitidas. Se MULTI_LINE estiver definido como - FALSEe o delimitador de registro especificado estiver presente em um campo CSV, o registro que contém o campo será interpretado como um erro.
- Padrão:
- TRUE
 - Nota - Se você estiver carregando arquivos CSV grandes não compactados (maiores que 128MB) que seguem a especificação RFC4180, o Snowflake oferece suporte à verificação paralela desses arquivos CSV quando MULTI_LINE está definido como - FALSE, COMPRESSION está definido como- NONEe ON_ERROR está definido como- ABORT_STATEMENTou- CONTINUE.
- FILE_EXTENSION = 'string' | NONE
- Uso:
- Apenas descarregamento de dados 
- Definição:
- Especifica a extensão para arquivos descarregados em um estágio. Aceita qualquer extensão. O usuário é responsável por especificar uma extensão de arquivo que possa ser lida por qualquer software ou serviços desejados. 
- Padrão:
- nulo, ou seja, a extensão do arquivo é determinada pelo tipo de formato: - .csv[compression], em que- compressioné a extensão adicionada pelo método de compressão, se- COMPRESSIONestiver definido.
 - Nota - Se a opção de cópia - SINGLEfor- TRUE, então o comando COPY descarrega um arquivo sem uma extensão de arquivo por padrão. Para especificar uma extensão de arquivo, forneça um nome de arquivo e uma extensão no caminho- internal_locationou- external_location(por exemplo,- copy into @stage/data.csv).
- PARSE_HEADER = TRUE | FALSE
- Uso:
- Somente carregamento de dados 
- Definição:
- Booliano que especifica se deve usar os cabeçalhos da primeira linha nos arquivos de dados para determinar os nomes das colunas. 
 - Esta opção de formato de arquivo é aplicada apenas às seguintes ações: - Detecção automática de definições de coluna usando a função INFER_SCHEMA. 
- Carregamento de dados CSV em colunas separadas usando a função INFER_SCHEMA e a opção de cópia MATCH_BY_COLUMN_NAME. 
 - Se a opção estiver definida como TRUE, os cabeçalhos da primeira linha serão usados para determinar os nomes das colunas. O valor padrão FALSE retornará os nomes das colunas como c , onde é a posição da coluna. - Nota - Esta opção não é suportada para tabelas externas. 
- A opção SKIP_HEADER não é suportada se você definir - PARSE_HEADER = TRUE.
 - Padrão:
- FALSE
 
- SKIP_HEADER = integer
- Uso:
- Carregamento de dados e tabelas externas 
- Definição:
- Número de linhas no início do arquivo a ser pulado. 
 - Observe que SKIP_HEADER não usa os valores RECORD_DELIMITER ou FIELD_DELIMITER para determinar o que é uma linha de cabeçalho; em vez disso, simplesmente ignora o número especificado de linhas delimitadas de CRLF (Carriage Return, Line Feed) no arquivo. RECORD_DELIMITER e FIELD_DELIMITER são então usados para determinar as linhas de dados a serem carregadas. - Padrão:
- 0
 
- SKIP_BLANK_LINES = TRUE | FALSE
- Uso:
- Carregamento de dados e tabelas externas 
- Definição:
- Booliano que especifica ignorar quaisquer linhas em branco encontradas nos arquivos de dados; caso contrário, linhas em branco produzem um erro de fim de registro (comportamento padrão). 
- Padrão:
- FALSE
 
- DATE_FORMAT = 'string' | AUTO
- Uso:
- Carregamento e descarregamento de dados 
- Definição:
- Define o formato dos valores das datas nos arquivos de dados (carregamento de dados) ou tabela (descarregamento de dados). Se um valor não estiver especificado ou for - AUTO, é usado o valor para o parâmetro DATE_INPUT_FORMAT (carregamento de dados) ou DATE_OUTPUT_FORMAT (descarregamento de dados).
- Padrão:
- AUTO
 
- TIME_FORMAT = 'string' | AUTO
- Uso:
- Carregamento e descarregamento de dados 
- Definição:
- Define o formato dos valores de hora nos arquivos de dados (carregamento de dados) ou tabela (descarregamento de dados). Se um valor não estiver especificado ou for - AUTO, é usado o valor para o parâmetro TIME_INPUT_FORMAT (carregamento de dados) ou TIME_OUTPUT_FORMAT (descarregamento de dados).
- Padrão:
- AUTO
 
- TIMESTAMP_FORMAT = string' | AUTO
- Uso:
- Carregamento e descarregamento de dados 
- Definição:
- Define o formato dos valores ds carimbo de data/hora nos arquivos de dados (carregamento de dados) ou tabela (descarregamento de dados). Se um valor não estiver especificado ou for - AUTO, é usado o valor para o parâmetro TIMESTAMP_INPUT_FORMAT (carregamento de dados) ou TIMESTAMP_OUTPUT_FORMAT (descarregamento de dados).
- Padrão:
- AUTO
 
- BINARY_FORMAT = HEX | BASE64 | UTF8
- Uso:
- Carregamento e descarregamento de dados 
- Definição:
- Define o formato de codificação para entrada ou saída binária. A opção pode ser usada ao carregar ou descarregar dados de colunas binárias em uma tabela. 
- Padrão:
- HEX
 
- ESCAPE = 'character' | NONE
- Uso:
- Carregamento e descarregamento de dados 
- Definição:
- Uma cadeia de caracteres de caractere de byte único usada como caractere de escape para valores de campo delimitados ou não delimitados. Um caractere de escape invoca uma interpretação alternativa em caracteres subsequentes em uma sequência de caracteres. Você pode usar o caractere ESCAPE para interpretar instâncias do caractere - FIELD_OPTIONALLY_ENCLOSED_BYnos dados como literais.- Aceita sequências de escape comuns, valores octais ou valores hexadecimais. 
- Carregamento de dados:
- Especifica o caractere de escape somente para campos delimitados. Especifique o caractere usado para delimitar os campos definindo - FIELD_OPTIONALLY_ENCLOSED_BY.- Nota - Esta opção de formato de arquivo oferece suporte somente a caracteres de byte único. Observe que a codificação de caractere UTF-8 representa caracteres ASCII de ordem superior como caracteres multibyte. Se seu arquivo de dados for codificado com o conjunto de caracteres UTF-8, você não poderá especificar um caractere ASCII de ordem superior como o valor da opção. - Além disso, se você especificar um caractere ASCII de ordem superior, recomendamos que você defina a opção de formato de arquivo - ENCODING = 'string'como a codificação de caracteres para seus arquivos de dados para garantir que o caractere seja interpretado corretamente.
- Descarregamento de dados:
- Se esta opção for definida, ela substitui o conjunto de caracteres de escape para - ESCAPE_UNENCLOSED_FIELD.
- Padrão:
- NONE
 
- ESCAPE_UNENCLOSED_FIELD = 'character' | NONE
- Uso:
- Carregamento de dados, descarregamento de dados e tabelas externas 
- Definição:
- Uma cadeia de caracteres de caractere de byte único usada como caractere de escape apenas para valores de campo não delimitados. Um caractere de escape invoca uma interpretação alternativa em caracteres subsequentes em uma sequência de caracteres. Você pode usar o caractere ESCAPE para interpretar instâncias dos caracteres - FIELD_DELIMITERou- RECORD_DELIMITERnos dados como literais. O caractere de escape também pode ser usado para escapar de instâncias de si mesmo nos dados.- Aceita sequências de escape comuns, valores octais ou valores hexadecimais. 
- Carregamento de dados:
- Especifica o caractere de escape somente para campos não delimitados. - Nota - O valor padrão é - \\. Se uma linha em um arquivo de dados terminar no caractere de barra invertida (- \), este caractere escapa do caractere de linha nova ou de retorno de carro especificado para a opção de formato do arquivo- RECORD_DELIMITER. Como resultado, a operação de carregamento trata esta linha e a próxima linha como uma única linha de dados. Para evitar este problema, defina o valor como- NONE.
- Esta opção de formato de arquivo oferece suporte somente a caracteres de byte único. Observe que a codificação de caractere UTF-8 representa caracteres ASCII de ordem superior como caracteres multibyte. Se seu arquivo de dados for codificado com o conjunto de caracteres UTF-8, você não poderá especificar um caractere ASCII de ordem superior como o valor da opção. - Além disso, se você especificar um caractere ASCII de ordem superior, recomendamos que você defina a opção de formato de arquivo - ENCODING = 'string'como a codificação de caracteres para seus arquivos de dados para garantir que o caractere seja interpretado corretamente.
 
- Descarregamento de dados:
- Se - ESCAPEestiver definido, o conjunto de caracteres de escape para aquela opção de formato de arquivo substitui esta opção.
- Padrão:
- barra invertida ( - \\)
 
- TRIM_SPACE = TRUE | FALSE
- Uso:
- Carregamento de dados e tabelas externas 
- Definição:
- Booliano que especifica se é necessário remover o espaço em branco dos campos. - Por exemplo, se seu software de banco de dados externo delimita os campos com aspas, mas insere um espaço à esquerda, o Snowflake lê o espaço à esquerda em vez do caractere de abertura de aspas como o início do campo (ou seja, as aspas são interpretadas como parte da cadeia de caracteres de dados do campo). Defina esta opção como - TRUEpara remover espaços indesejáveis durante o carregamento de dados.- Como outro exemplo, se os espaços no início e no final das aspas que delimitam as cadeias de caracteres, você pode remover esses espaços usando esta opção e o caractere de aspas usando a opção - FIELD_OPTIONALLY_ENCLOSED_BY. Note que quaisquer espaços entre as aspas são preservados. Por exemplo, considerando- FIELD_DELIMITER = '|'e- FIELD_OPTIONALLY_ENCLOSED_BY = '"':- |"Hello world"| /* loads as */ >Hello world< |" Hello world "| /* loads as */ > Hello world < | "Hello world" | /* loads as */ >Hello world< - (os parênteses neste exemplo não são carregados; eles são usados para demarcar o início e o fim das cadeias de caracteres carregadas) 
- Padrão:
- FALSE
 
- FIELD_OPTIONALLY_ENCLOSED_BY = 'character' | NONE
- Uso:
- Carregamento de dados, descarregamento de dados e tabelas externas 
- Definição:
- Caractere usado para delimitar as cadeias de caracteres. O valor pode ser - NONE, caractere de aspas simples (- ') ou caractere de aspas duplas (- "). Para usar o caractere de aspas simples, use a representação octal ou hexadecimal (- 0x27) ou o escape de aspas simples dupla (- '').- Apenas descarregamento de dados:
- Quando um campo na tabela de origem contém esse caractere, o Snowflake o escapa usando o mesmo caractere para descarregamento. Por exemplo, se o valor for o caractere de aspas duplas e um campo contiver a cadeia de caracteres - A "B" C, o Snowflake aplica o escape das aspas duplas para descarregamento como segue:- A ""B"" C
 
- Padrão:
- NONE
 
- NULL_IF = ( 'string1' [ , 'string2' , ... ] )
- Uso:
- Carregamento de dados, descarregamento de dados e tabelas externas 
- Definição:
- Cadeia de caracteres usada para converter de e para SQL NULL: - Ao carregar dados, o Snowflake substitui estes valores na fonte de carregamento de dados por SQL NULL. Para especificar mais de uma cadeia de caracteres, coloque a lista de cadeias de caracteres entre parênteses e use vírgulas para separar cada valor. - Observe que o Snowflake converte todas as instâncias do valor em NULL, independentemente do tipo de dados. Por exemplo, se - 2for especificado como um valor, todas as instâncias de- 2como uma cadeia de caracteres ou número são convertidas.- Por exemplo: - NULL_IF = ('\N', 'NULL', 'NUL', '')- Observe que esta opção pode incluir cadeias de caracteres vazias. 
- Ao descarregar dados, o Snowflake converte os valores SQL NULL para o primeiro valor da lista. 
 
- Padrão:
- \N(ou seja, NULL, que pressupõe que o valor de- ESCAPE_UNENCLOSED_FIELDé- \)
 
- ERROR_ON_COLUMN_COUNT_MISMATCH = TRUE | FALSE
- Uso:
- Somente carregamento de dados 
- Definição:
- Booliano que especifica se deve gerar um erro de análise se o número de colunas delimitadas (isto é, campos) em um arquivo de entrada não corresponder ao número de colunas na tabela correspondente. - Se definido como - FALSE, um erro não é gerado e o carregamento continua. Se o arquivo for carregado com sucesso:- Se o arquivo de entrada tiver registros com mais campos do que colunas na tabela, os campos correspondentes serão carregados em ordem de ocorrência no arquivo e os campos restantes não serão carregados. 
- Se o arquivo de entrada tiver registros com menos campos do que colunas na tabela, as colunas não correspondentes na tabela são carregadas com valores NULL. 
 - Esta opção considera que todos os registros dentro do arquivo de entrada têm o mesmo comprimento (ou seja, um arquivo contendo registros de comprimento variável retorna um erro independentemente do valor especificado para este parâmetro). 
- Padrão:
- TRUE
 - Nota - Ao transformar dados durante o carregamento (isto é, usando uma consulta como fonte do comando COPY), esta opção é ignorada. Não há exigência de que seus arquivos de dados tenham o mesmo número e ordenação de colunas que sua tabela de destino. 
- REPLACE_INVALID_CHARACTERS = TRUE | FALSE
- Uso:
- Somente carregamento de dados 
- Definição:
- Booliano que especifica se deve substituir os caracteres UTF-8 inválidos pelo caractere de substituição Unicode ( - �).
 - Se definido como - TRUE, o Snowflake substitui os caracteres inválidos UTF-8 pelo caractere de substituição Unicode.- Se definido como - FALSE, a operação de carregamento produz um erro quando a codificação de caracteres UTF-8 inválida é detectada.- Padrão:
- FALSE
 
- EMPTY_FIELD_AS_NULL = TRUE | FALSE
- Uso:
- Carregamento de dados, descarregamento de dados e tabelas externas 
- Definição:
- Ao carregar dados, especifica se você deve inserir SQL NULL para campos vazios em um arquivo de entrada, que são representados por dois delimitadores sucessivos (por exemplo, - ,,).- Se definido como - FALSE, o Snowflake tenta converter um campo vazio no tipo de coluna correspondente. Uma cadeia de caracteres vazia é inserida em colunas do tipo STRING. Para outros tipos de colunas, o comando COPY produz um erro.
- Ao descarregar os dados, esta opção é utilizada em combinação com - FIELD_OPTIONALLY_ENCLOSED_BY. Quando- FIELD_OPTIONALLY_ENCLOSED_BY = NONE, a definição de- EMPTY_FIELD_AS_NULL = FALSEespecifica para descarregar cadeias de caracteres vazias em tabelas para valores de cadeias de caracteres vazias sem aspas delimitando os valores de campo.- Se definido como - TRUE,- FIELD_OPTIONALLY_ENCLOSED_BYdeve especificar um caractere para delimitar cadeias de caracteres.
 
- Padrão:
- TRUE
 
- SKIP_BYTE_ORDER_MARK = TRUE | FALSE
- Uso:
- Somente carregamento de dados 
- Definição:
- Booliano que especifica se deve ignorar o BOM (marca de ordem de byte), se presente em um arquivo de dados. Um BOM é um código de caracteres no início de um arquivo de dados que define a ordem de bytes e a forma de codificação. - Se definido como - FALSE, o Snowflake reconhece qualquer BOM nos arquivos de dados, o que poderia resultar no BOM causando um erro ou sendo fundido na primeira coluna da tabela.
- Padrão:
- TRUE
 
- ENCODING = 'string'
- Uso:
- Carregamento de dados e tabelas externas 
- Definição:
- Cadeia de caracteres (constante) que especifica o conjunto de caracteres dos dados de origem ao carregar dados em uma tabela. - Conjunto de caracteres - Valor - ENCODING- Linguagens suportadas - Notas - Big5 - BIG5- Chinês Tradicional - EUC-JP - EUCJP- Japonês - EUC-KR - EUCKR- Coreano - GB18030 - GB18030- Chinês - IBM420 - IBM420- Árabe - IBM424 - IBM424- Hebraico - IBM949 - IBM949- Coreano - ISO-2022-CN - ISO2022CN- Chinês simplificado - ISO-2022-JP - ISO2022JP- Japonês - ISO-2022-KR - ISO2022KR- Coreano - ISO-8859-1 - ISO88591- Alemão, Dinamarquês, Espanhol, Francês, Holandês, Inglês, Italiano, Norueguês, Português, Sueco - ISO-8859-2 - ISO88592- Tcheco, Húngaro, Polonês, Romeno - ISO-8859-5 - ISO88595- Russo - ISO-8859-6 - ISO88596- Árabe - ISO-8859-7 - ISO88597- Grego - ISO-8859-8 - ISO88598- Hebraico - ISO-8859-9 - ISO88599- Turco - ISO-8859-15 - ISO885915- Alemão, Dinamarquês, Espanhol, Francês, Holandês, Inglês, Italiano, Norueguês, Português, Sueco - Idêntico a ISO-8859-1 exceto para 8 caracteres, incluindo o símbolo da moeda Euro. - KOI8-R - KOI8R- Russo - Shift_JIS - SHIFTJIS- Japonês - UTF-8 - UTF8- Todos os idiomas - Para carregar dados de arquivos delimitados (CSV, TSV etc.), UTF-8 é o padrão. . . Para carregar dados de todos os outros formatos de arquivo suportados (JSON, Avro etc.), bem como descarregar dados, o UTF-8 é o único conjunto de caracteres suportado. - UTF-16 - UTF16- Todos os idiomas - UTF-16BE - UTF16BE- Todos os idiomas - UTF-16LE - UTF16LE- Todos os idiomas - UTF-32 - UTF32- Todos os idiomas - UTF-32BE - UTF32BE- Todos os idiomas - UTF-32LE - UTF32LE- Todos os idiomas - windows-874 - WINDOWS874- Tailandês - windows-949 - WINDOWS949- Coreano - windows-1250 - WINDOWS1250- Tcheco, Húngaro, Polonês, Romeno - windows-1251 - WINDOWS1251- Russo - windows-1252 - WINDOWS1252- Alemão, Dinamarquês, Espanhol, Francês, Holandês, Inglês, Italiano, Norueguês, Português, Sueco - windows-1253 - WINDOWS1253- Grego - windows-1254 - WINDOWS1254- Turco - windows-1255 - WINDOWS1255- Hebraico - windows-1256 - WINDOWS1256- Árabe 
- Padrão:
- UTF8
 - Nota - O Snowflake armazena todos os dados internamente no conjunto de caracteres UTF-8. Os dados são convertidos em UTF-8 antes de serem carregados no Snowflake. 
TYPE = JSON¶
- COMPRESSION = AUTO | GZIP | BZ2 | BROTLI | ZSTD | DEFLATE | RAW_DEFLATE | NONE
- Uso:
- Carregamento de dados e tabelas externas 
- Definição:
- Ao carregar dados, especifica o algoritmo de compressão atual para o arquivo de dados. O Snowflake usa esta opção para detectar como um arquivo de dados já comprimido foi comprimido para que os dados comprimidos no arquivo possam ser extraídos para carregamento. 
- Ao descarregar os dados, comprime o arquivo de dados usando o algoritmo de compressão especificado. 
 
- Valores:
- Valores suportados - Notas - AUTO- Ao carregar dados, o algoritmo de compressão detectado automaticamente, exceto para arquivos comprimidos com Brotli, que atualmente não podem ser detectados automaticamente. Ao descarregar os dados, os arquivos são automaticamente comprimidos usando o padrão, que é o gzip. - GZIP- BZ2- BROTLI- Deve ser especificado se carregar/descarregar arquivos comprimidos com Brotli. - ZSTD- Zstandard v0.8 (e superior) é suportado. - DEFLATE- Arquivos compactados Deflate (com cabeçalho zlib, RFC1950). - RAW_DEFLATE- Arquivos compactados Raw Deflate (sem cabeçalho, RFC1951). - NONE- Ao carregar dados, indica que os arquivos não foram comprimidos. Ao descarregar os dados, especifica que os arquivos descarregados não são comprimidos. 
- Padrão:
- AUTO
 
- DATE_FORMAT = 'string' | AUTO
- Uso:
- Somente carregamento de dados 
- Definição:
- Define o formato dos valores da cadeia de caracteres de data nos arquivos de dados. Se um valor não for especificado ou for - AUTO, é usado o valor para o parâmetro DATE_INPUT_FORMAT.- Esta opção de formato de arquivo é aplicada apenas às seguintes ações: - Carregamento de dados JSON em colunas separadas usando a opção de cópia MATCH_BY_COLUMN_NAME. 
- Carregamento de dados JSON em colunas separadas especificando uma consulta na instrução COPY (isto é, transformação COPY). 
 
- Padrão:
- AUTO
 
- TIME_FORMAT = 'string' | AUTO
- Uso:
- Somente carregamento de dados 
- Definição:
- Define o formato dos valores da cadeia de caracteres de hora nos arquivos de dados. Se um valor não for especificado ou for - AUTO, é usado o valor para o parâmetro TIME_INPUT_FORMAT.- Esta opção de formato de arquivo é aplicada apenas às seguintes ações: - Carregamento de dados JSON em colunas separadas usando a opção de cópia MATCH_BY_COLUMN_NAME. 
- Carregamento de dados JSON em colunas separadas especificando uma consulta na instrução COPY (isto é, transformação COPY). 
 
- Padrão:
- AUTO
 
- TIMESTAMP_FORMAT = string' | AUTO
- Uso:
- Somente carregamento de dados 
- Definição:
- Define o formato dos valores da cadeia de caracteres de carimbo de data/hora nos arquivos de dados. Se um valor não for especificado ou for - AUTO, é usado o valor para o parâmetro TIMESTAMP_INPUT_FORMAT.- Esta opção de formato de arquivo é aplicada apenas às seguintes ações: - Carregamento de dados JSON em colunas separadas usando a opção de cópia MATCH_BY_COLUMN_NAME. 
- Carregamento de dados JSON em colunas separadas especificando uma consulta na instrução COPY (isto é, transformação COPY). 
 
- Padrão:
- AUTO
 
- BINARY_FORMAT = HEX | BASE64 | UTF8
- Uso:
- Somente carregamento de dados 
- Definição:
- Define o formato de codificação dos valores binários da cadeia de caracteres nos arquivos de dados. A opção pode ser usada no carregamento de dados em colunas binárias em uma tabela. - Esta opção de formato de arquivo é aplicada apenas às seguintes ações: - Carregamento de dados JSON em colunas separadas usando a opção de cópia MATCH_BY_COLUMN_NAME. 
- Carregamento de dados JSON em colunas separadas especificando uma consulta na instrução COPY (isto é, transformação COPY). 
 
- Padrão:
- HEX
 
- TRIM_SPACE = TRUE | FALSE
- Uso:
- Somente carregamento de dados 
- Definição:
- Booliano que especifica se é necessário remover o espaço no início e no final das cadeias de caracteres. - Por exemplo, se seu software de banco de dados externo delimita os campos com aspas, mas insere um espaço à esquerda, o Snowflake lê o espaço à esquerda em vez do caractere de abertura de aspas como o início do campo (ou seja, as aspas são interpretadas como parte da cadeia de caracteres de dados do campo). Defina esta opção como - TRUEpara remover espaços indesejáveis durante o carregamento de dados.- Esta opção de formato de arquivo é aplicada às seguintes ações somente ao carregar dados JSON em colunas separadas usando a opção de cópia MATCH_BY_COLUMN_NAME. 
- Padrão:
- FALSE
 
- MULTI_LINE = TRUE | FALSE
- Uso: carregamento de dados e tabelas externas - Definição:
- Booliano que especifica se várias linhas são permitidas. Se MULTI_LINE estiver definido como - FALSEe uma nova linha estiver presente em um registro JSON, o registro que contém a nova linha será interpretado como um erro.
- Padrão:
- TRUE
 
- NULL_IF = ( 'string1' [ , 'string2' , ... ] )
- Uso:
- Somente carregamento de dados 
- Definição:
- String usada para converter de e para SQL NULL. O Snowflake substitui estas cadeias de caracteres na origem do carregamento de dados por SQL NULL. Para especificar mais de uma cadeia de caracteres, coloque a lista de cadeias de caracteres entre parênteses e use vírgulas para separar cada valor. - Esta opção de formato de arquivo é aplicada às seguintes ações somente ao carregar dados JSON em colunas separadas usando a opção de cópia MATCH_BY_COLUMN_NAME. - Observe que o Snowflake converte todas as instâncias do valor em NULL, independentemente do tipo de dados. Por exemplo, se - 2for especificado como um valor, todas as instâncias de- 2como uma cadeia de caracteres ou número são convertidas.- Por exemplo: - NULL_IF = ('\N', 'NULL', 'NUL', '')- Observe que esta opção pode incluir cadeias de caracteres vazias. 
- Padrão:
- \N(ou seja, NULL)
 
- FILE_EXTENSION = 'string' | NONE
- Uso:
- Apenas descarregamento de dados 
- Definição:
- Especifica a extensão para arquivos descarregados em um estágio. Aceita qualquer extensão. O usuário é responsável por especificar uma extensão de arquivo que possa ser lida por qualquer software ou serviços desejados. 
- Padrão:
- nulo, ou seja, a extensão do arquivo é determinada pelo tipo de formato: - .json[compression], em que- compressioné a extensão adicionada pelo método de compressão, se- COMPRESSIONestiver definido.
 
- ENABLE_OCTAL = TRUE | FALSE
- Uso:
- Somente carregamento de dados 
- Definição:
- Booliano que permite a análise dos números octais. 
- Padrão:
- FALSE
 
- ALLOW_DUPLICATE = TRUE | FALSE
- Uso:
- Carregamento de dados e tabelas externas 
- Definição:
- Booliano que especifica permitir a duplicação de nomes de campos de objetos (somente o último será preservado). 
- Padrão:
- FALSE
 
- STRIP_OUTER_ARRAY = TRUE | FALSE
- Uso:
- Carregamento de dados e tabelas externas 
- Definição:
- Booliano que instrui o analisador JSON a remover parênteses externos (ou seja, - [ ]).
- Padrão:
- FALSE
 
- STRIP_NULL_VALUES = TRUE | FALSE
- Uso:
- Carregamento de dados e tabelas externas 
- Definição:
- Booliano que instrui o analisador JSON a remover campos de objetos ou elementos de matriz contendo valores - null. Por exemplo, quando definido como- TRUE:- Antes - Depois - [null]- []- [null,null,3]- [,,3]- {"a":null,"b":null,"c":123}- {"c":123}- {"a":[1,null,2],"b":{"x":null,"y":88}}- {"a":[1,,2],"b":{"y":88}}
- Padrão:
- FALSE
 
- REPLACE_INVALID_CHARACTERS = TRUE | FALSE
- Uso:
- Carregamento de dados e tabela externa 
- Definição:
- Booliano que especifica se deve substituir os caracteres UTF-8 inválidos pelo caractere de substituição Unicode ( - �). Esta opção realiza uma substituição de caracteres um a um.
- Valores:
- Se definido como - TRUE, o Snowflake substitui os caracteres inválidos UTF-8 pelo caractere de substituição Unicode.- Se definido como - FALSE, a operação de carregamento produz um erro quando a codificação de caracteres UTF-8 inválida é detectada.
- Padrão:
- FALSE
 
- IGNORE_UTF8_ERRORS = TRUE | FALSE
- Uso:
- Carregamento de dados e tabela externa 
- Definição:
- Booliano que especifica se os erros da codificação UTF-8 produzem condições de erro. É uma sintaxe alternativa para - REPLACE_INVALID_CHARACTERS.
- Valores:
- Se definido como - TRUE, qualquer sequência inválida UTF-8 é silenciosamente substituída pelo caractere Unicode- U+FFFD(ou seja, “caractere de substituição”).- Se definido como - FALSE, a operação de carregamento produz um erro quando a codificação de caracteres UTF-8 inválida é detectada.
- Padrão:
- FALSE
 
- SKIP_BYTE_ORDER_MARK = TRUE | FALSE
- Uso:
- Somente carregamento de dados 
- Definição:
- Booliano que especifica se deve ignorar o BOM (marca de ordem de byte), se presente em um arquivo de dados. Um BOM é um código de caracteres no início de um arquivo de dados que define a ordem de bytes e a forma de codificação. - Se definido como - FALSE, o Snowflake reconhece qualquer BOM nos arquivos de dados, o que poderia resultar no BOM causando um erro ou sendo fundido na primeira coluna da tabela.
- Padrão:
- TRUE
 
TYPE = AVRO¶
- COMPRESSION = AUTO | GZIP | BROTLI | ZSTD | DEFLATE | RAW_DEFLATE | NONE
- Uso:
- Somente carregamento de dados 
- Definição:
- Ao carregar dados, especifica o algoritmo de compressão atual para o arquivo de dados. O Snowflake usa esta opção para detectar como um arquivo de dados já comprimido foi comprimido para que os dados comprimidos no arquivo possam ser extraídos para carregamento. 
- Ao descarregar os dados, comprime o arquivo de dados usando o algoritmo de compressão especificado. 
 
- Valores:
- Valores suportados - Notas - AUTO- Ao carregar dados, o algoritmo de compressão detectado automaticamente, exceto para arquivos comprimidos com Brotli, que atualmente não podem ser detectados automaticamente. Ao descarregar os dados, os arquivos são automaticamente comprimidos usando o padrão, que é o gzip. - GZIP- BROTLI- Deve ser especificado se carregar/descarregar arquivos comprimidos com Brotli. - ZSTD- Zstandard v0.8 (e superior) é suportado. - DEFLATE- Arquivos compactados Deflate (com cabeçalho zlib, RFC1950). - RAW_DEFLATE- Arquivos compactados Raw Deflate (sem cabeçalho, RFC1951). - NONE- Ao carregar dados, indica que os arquivos não foram comprimidos. Ao descarregar os dados, especifica que os arquivos descarregados não são comprimidos. 
- Padrão:
- AUTO.
 
Nota
Recomendamos que você use a opção padrão AUTO porque ela determinará a compactação do arquivo e do codec. A especificação de uma opção de compactação refere-se à compactação de arquivos, não à compactação de blocos (codecs).
- TRIM_SPACE = TRUE | FALSE
- Uso:
- Somente carregamento de dados 
- Definição:
- Booliano que especifica se é necessário remover o espaço no início e no final das cadeias de caracteres. - Por exemplo, se seu software de banco de dados externo delimita os campos com aspas, mas insere um espaço à esquerda, o Snowflake lê o espaço à esquerda em vez do caractere de abertura de aspas como o início do campo (ou seja, as aspas são interpretadas como parte da cadeia de caracteres de dados do campo). Defina esta opção como - TRUEpara remover espaços indesejáveis durante o carregamento de dados.- Esta opção de formato de arquivo é aplicada às seguintes ações somente ao carregar dados Avro em colunas separadas usando a opção de cópia MATCH_BY_COLUMN_NAME. 
- Padrão:
- FALSE
 
- REPLACE_INVALID_CHARACTERS = TRUE | FALSE
- Uso:
- Carregamento de dados e tabela externa 
- Definição:
- Booliano que especifica se deve substituir os caracteres UTF-8 inválidos pelo caractere de substituição Unicode ( - �). Esta opção realiza uma substituição de caracteres um a um.
- Valores:
- Se definido como - TRUE, o Snowflake substitui os caracteres inválidos UTF-8 pelo caractere de substituição Unicode.- Se definido como - FALSE, a operação de carregamento produz um erro quando a codificação de caracteres UTF-8 inválida é detectada.
- Padrão:
- FALSE
 
- NULL_IF = ( 'string1' [ , 'string2' , ... ] )
- Uso:
- Somente carregamento de dados 
- Definição:
- String usada para converter de e para SQL NULL. O Snowflake substitui estas cadeias de caracteres na origem do carregamento de dados por SQL NULL. Para especificar mais de uma cadeia de caracteres, coloque a lista de cadeias de caracteres entre parênteses e use vírgulas para separar cada valor. - Esta opção de formato de arquivo é aplicada às seguintes ações somente ao carregar dados Avro em colunas separadas usando a opção de cópia MATCH_BY_COLUMN_NAME. - Observe que o Snowflake converte todas as instâncias do valor em NULL, independentemente do tipo de dados. Por exemplo, se - 2for especificado como um valor, todas as instâncias de- 2como uma cadeia de caracteres ou número são convertidas.- Por exemplo: - NULL_IF = ('\N', 'NULL', 'NUL', '')- Observe que esta opção pode incluir cadeias de caracteres vazias. 
- Padrão:
- \N(ou seja, NULL)
 
TYPE = ORC¶
- TRIM_SPACE = TRUE | FALSE
- Uso:
- Carregamento de dados e tabelas externas 
- Definição:
- Booliano que especifica se é necessário remover o espaço no início e no final das cadeias de caracteres. - Por exemplo, se seu software de banco de dados externo delimita os campos com aspas, mas insere um espaço à esquerda, o Snowflake lê o espaço à esquerda em vez do caractere de abertura de aspas como o início do campo (ou seja, as aspas são interpretadas como parte da cadeia de caracteres de dados do campo). Defina esta opção como - TRUEpara remover espaços indesejáveis durante o carregamento de dados.- Esta opção de formato de arquivo é aplicada às seguintes ações somente ao carregar dados Orc em colunas separadas usando a opção de cópia MATCH_BY_COLUMN_NAME. 
- Padrão:
- FALSE
 
- REPLACE_INVALID_CHARACTERS = TRUE | FALSE
- Uso:
- Carregamento de dados e tabela externa 
- Definição:
- Booliano que especifica se deve substituir os caracteres UTF-8 inválidos pelo caractere de substituição Unicode ( - �). Esta opção realiza uma substituição de caracteres um a um.
- Valores:
- Se definido como - TRUE, o Snowflake substitui os caracteres inválidos UTF-8 pelo caractere de substituição Unicode.- Se definido como - FALSE, a operação de carregamento produz um erro quando a codificação de caracteres UTF-8 inválida é detectada.
- Padrão:
- FALSE
 
- NULL_IF = ( 'string1' [ , 'string2' , ... ] )
- Uso:
- Carregamento de dados e tabelas externas 
- Definição:
- String usada para converter de e para SQL NULL. O Snowflake substitui estas cadeias de caracteres na origem do carregamento de dados por SQL NULL. Para especificar mais de uma cadeia de caracteres, coloque a lista de cadeias de caracteres entre parênteses e use vírgulas para separar cada valor. - Esta opção de formato de arquivo é aplicada às seguintes ações somente ao carregar dados Orc em colunas separadas usando a opção de cópia MATCH_BY_COLUMN_NAME. - Observe que o Snowflake converte todas as instâncias do valor em NULL, independentemente do tipo de dados. Por exemplo, se - 2for especificado como um valor, todas as instâncias de- 2como uma cadeia de caracteres ou número são convertidas.- Por exemplo: - NULL_IF = ('\N', 'NULL', 'NUL', '')- Observe que esta opção pode incluir cadeias de caracteres vazias. 
- Padrão:
- \N(ou seja, NULL)
 
TYPE = PARQUET¶
- COMPRESSION = AUTO | LZO | SNAPPY | NONE
- Uso:
- Descarregamento de dados e tabelas externas 
- Definição:
 - Ao descarregar dados, especifica o algoritmo de compressão para colunas nos arquivos Parquet. 
 - Valores:
- Valores suportados - Notas - AUTO- Ao carregar dados, o algoritmo de compressão é detectado automaticamente. Oferece suporte aos seguintes algoritmos de compressão: Brotli, gzip, Lempel-Ziv-Oberhumer (LZO), LZ4, Snappy ou Zstandard v0.8 (e superior). . Ao descarregar dados, os arquivos descarregados são comprimidos por padrão usando o algoritmo de compressão Snappy. - LZO- Ao descarregar os dados, os arquivos são comprimidos usando o algoritmo Snappy por padrão. Se o descarregamento de dados for feito para arquivos comprimidos por LZO, especifique este valor. - SNAPPY- Ao descarregar os dados, os arquivos são comprimidos usando o algoritmo Snappy por padrão. Opcionalmente, você pode especificar este valor. - NONE- Ao carregar dados, indica que os arquivos não foram comprimidos. Ao descarregar os dados, especifica que os arquivos descarregados não são comprimidos. 
- Padrão:
- AUTO
 
- SNAPPY_COMPRESSION = TRUE | FALSE
- Uso:
- Apenas descarregamento de dados - Valores suportados - Notas - AUTO- Os arquivos descarregados são comprimidos usando o algoritmo de compressão Snappy por padrão. - SNAPPY- Pode ser especificado se for descarregamento de arquivos comprimidos com Snappy. - NONE- Ao carregar dados, indica que os arquivos não foram comprimidos. Ao descarregar os dados, especifica que os arquivos descarregados não são comprimidos. 
- Definição:
- Booliano que especifica se o(s) arquivo(s) descarregado(s) é(são) comprimido(s) usando o algoritmo SNAPPY. 
 - Nota - Obsoleto. Em vez disso, use - COMPRESSION = SNAPPY.- Limitações:
- Só é suportado para operações de descarregamento de dados. 
- Padrão:
- TRUE
 
- BINARY_AS_TEXT = TRUE | FALSE
- Uso:
- Carregamento de dados e tabelas externas 
- Definição:
- Booliano que especifica se deve interpretar colunas sem tipo de dados lógicos definidos como texto UTF-8. Quando definido como - FALSE, o Snowflake interpreta estas colunas como dados binários.
- Padrão:
- TRUE
 - Nota - Snowflake recomenda que você defina BINARY_AS_TEXT como FALSE para evitar possíveis problemas de conversão. 
- TRIM_SPACE = TRUE | FALSE
- Uso:
- Somente carregamento de dados 
- Definição:
- Booliano que especifica se é necessário remover o espaço no início e no final das cadeias de caracteres. - Por exemplo, se seu software de banco de dados externo delimita os campos com aspas, mas insere um espaço à esquerda, o Snowflake lê o espaço à esquerda em vez do caractere de abertura de aspas como o início do campo (ou seja, as aspas são interpretadas como parte da cadeia de caracteres de dados do campo). Defina esta opção como - TRUEpara remover espaços indesejáveis durante o carregamento de dados.- Esta opção de formato de arquivo é aplicada às seguintes ações somente ao carregar os dados do Parquet em colunas separadas usando a opção de cópia MATCH_BY_COLUMN_NAME. 
- Padrão:
- FALSE
 
- USE_LOGICAL_TYPE = TRUE | FALSE
- Uso:
- Carregamento de dados, consulta de dados em arquivos preparados e detecção de esquema. 
- Definição:
- Booliano que especifica se devem ser usados tipos lógicos Parquet. Com esta opção de formato de arquivo, Snowflake pode interpretar tipos lógicos Parquet durante o carregamento de dados. Para obter mais informações, consulte Definições do tipo lógico Parquet. Para ativar os tipos lógicos Parquet, defina USE_LOGICAL_TYPE como TRUE ao criar uma nova opção de formato de arquivo. 
- Limitações:
- Não há suporte para descarregamento de dados. 
 
- USE_VECTORIZED_SCANNER = TRUE | FALSE
- Uso:
- Carregamento de dados e consulta de dados em arquivos preparados 
- Definição:
- Booliano que especifica se deve ser usado um scanner vetorizado para carregar arquivos Parquet. 
- Padrão:
- FALSE. Em um futuro BCR, o valor padrão será- TRUE.
 - O uso do scanner vetorizado pode reduzir significativamente a latência para carregar arquivos Parquet, porque este scanner é bem adequado para o formato colunar de um arquivo Parquet. O scanner baixa apenas seções relevantes do arquivo Parquet para a memória, como o subconjunto de colunas selecionadas. - Se - USE_VECTORIZED_SCANNERestiver definido como- TRUE, o scanner vetorizado tem os seguintes comportamentos:- A opção - BINARY_AS_TEXTé sempre tratada como- FALSEe a opção- USE_LOGICAL_TYPEé sempre tratada como- TRUE, não importa qual seja o valor real definido.
- O scanner vetorizado suporta tipos de mapas Parquet. A saída da digitalização de um tipo de mapa é a seguinte: - "my_map": { "k1": "v1", "k2": "v2" } 
- O scanner vetorizado mostra valores - NULLna saída, como demonstra o exemplo a seguir:- "person": { "name": "Adam", "nickname": null, "age": 34, "phone_numbers": [ "1234567890", "0987654321", null, "6781234590" ] } 
- O scanner vetorizado manipula a hora e o carimbo de data/hora da seguinte maneira: - Parquet - Scanner vetorizado do Snowflake - TimeType(isAdjustedToUtc=verdadeiro/falso, unidade=MILLIS/MICROS/NANOS) - TIME - TimestampType(isAdjustedToUtc=verdadeiro, unidade=MILLIS/MICROS/NANOS) - TIMESTAMP_LTZ - TimestampType(isAdjustedToUtc=falso, unidade=MILLIS/MICROS/NANOS) - TIMESTAMP_NTZ - INT96 - TIMESTAMP_LTZ 
 - Se - USE_VECTORIZED_SCANNERestiver definido como- FALSE, o scanner terá os seguintes comportamentos:- Esta opção não suporta mapas Parquet. A saída da digitalização de um tipo de mapa é a seguinte: - "my_map": { "key_value": [ { "key": "k1", "value": "v1" }, { "key": "k2", "value": "v2" } ] } 
- Esta opção não mostra explicitamente os valores - NULLna saída da verificação, como demonstra o exemplo a seguir:- "person": { "name": "Adam", "age": 34 "phone_numbers": [ "1234567890", "0987654321", "6781234590" ] } 
- Esta opção trata da hora e do carimbo de data/hora da seguinte forma: - Parquet - Quando USE_LOGICAL_TYPE = TRUE - Quando USE_LOGICAL_TYPE = FALSE - TimeType(isAdjustedToUtc=verdadeiro/falso, unidade=MILLIS/MICROS) - TIME - TIME (se ConvertedType estiver presente) 
- INTEGER (se ConvertedType estiver não presente) 
 - TimeType(isAdjustedToUtc=verdadeiro/falso, unidade=NANOS) - TIME - INTEGER - TimestampType(isAdjustedToUtc=verdadeiro, unidade=MILLIS/MICROS) - TIMESTAMP_LTZ - TIMESTAMP_NTZ - TimestampType(isAdjustedToUtc=verdadeiro, unidade=NANOS) - TIMESTAMP_LTZ - INTEGER - TimestampType(isAdjustedToUtc=falso, unidade=MILLIS/MICROS) - TIMESTAMP_NTZ - TIMESTAMP_LTZ (se ConvertedType estiver presente) 
- INTEGER (se ConvertedType estiver não presente) 
 - TimestampType(isAdjustedToUtc=falso, unidade=NANOS) - TIMESTAMP_NTZ - INTEGER - INT96 - TIMESTAMP_NTZ - TIMESTAMP_NTZ 
 
- REPLACE_INVALID_CHARACTERS = TRUE | FALSE
- Uso:
- Carregamento de dados e tabela externa 
- Definição:
- Booliano que especifica se deve substituir os caracteres UTF-8 inválidos pelo caractere de substituição Unicode ( - �). Esta opção realiza uma substituição de caracteres um a um.
- Valores:
- Se definido como - TRUE, o Snowflake substitui os caracteres inválidos UTF-8 pelo caractere de substituição Unicode.- Se definido como - FALSE, a operação de carregamento produz um erro quando a codificação de caracteres UTF-8 inválida é detectada.
- Padrão:
- FALSE
 
- NULL_IF = ( 'string1' [ , 'string2' , ... ] )
- Uso:
- Somente carregamento de dados 
- Definição:
- String usada para converter de e para SQL NULL. O Snowflake substitui estas cadeias de caracteres na origem do carregamento de dados por SQL NULL. Para especificar mais de uma cadeia de caracteres, coloque a lista de cadeias de caracteres entre parênteses e use vírgulas para separar cada valor. - Esta opção de formato de arquivo é aplicada às seguintes ações somente ao carregar os dados do Parquet em colunas separadas usando a opção de cópia MATCH_BY_COLUMN_NAME. - Observe que o Snowflake converte todas as instâncias do valor em NULL, independentemente do tipo de dados. Por exemplo, se - 2for especificado como um valor, todas as instâncias de- 2como uma cadeia de caracteres ou número são convertidas.- Por exemplo: - NULL_IF = ('\N', 'NULL', 'NUL', '')- Observe que esta opção pode incluir cadeias de caracteres vazias. 
- Padrão:
- \N(ou seja, NULL)
 
TYPE = XML¶
- COMPRESSION = AUTO | GZIP | BZ2 | BROTLI | ZSTD | DEFLATE | RAW_DEFLATE | NONE
- Uso:
- Somente carregamento de dados 
- Definição:
- Ao carregar dados, especifica o algoritmo de compressão atual para o arquivo de dados. O Snowflake usa esta opção para detectar como um arquivo de dados já comprimido foi comprimido para que os dados comprimidos no arquivo possam ser extraídos para carregamento. 
- Ao descarregar os dados, comprime o arquivo de dados usando o algoritmo de compressão especificado. 
 
- Valores:
- Valores suportados - Notas - AUTO- Ao carregar dados, o algoritmo de compressão detectado automaticamente, exceto para arquivos comprimidos com Brotli, que atualmente não podem ser detectados automaticamente. Ao descarregar os dados, os arquivos são automaticamente comprimidos usando o padrão, que é o gzip. - GZIP- BZ2- BROTLI- Deve ser especificado se carregar/descarregar arquivos comprimidos com Brotli. - ZSTD- Zstandard v0.8 (e superior) é suportado. - DEFLATE- Arquivos compactados Deflate (com cabeçalho zlib, RFC1950). - RAW_DEFLATE- Arquivos compactados Raw Deflate (sem cabeçalho, RFC1951). - NONE- Ao carregar dados, indica que os arquivos não foram comprimidos. Ao descarregar os dados, especifica que os arquivos descarregados não são comprimidos. 
- Padrão:
- AUTO
 
- IGNORE_UTF8_ERRORS = TRUE | FALSE
- Uso:
- Carregamento de dados e tabela externa 
- Definição:
- Booliano que especifica se os erros da codificação UTF-8 produzem condições de erro. É uma sintaxe alternativa para - REPLACE_INVALID_CHARACTERS.
- Valores:
- Se definido como - TRUE, qualquer sequência inválida UTF-8 é silenciosamente substituída pelo caractere Unicode- U+FFFD(ou seja, “caractere de substituição”).- Se definido como - FALSE, a operação de carregamento produz um erro quando a codificação de caracteres UTF-8 inválida é detectada.
- Padrão:
- FALSE
 
- PRESERVE_SPACE = TRUE | FALSE
- Uso:
- Somente carregamento de dados 
- Definição:
- Booliano que especifica se o analisador XML preserva espaços no início e no final no conteúdo de elementos. 
- Padrão:
- FALSE
 
- STRIP_OUTER_ELEMENT = TRUE | FALSE
- Uso:
- Somente carregamento de dados 
- Definição:
- Booliano que especifica se o analisador XML retira o elemento XML externo, expondo elementos de segundo nível como documentos separados. 
- Padrão:
- FALSE
 
- DISABLE_AUTO_CONVERT = TRUE | FALSE
- Uso:
- Somente carregamento de dados 
- Definição:
- Booliano que especifica se o analisador XML desativa a conversão automática de valores numéricos e boolianos de texto para representação nativa. 
- Padrão:
- FALSE
 
- REPLACE_INVALID_CHARACTERS = TRUE | FALSE
- Uso:
- Carregamento de dados e tabela externa 
- Definição:
- Booliano que especifica se deve substituir os caracteres UTF-8 inválidos pelo caractere de substituição Unicode ( - �). Esta opção realiza uma substituição de caracteres um a um.
- Valores:
- Se definido como - TRUE, o Snowflake substitui os caracteres inválidos UTF-8 pelo caractere de substituição Unicode.- Se definido como - FALSE, a operação de carregamento produz um erro quando a codificação de caracteres UTF-8 inválida é detectada.
- Padrão:
- FALSE
 
- SKIP_BYTE_ORDER_MARK = TRUE | FALSE
- Uso:
- Somente carregamento de dados 
- Definição:
- Booliano que especifica se deve ignorar qualquer BOM (marca de ordem de byte) presente em um arquivo de entrada. Um BOM é um código de caracteres no início de um arquivo de dados que define a ordem de bytes e a forma de codificação. - Se definido como - FALSE, o Snowflake reconhece qualquer BOM nos arquivos de dados, o que poderia resultar no BOM causando um erro ou sendo fundido na primeira coluna da tabela.
- Padrão:
- TRUE
 
Requisitos de controle de acesso¶
A função usada para executar essa operação deve ter, no mínimo, os seguintes privilégios:
| Privilégio | Objeto | Notas | 
|---|---|---|
| USAGE | Integração de armazenamento | Obrigatório somente se estiver acessando um serviço de armazenamento em nuvem com uma integração de armazenamento. | 
| CREATE STAGE | Esquema | Obrigatório somente se estiver criando um estágio permanente. | 
| OWNERSHIP | Estágio | 
 OWNERSHIP is a special privilege on an object that is automatically granted to the role that created the object, but can also be transferred using the GRANT OWNERSHIP command to a different role by the owning role (or any role with the MANAGE GRANTS privilege). Note that in a managed access schema, only the schema owner (i.e. the role with the OWNERSHIP privilege on the schema) or a role with the MANAGE GRANTS privilege can grant or revoke privileges on objects in the schema, including future grants. | 
O privilégio USAGE no banco de dados e no esquema pai é necessário para executar operações em qualquer objeto de um esquema. Observe que uma função com privilégio concedido em um esquema permite que essa função resolva o esquema. Por exemplo, uma função com privilégio CREATE concedido em um esquema pode criar objetos nesse esquema sem também ter USAGE concedido nesse esquema.
Para instruções sobre como criar uma função personalizada com um conjunto específico de privilégios, consulte Criação de funções personalizadas.
Para informações gerais sobre concessões de funções e privilégios para executar ações de SQL em objetos protegíveis, consulte Visão geral do controle de acesso.
Notas de uso geral¶
Importante
Se você precisar de Tri-Secret Secure para conformidade de segurança, use o tipo de criptografia SNOWFLAKE_FULL para estágios internos. SNOWFLAKE_SSE não é compatível com Tri-Secret Secure.
Cuidado
Recriar um estágio (usando CREATE OR REPLACE STAGE) tem os seguintes resultados adicionais, potencialmente indesejáveis:
- A tabela de diretório existente para o estágio, se houver, é descartada. Se o estágio for recriado com uma tabela de diretório, o diretório estará vazio por padrão. 
- A associação é anulada entre o estágio e qualquer tabela externa que faça referência a ele. - Isto porque uma tabela externa se vincula a um estágio usando um ID oculto em vez do nome do estágio. Nos bastidores, a sintaxe CREATE OR REPLACE descarta um objeto e o recria com uma ID oculta diferente. - Se você tiver que recriar um estágio após ter sido vinculada uma ou mais tabelas externas, você deverá recriar cada uma das tabelas externas (usando CREATE OR REPLACE EXTERNAL TABLE) para restabelecer a associação. Chame a função GET_DDL para recuperar uma instrução DDL para recriar cada uma das tabelas externas. 
- Qualquer canal que faça referência ao estágio interrompe o carregamento de dados. O status de execução dos canais muda para - STOPPED_STAGE_DROPPED. Para retomar o carregamento de dados, estes objetos de canal devem ser recriados (usando a sintaxe CREATE OR REPLACE PIPE).
- As cláusulas - OR REPLACEe- IF NOT EXISTSsão mutuamente exclusivas. Elas não podem ser usadas na mesma instrução.
- CREATE STAGE não verifica se o URL ou as credenciais especificadas são válidas. Se as credenciais não forem válidas, ao tentar usar o estágio, o sistema retornará um erro. 
- O Snowflake utiliza uploads de múltiplas partes ao carregar no Amazon S3 e no Google Cloud Storage. Esse processo pode deixar uploads incompletos no local de armazenamento da sua área de preparação externa. - Para evitar o acúmulo de uploads incompletos, recomendamos que você defina uma regra de ciclo de vida. Para obter instruções, consulte a documentação do Amazon S3 ou do Google Cloud Storage. 
- Para estágios externos que usam um ponto de acesso S3: - Se estiver usando uma integração de armazenamento, é necessário configurar a política de IAM para que a integração conceda permissão ao seu ponto de acesso S3. Para obter mais informações, consulte Opção 1: configuração de uma integração de armazenamento do Snowflake para acessar o Amazon S3. 
- Não há suporte para pontos de acesso multirregionais. 
 
- Em relação aos metadados: - Atenção - Os clientes devem garantir que nenhum dado pessoal (exceto para um objeto do usuário), dados sensíveis, dados controlados por exportação ou outros dados regulamentados sejam inseridos como metadados ao usar o serviço Snowflake. Para obter mais informações, consulte Campos de metadados no Snowflake. 
Notas de uso de CREATE OR ALTER STAGE¶
Limitações
- Todas as limitações do comando ALTER STAGE se aplicam. 
- O comando CREATE OR ALTER STAGE só aceita e manipula propriedades compatíveis com o tipo atual de estágio (interno ou externo). As propriedades incompatíveis com estágios internos não podem ser usadas em um comando CREATE OR ALTER STAGE em um estágio interno. 
- O comando CREATE OR ALTER STAGE não pode alterar o tipo de provedor de armazenamento de um estágio externo. 
- Não há suporte para a definição ou remoção da definição de uma tag; no entanto, as tags existentes não são alteradas por uma instrução CREATE OR ALTER STAGE e permanecem inalteradas. 
Propriedades
- A ausência de uma propriedade configurada anteriormente na definição do estágio resulta na redefinição do valor padrão. 
Opções de tabela de diretório
- O comando CREATE OR ALTER STAGE não é compatível com a opção REFRESH_ON_CREATE. 
- O comando CREATE OR ALTER STAGE não oferece suporte à atualização de tabelas de diretório. - As tabelas de diretório recém-criadas não serão atualizadas. 
- Para atualizar uma tabela de diretório, use ALTER REFRESH. 
 
Exemplos¶
Exemplos básicos¶
Estágios internos¶
Crie um estágio interno e especifique a criptografia do lado do servidor para o estágio:
CREATE STAGE my_int_stage
  ENCRYPTION = (TYPE = 'SNOWFLAKE_SSE');
Crie um estágio interno temporário com todas as mesmas propriedades do exemplo anterior:
CREATE TEMPORARY STAGE my_temp_int_stage;
Criar um estágio interno temporário que faça referência a um formato de arquivo chamado my_csv_format (criado usando CREATE FILE FORMAT):
CREATE TEMPORARY STAGE my_int_stage
  FILE_FORMAT = my_csv_format;
Quando você faz referência ao estágio em uma instrução COPY INTO <tabela>, as opções de formato de arquivo são automaticamente definidas.
Criar um estágio interno que inclua uma tabela de diretório. O estágio faz referência a um formato de arquivo chamado myformat:
CREATE STAGE mystage
  DIRECTORY = (ENABLE = TRUE)
  FILE_FORMAT = myformat;
Estágios externos¶
Amazon S3
Nos exemplos abaixo, se o bucket S3 estiver em uma região na China, use o protocolo
s3china://para o parâmetro URL.Criar um estágio externo usando um bucket S3 privado/protegido chamado
loadcom um caminho de pasta chamadofiles. O acesso seguro ao bucket S3 é fornecido através da integração de armazenamentomyint:CREATE STAGE my_ext_stage URL='s3://load/files/' STORAGE_INTEGRATION = myint;Criar um estágio externo usando um bucket S3 privado/protegido chamado
loadcom um caminho de pasta chamadofiles. As permissões de acesso do Snowflake para o bucket S3 estão associadas a um usuário IAM; portanto, são necessárias credenciais IAM:CREATE STAGE my_ext_stage1 URL='s3://load/files/' CREDENTIALS=(AWS_KEY_ID='1a2b3c' AWS_SECRET_KEY='4x5y6z');Observe que os valores AWS_KEY_ID e AWS_SECRET_KEY utilizados neste exemplo são apenas para fins ilustrativos.
Criar um estágio externo usando um bucket S3 chamado
loadcom um caminho de pasta chamadoencrypted_filese criptografia do lado do cliente (tipo de criptografia padrão) com a chave-mestra para descriptografar/criptografar arquivos armazenados no bucket:CREATE STAGE my_ext_stage2 URL='s3://load/encrypted_files/' CREDENTIALS=(AWS_KEY_ID='1a2b3c' AWS_SECRET_KEY='4x5y6z') ENCRYPTION=(MASTER_KEY = 'eSx...');Criar um estágio externo usando um bucket S3 chamado
loadcom um caminho de pasta chamadoencrypted_filese criptografia AWS_SSE_KMS do lado do servidor com a ID para a chave-mestra para descriptografar/criptografar arquivos armazenados no bucket:CREATE STAGE my_ext_stage3 URL='s3://load/encrypted_files/' CREDENTIALS=(AWS_KEY_ID='1a2b3c' AWS_SECRET_KEY='4x5y6z') ENCRYPTION=(TYPE='AWS_SSE_KMS' KMS_KEY_ID = 'aws/key');O mesmo exemplo do exemplo imediatamente anterior, exceto que as permissões de acesso do Snowflake para o bucket S3 estão associadas a uma função IAM em vez de um usuário IAM. Observe que as credenciais são tratadas separadamente de outros parâmetros de estágio, tais como
ENCRYPTION. O suporte para estes outros parâmetros é o mesmo independentemente das credenciais utilizadas para acessar seu bucket S3 externo:CREATE STAGE my_ext_stage3 URL='s3://load/encrypted_files/' CREDENTIALS=(AWS_ROLE='arn:aws:iam::001234567890:role/mysnowflakerole') ENCRYPTION=(TYPE='AWS_SSE_KMS' KMS_KEY_ID = 'aws/key');Criar um estágio com uma tabela de diretório no esquema ativo para a sessão do usuário. O URL de armazenamento em nuvem inclui o caminho
files. O estágio faz referência a uma integração de armazenamento chamadamy_storage_int:CREATE STAGE mystage URL='s3://load/files/' STORAGE_INTEGRATION = my_storage_int DIRECTORY = ( ENABLE = true AUTO_REFRESH = true );
Google Cloud Storage
Criar um estágio externo usando um bucket privado/protegido GCS chamado
loadcom um caminho de pasta chamadofiles. O acesso seguro ao bucket GCS é fornecido pela integração de armazenamentomyint:CREATE STAGE my_ext_stage URL='gcs://load/files/' STORAGE_INTEGRATION = myint;Criar um estágio chamado
mystagecom uma tabela de diretório no esquema ativo para a sessão do usuário. O URL de armazenamento em nuvem inclui o caminhofiles. O estágio faz referência a uma integração de armazenamento chamadamy_storage_int:CREATE STAGE mystage URL='gcs://load/files/' STORAGE_INTEGRATION = my_storage_int DIRECTORY = ( ENABLE = true AUTO_REFRESH = true NOTIFICATION_INTEGRATION = 'MY_NOTIFICATION_INT' );Criar um estágio externo usando um bucket S3 chamado
loadcom um caminho de pasta chamadoencrypted_filese criptografia do lado do cliente (tipo de criptografia padrão) com a chave-mestra para descriptografar/criptografar arquivos armazenados no bucket:CREATE STAGE my_ext_stage2 URL='gcs://load/encrypted_files/' STORAGE_INTEGRATION = my_storage_int ENCRYPTION=(TYPE = 'GCS_SSE_KMS' KMS_KEY_ID = '{a1b2c3});
Microsoft Azure
Criar um estágio externo usando um recipiente Azure privado/protegido chamado
loadcom um caminho de pasta chamadofiles. O acesso seguro ao contêiner é fornecido pela integração de armazenamentomyint:CREATE STAGE my_ext_stage URL='azure://myaccount.blob.core.windows.net/load/files/' STORAGE_INTEGRATION = myint;Criar um estágio externo usando uma conta de armazenamento Azure chamada
myaccounte um contêiner chamadomycontainercom um caminho de pasta chamadofilese criptografia do lado do cliente habilitada:CREATE STAGE mystage URL='azure://myaccount.blob.core.windows.net/mycontainer/files/' CREDENTIALS=(AZURE_SAS_TOKEN='?sv=2016-05-31&ss=b&srt=sco&sp=rwdl&se=2018-06-27T10:05:50Z&st=2017-06-27T02:05:50Z&spr=https,http&sig=bgqQwoXwxzuD2GJfagRg7VOS8hzNr3QLT7rhS8OFRLQ%3D') ENCRYPTION=(TYPE='AZURE_CSE' MASTER_KEY = 'kPx...');(Os valores
AZURE_SAS_TOKENeMASTER_KEYutilizados neste exemplo não são valores reais; eles são fornecidos apenas para fins ilustrativos).Criar um estágio com uma tabela de diretório no esquema ativo para a sessão do usuário. O URL de armazenamento em nuvem inclui o caminho
files. O estágio faz referência a uma integração de armazenamento chamadamy_storage_int:CREATE STAGE mystage URL='azure://myaccount.blob.core.windows.net/load/files/' STORAGE_INTEGRATION = my_storage_int DIRECTORY = ( ENABLE = true AUTO_REFRESH = true NOTIFICATION_INTEGRATION = 'MY_NOTIFICATION_INT' );
Exemplos de CREATE OR ALTER STAGE¶
Estágio interno¶
Crie um estágio interno com um comentário:
CREATE OR ALTER STAGE my_int_stage
  COMMENT='my_comment'
  ;
Altere o estágio interno para criar uma tabela de diretório e remova o comentário:
CREATE OR ALTER STAGE my_int_stage
  DIRECTORY=(ENABLE=true);
Estágio externo¶
Crie um estágio externo usando um bucket S3 com credenciais:
CREATE OR ALTER STAGE my_ext_stage
  URL='s3://load/files/'
  CREDENTIALS=(AWS_KEY_ID='1a2b3c' AWS_SECRET_KEY='4x5y6z');
Altere o estágio externo para criar uma tabela de diretório:
CREATE OR ALTER STAGE my_ext_stage
  URL='s3://load/files/'
  CREDENTIALS=(AWS_KEY_ID='1a2b3c' AWS_SECRET_KEY='4x5y6z')
  DIRECTORY=(ENABLE=true);