Preparação para carregar dados¶
Este tópico fornece uma visão geral dos formatos de arquivos de dados suportados e compressão de dados. Dependendo da estrutura de seus dados, você pode precisar preparar os dados antes de carregá-los.
Neste tópico:
Tipos de dados suportados¶
Consulte Referência de tipos de dados SQL para obter descrições dos tipos de dados suportados pelo Snowflake.
Compressão de arquivos de dados¶
Recomendamos que você comprima seus arquivos de dados quando estiver carregando grandes conjuntos de dados. Consulte CREATE FILE FORMAT para obter os algoritmos de compressão suportados para cada tipo de dados.
Ao carregar dados compactados, o Snowflake determinará automaticamente o método de compactação de arquivo e codec para seus arquivos de dados. A opção de formato de arquivo COMPRESSION descreve como seus arquivos de dados já estão comprimidos no estágio. Defina a opção COMPRESSION de uma das seguintes maneiras:
Como uma opção de formato de arquivo especificada diretamente na instrução COPY INTO <tabela>.
Como uma opção de formato de arquivo especificada para um formato de arquivo nomeado ou objeto de preparação. O formato do arquivo/objeto de preparação nomeado pode então ser referenciado na instrução COPY INTO <tabela>.
Formatos de arquivo suportados¶
Os seguintes formatos de arquivo são suportados:
Estruturado/semiestruturado
Tipo
Notas
Estruturado
Delimitado (CSV, TSV, etc.)
Qualquer delimitador de byte único válido é suportado; o padrão é vírgula (ou seja, CSV).
Semiestruturado
JSON
Avro
Inclui detecção automática e processamento de arquivos Avro comprimidos.
ORC
Inclui detecção automática e processamento de arquivos ORC comprimidos.
Parquet
Inclui detecção automática e processamento de arquivos Parquet comprimidos. . . Atualmente, o Snowflake oferece suporte ao esquema de arquivos Parquet produzidos usando o gravador Parquet v1. Os arquivos produzidos usando v2 do gravador não são suportados.
XML
Com suporte como um recurso em versão preliminar.
As opções de formato de arquivo especificam o tipo de dados contidos em um arquivo, assim como outras características relacionadas ao formato dos dados. As opções de formato de arquivo que você pode especificar são diferentes, dependendo do tipo de dados que você planeja carregar. O Snowflake fornece um conjunto completo de padrões de opções de formato de arquivo.
Formatos de arquivo semiestruturados¶
O Snowflake oferece suporte nativamente a dados semiestruturados, o que significa que os dados semiestruturados podem ser carregados em tabelas relacionais sem a necessidade de definir previamente um esquema. O Snowflake oferece suporte ao carregamento de dados semiestruturados diretamente em colunas do tipo VARIANT (consulte Tipos de dados semiestruturados para obter mais detalhes).
Os formatos de dados semiestruturados suportados atualmente incluem JSON, Avro, ORC, Parquet ou XML:
Para dados JSON, Avro, ORC e Parquet, cada objeto completo de nível superior é carregado como uma linha separada na tabela. Cada objeto pode conter caracteres de nova linha e espaços, desde que o objeto seja válido.
Para os dados XML, cada elemento de nível superior é carregado como uma linha separada na tabela. Um elemento é identificado por uma tag etiqueta de início e fim com o mesmo nome.
Normalmente, as tabelas usadas para armazenar dados semiestruturados consistem em uma única coluna VARIANT. Uma vez carregados os dados, você pode consultar os dados semelhantes aos dados estruturados. Você também pode realizar outras tarefas, tais como extrair valores e objetos de matrizes. Para obter mais informações, consulte a função de tabela FLATTEN.
Nota
Dados semiestruturados podem ser carregados em tabelas com várias colunas, mas os dados semiestruturados devem ser armazenados como um campo em um arquivo estruturado (por exemplo, arquivo CSV). Então os dados podem ser carregados em uma coluna especificada na tabela.
Formatos de arquivos nomeados¶
O Snowflake oferece suporte à criação de formatos de arquivos nomeados, que são objetos de banco de dados que encapsulam todas as informações de formato necessárias. Os formatos de arquivo nomeados podem então ser usados como entrada em todos os mesmos lugares onde você pode especificar opções individuais de formato de arquivo, ajudando assim a agilizar o processo de carregamento de dados para dados com formato semelhante.
Os formatos de arquivo nomeados são opcionais, mas são recomendados quando se planeja carregar regularmente dados com formatos semelhantes.
Criação de um formato de arquivo nomeado¶
Você pode criar um formato de arquivo usando ou a interface da Web ou SQL:
- Snowsight:
Selecione Data » Databases.
Localize um banco de dados e selecione o esquema ao qual deseja adicionar o formato de arquivo.
Selecione Create » File Format.
Complete a instrução SQL e selecione Create File Format.
- Classic Console:
- SQL:
Para descrições de todas as opções de formato de arquivo e os valores padrão, consulte CREATE FILE FORMAT.
Substituição das opções de formato de arquivo padrão¶
Você pode definir as configurações de formato de arquivo para seus dados preparados (ou seja, ignorar as configurações padrão) em qualquer um dos seguintes locais:
- Na definição da tabela:
Defina explicitamente as opções usando o parâmetro FILE_FORMAT. Para obter mais informações, consulte CREATE TABLE.
- Na definição do estágio nomeado:
Defina explicitamente as opções usando o parâmetro FILE_FORMAT. O estágio é então referenciado na instrução COPY INTO TABLE. Para obter mais informações, consulte CREATE STAGE.
- Diretamente na instrução COPY INTO TABLE ao carregar dados:
Defina explicitamente as opções de maneira separada. Para obter mais informações, consulte COPY INTO <tabela>.
Se as opções de formato de arquivo forem especificadas em vários locais, a operação de carregamento aplica as opções na seguinte ordem de precedência:
Instrução COPY INTO TABLE.
Definição do estágio.
Definição da tabela.
Nota
As opções de formato de arquivo definidas em múltiplos locais não são cumulativas. Quaisquer opções definidas em um lugar substituem todas opções (sejam as mesmas ou diferentes opções) definidas abaixo na ordem de precedência.
Opções de cópia suportadas¶
As opções de cópia determinam o comportamento de um carregamento de dados com relação ao tratamento de erros, tamanho máximo de dados, etc.
Para descrições de todas as opções de cópia e os valores padrão, consulte COPY INTO <tabela>.
Substituição das opções de cópia padrão¶
Você pode especificar o comportamento de carga desejado (ou seja, anular as configurações padrão) em qualquer um dos seguintes locais:
- Na definição da tabela:
Defina explicitamente as opções usando o parâmetro STAGE_COPY_OPTIONS. Para obter mais informações, consulte CREATE TABLE.
- Na definição do estágio nomeado:
Defina explicitamente as opções usando o parâmetro COPY_OPTIONS. O estágio é então referenciado na instrução COPY INTO TABLE. Para obter mais informações, consulte CREATE STAGE.
- Diretamente na instrução COPY INTO TABLE ao carregar dados:
Defina explicitamente as opções de maneira separada. Para obter mais informações, consulte COPY INTO <tabela>.
Se as opções de cópia forem especificadas em vários locais, a operação de carregamento aplica as opções na seguinte ordem de precedência:
Instrução COPY INTO TABLE.
Definição do estágio.
Definição da tabela.
Nota
As opções de cópia definidas em vários locais são cumulativas. As opções individuais colocadas em um lugar substituem a mesma opção colocada mais abaixo na ordem de precedência.