Gerenciamento de carregamentos de dados regulares

Este tópico fornece práticas recomendadas, diretrizes gerais e considerações importantes para o gerenciamento de carregamentos de dados regulares.

Neste tópico:

Particionamento de arquivos de dados preparados

Ao planejar carregamentos de dados regulares como importações regulares de dados gerados por máquinas ou processos ETL (extrair, transformar, carregar), é importante dividir os dados em seu estágio interno (ou seja, Snowflake) ou em locais externos (buckets S3 ou contêineres Azure) usando caminhos lógicos e granulares. Crie uma estrutura de particionamento que inclua detalhes de identificação, como aplicativo ou localização, juntamente com a data em que os dados foram gravados. Você pode então copiar qualquer fração dos dados particionados para o Snowflake com um único comando. Você pode copiar dados para o Snowflake por hora, dia, mês ou até mesmo ano quando preencher as tabelas pela primeira vez.

Alguns exemplos de buckets S3 particionados usando caminhos:

s3://bucket_name/application_one/2016/07/01/11/

s3://bucket_name/application_two/location_one/2016/07/01/14/

Onde:

application_one , application_two , location_one etc.

Identificação de detalhes para a fonte de todos os dados no caminho. Os dados podem ser organizados pela data em que foram gravados. Um diretório opcional de 24 horas reduz a quantidade de dados em cada diretório.

Nota

O S3 transmite uma lista de diretórios com cada instrução COPY utilizada pelo Snowflake, por isso reduzir o número de arquivos em cada diretório melhora o desempenho de suas instruções COPY. Você pode até considerar a criação de subpastas de incrementos de 10 a 15 minutos dentro das pastas para cada hora.

Da mesma forma, você também pode adicionar um caminho ao preparar arquivos em um estágio interno. Por exemplo:

PUT file:///tmp/file_20160701.11*.csv @my_stage/<application_one>/<location_one>/2016/07/01/11/;
Copy

Carregamento de dados preparados

Carregue os arquivos de dados organizados nas tabelas do Snowflake especificando o caminho exato dos arquivos preparados. Para obter mais informações, consulte Organização dos dados por caminho.

Remoção de arquivos de dados carregados

Quando os dados dos arquivos preparados forem carregados com sucesso, considere remover os arquivos preparados para garantir que os dados não sejam carregados inadvertidamente novamente (duplicados).

Nota

Não remova os arquivos preparados até que os dados tenham sido carregados com sucesso. Para verificar se os dados foram carregados com sucesso, use o comando COPY_HISTORY. Verifique a coluna STATUS para determinar se os dados do arquivo foram carregados. Observe que se o status for Load in progress, a remoção do arquivo preparado pode resultar em carregamentos parciais e perda de dados.

Arquivos preparados podem ser excluídos de um estágio do Snowflake (estágio do usuário, estágio da tabela ou estágio nomeado) usando os seguintes métodos:

  • Os arquivos que foram carregados com sucesso podem ser excluídos do estágio durante um carregamento especificando a opção de cópia PURGE no comando COPY INTO <tabela>.

  • Após a conclusão do carregamento, use o comando REMOVE para remover os arquivos no estágio.

A remoção dos arquivos garante que eles não sejam carregados inadvertidamente novamente. Também melhora o desempenho de carregamento, pois reduz o número de arquivos que os comandos COPY devem examinar para verificar se os arquivos existentes em um estágio já foram carregados.