Pular para o conteúdo principal

Carregar e processar dados incrementalmente com fluxos de Pipelines Declarativos do Lakeflow Spark

Os dados são processados em pipelines por meio de fluxos . Cada fluxo consiste em uma *consulta* e, tipicamente, um *destino*. O fluxo processa a consulta, seja em lote ou gradualmente como uma transmissão de dados para o destino. Um fluxo vive em um pipeline em LakeFlow Spark Declarative Pipelines.

Normalmente, os fluxos são definidos automaticamente ao criar uma consulta em um pipeline que atualiza um destino, mas também é possível definir explicitamente fluxos adicionais para processamento mais complexo, como anexar a um único destino a partir de múltiplas fontes.

Atualizações

Um fluxo é executado sempre que o pipeline que o define é atualizado. O fluxo criará ou atualizará tabelas com os dados mais recentes disponíveis. Dependendo do tipo de fluxo e do estado das alterações nos dados, a atualização pode realizar um refresh incremental, que processa apenas novos registros, ou realizar um refresh completo, que reprocessa todos os registros da fonte de dados.

default flows and append flows

Quando você cria uma consulta em um pipeline que atualiza um destino, um *fluxo default* é definido automaticamente. Para uma tabela de transmissão, o fluxo default é um fluxo de acréscimo que adiciona novas linhas a cada atualização e tem o mesmo nome que o destino. Criar um fluxo e seu destino em um único o passo é a maneira mais comum de usar pipeline, e pode-se usá-lo para ingerir ou transformar dados.

É possível também definir fluxos separadamente de um destino, o que permite que vários fluxos anexem dados a um único destino. Isto é útil quando você precisar:

  • Adicione fontes de transmissão que acrescentam dados a uma tabela de transmissão existente sem exigir um refresh completo.
  • Preencher retroativamente uma tabela de transmissão com dados históricos ausentes.
  • Combine dados de diversas fontes sem utilizar uma cláusula UNION.

Para exemplos de como criar fluxos default e explícitos, consulte Usar fluxos em Lakeflow Spark Declarative Pipelines.

Tipos de fluxos

Os fluxos default para tabelas de transmissão e views materializadas são fluxos de acréscimo. Você também pode criar fluxos para ler de captura de dados de alterações (CDC) e fontes de dados. A tabela a seguir descreve os diferentes tipos de fluxos.

Tipo de fluxo

Descrição

Acrescentar

Fluxos de acréscimo são o tipo de fluxo mais comum, onde novos registros na origem são gravados no destino a cada atualização. Correspondem ao modo Anexar em transmissão estructurada. Você pode adicionar o sinalizador ONCE, indicando uma consulta em lote cujos dados devem ser inseridos no destino apenas uma vez, a menos que o destino seja totalmente atualizado. Qualquer número de fluxos de acréscimo pode gravar em um destino.

Fluxos default (criados com a tabela de transmissão de destino ou view materializada) terão o mesmo nome que o destino. Outros destinos não têm fluxos padrão.

CDC automático (anteriormente *aplicar alterações*)

Um fluxo Auto CDC ingere uma consulta que contém dados de captura de dados de alterações (CDC). Os fluxos de CDC automático podem ter como destino apenas tabelas de transmissão, e a fonte deve ser uma fonte de transmissão (mesmo no caso de fluxos ONCE). Vários fluxos CDC automáticos podem ter como destino uma única tabela de transmissão. Uma tabela de transmissão que serve de destino para um fluxo de CDC automático só pode ser alvo de outros fluxos de CDC automático.

Para obter mais informações sobre dados de CDC, consulte As APIs AUTO CDC: Simplifique a captura de dados de alterações (CDC) com pipelines.

Atualização (Pré-lançamento público)

Fluxos de atualização geram agregados de transmissão globais e sem marca d'água para um coletor, emitindo apenas os registros que foram alterados em cada lote.

Fluxos de atualização só estão disponíveis no Python. Consulte update_flow.

Recursos adicionais

Para obter mais informações sobre fluxos e sua utilização, consulte os seguintes tópicos: