Preparação de dados

Este tópico fornece as práticas recomendadas, diretrizes gerais e considerações importantes para preparar seus arquivos de dados para carregamento.

Neste tópico:

Organização dos dados por caminho

Tanto referências internas (ou seja, Snowflake) quanto externas (Amazon S3, Google Cloud Storage ou Microsoft Azure) de estágio podem incluir um caminho (ou prefixo na terminologia AWS). Ao preparar conjuntos de dados regulares, recomendamos dividir os dados em caminhos lógicos que incluem detalhes de identificação, como localização geográfica ou outros identificadores de origem, juntamente com a data em que os dados foram gravados.

Organizar seus arquivos de dados por caminho permite copiar qualquer fração dos dados particionados para o Snowflake com um único comando. Isso permite executar instruções COPY simultâneas que correspondem a um subconjunto de arquivos, tirando proveito de operações paralelas.

Por exemplo, se você estiver armazenando dados de uma empresa norte-americana por localização geográfica, você pode incluir identificadores como continente, país e cidade em caminhos, juntamente com datas de gravação de dados:

  • Canadá/Ontário/Toronto/2016/07/10/05/

  • Estados_Unidos/Califórnia/Los_Angeles/2016/06/01/11/

  • Estados_Unidos/Nova_York/Nova_York/2016/12/21/03/

  • Estados_Unidos/Califórnia/São_Francisco/2016/08/03/17/

Quando você cria um estágio nomeado, você pode especificar qualquer parte de um caminho. Por exemplo, criar um estágio externo utilizando um dos caminhos de exemplo acima:

CREATE STAGE my_stage URL='s3://mybucket/United_States/California/Los_Angeles/' CREDENTIALS=(AWS_KEY_ID='1a2b3c' AWS_SECRET_KEY='4x5y6z');
Copy

Você também pode adicionar um caminho durante o preparo de arquivos em um usuário interno ou em um estágio da tabela. Por exemplo, estágio mydata.csv em um caminho específico no estágio da tabela t1:

PUT file:///data/mydata.csv @%t1/United_States/California/Los_Angeles/2016/06/01/11/
Copy

Ao carregar seus dados preparados, estreite o caminho até o nível mais granular que inclui seus dados para um melhor desempenho do carregamento de dados.

Use qualquer uma das seguintes opções para limitar ainda mais a lista de arquivos a serem carregados:

  • Se os nomes dos arquivos corresponderem, exceto por um sufixo ou extensão, inclua a parte correspondente dos nomes dos arquivos no caminho, por exemplo:

    COPY INTO t1 from @%t1/United_States/California/Los_Angeles/2016/06/01/11/mydata;
    
    Copy
  • Adicione as opções FILES ou PATTERN (consulte Opções para seleção de arquivos de dados preparados), por exemplo:

    COPY INTO t1 from @%t1/United_States/California/Los_Angeles/2016/06/01/11/
      FILES=('mydata1.csv', 'mydata1.csv');
    
    COPY INTO t1 from @%t1/United_States/California/Los_Angeles/2016/06/01/11/
      PATTERN='.*mydata[^[0-9]{1,3}$$].csv';
    
    Copy