Introdução aos pipelines de dados

Os pipelines de dados automatizam muitas das etapas manuais envolvidas na transformação e otimização de carregamentos contínuos de dados. Frequentemente, os dados «brutos» são primeiro carregados temporariamente em uma tabela de preparação usada para armazenamento temporário e depois transformados usando uma série de instruções de SQL antes de serem inseridos nas tabelas de relatório de destino. O fluxo de trabalho mais eficiente para este processo envolve a transformação apenas de dados novos ou modificados.

Neste tópico:

Recursos incluídos em pipelines contínuos de dados

O Snowflake oferece os seguintes recursos para permitir pipelines contínuos de dados:

Carregamento contínuo de dados

Dentre as opções para carregamento contínuo de dados estão:

Rastreamento de dados de alteração

Um objeto de fluxo registra o delta de informações de captura de dados de alteração (CDC) para uma tabela - tal como uma tabela de preparação - incluindo inserções e outras alterações na linguagem de manipulação de dados (DML). Um fluxo permite consultar e consumir um conjunto de alterações em uma tabela, no nível de linha, entre dois pontos de tempo transacionais.

Em um pipeline de dados contínuo, fluxos de tabela registram quando as tabelas de preparação e quaisquer tabelas a jusante são preenchidas com dados de aplicativos comerciais usando carregamento contínuo de dados e estão prontas para continuar o processamento usando instruções SQL.

Para obter mais informações, consulte Rastreamento de alterações usando fluxos de tabela.

Tarefas recorrentes

Um objeto tarefa define um cronograma recorrente para executar uma instrução SQL, incluindo instruções que chamam procedimentos armazenados. As tarefas podem ser encadeadas para uma execução sucessiva a fim de oferecer suporte a um processamento periódico mais complexo.

Opcionalmente, as tarefas podem usar fluxos de tabela para oferecer uma forma conveniente de processar continuamente dados novos ou alterados. Uma tarefa pode transformar linhas novas ou alteradas evidenciadas por um fluxo. Cada vez que uma tarefa é programada para ser executada, ela pode verificar se um fluxo contém dados de alteração para uma tabela (usando SYSTEM$STREAM_HAS_DATA) e consumir os dados de alteração ou pular a execução atual, caso não existiam dados de alteração.

Os usuários podem definir uma estrutura de tarefa simples em forma de árvore que executa instruções SQL consecutivas para processar dados e movê-los para várias tabelas de destino.

Para obter mais informações, consulte Execução de instruções SQL em um cronograma utilizando tarefas.

Fluxo de trabalho

O diagrama a seguir ilustra um fluxo contínuo de pipeline de dados comum usando a funcionalidade do Snowflake:

Continuous data pipeline flow
  1. Um dos seguintes recursos do Snowflake ou uma ferramenta de integração de dados de terceiros (não exibida) carrega os dados continuamente em uma tabela de preparação:

    Snowpipe

    O Snowpipe carrega continuamente microlotes de dados de um local de preparo externo (Amazon S3, Google Cloud Storage ou Microsoft Azure) em uma tabela de preparação.

    Conector Snowflake para Kafka

    O conector Kafka carrega continuamente registros de um ou mais tópicos de Apache Kafka para um preparo interno (de Snowflake) e depois para uma tabela de preparação usando o Snowpipe.

  2. Um ou mais fluxos de tabela capturam os dados de alteração e os disponibilizam para consulta.

  3. Uma ou mais tarefas executam instruções SQL (capazes de chamar procedimentos armazenados) para transformar os dados de alteração e mover os conjuntos de dados otimizados para tabelas de destino para análise. Cada vez que este processo de transformação é executado, ele seleciona os dados de alteração no fluxo para realizar operações DML nas tabelas de destino e depois consome os dados de alteração quando a transação é confirmada.