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

Dados são processados em pipelines por meio de fluxos. Cada fluxo consiste em uma consulta e, normalmente, um destino. O fluxo processa a consulta, seja como um lote, ou incrementalmente como um fluxo de dados para o destino. Um fluxo reside em um pipeline no Lakeflow Spark Declarative Pipelines.

Normalmente, os fluxos são definidos automaticamente quando você cria uma consulta em um pipeline que atualiza um destino, mas você também pode definir explicitamente fluxos adicionais para processamento mais complexo, como acrescentar a um único destino de várias fontes.

Atualizações

Um fluxo é executado sempre que seu pipeline de definição é 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 executar uma atualização incremental, que processa apenas novos registros ou executa uma atualização completa, que reprocessa todos os registros da fonte de dados.

Fluxos padrão e fluxos de acréscimo

Quando você cria uma consulta em um pipeline que atualiza um destino, um fluxo padrão é definido automaticamente. Para uma tabela de streaming, o fluxo padrão é um fluxo append que adiciona novas linhas a cada atualização e tem o mesmo nome do que o destino. Criar um fluxo e seu destino em uma única etapa é a forma mais comum de usar pipelines, e você pode fazer isso para coletar ou transformar dados.

Você também pode definir fluxos separadamente de um destino, o que permite que vários fluxos acrescentem dados a um único destino. Isso é útil quando você precisa:

  • Adicione fontes de streaming que acrescentam a uma tabela de streaming existente sem a necessidade de uma atualização completa.
  • Faça o backup de uma tabela de streaming com dados históricos ausentes.
  • Combine dados de várias fontes sem usar uma UNION cláusula.

Para ver exemplos de como criar fluxos padrão e explícitos, consulte Usar fluxos nos Pipelines Declarativos do Lakeflow Spark.

Tipos de fluxos

Os fluxos padrão para tabelas de streaming e visões materializadas são fluxos de adição. Você também pode criar fluxos para ler de fontes de captura de dados de alteração. A tabela a seguir descreve os diferentes tipos de fluxos.

Tipo de fluxo Description
Acrescentar Fluxos de acréscimo são o tipo mais comum de fluxo, em que novos registros na origem são gravados no destino a cada atualização. Eles correspondem ao modo de acréscimo no streaming estruturado. Você pode adicionar o ONCE marcador, indicando uma consulta em lote cujos dados devem ser inseridos no destino apenas uma vez, exceto quando o destino estiver totalmente atualizado. Qualquer número de fluxos de acréscimo pode gravar em um destino específico.
Os fluxos padrão (criados com a tabela de streaming de destino ou o modo de exibição materializado) terão o mesmo nome que o destino. Outros alvos não têm fluxos padrão.
CDC automático (anteriormente conhecido como aplicar alterações) Um fluxo Auto CDC ingere uma consulta que contém dados de captura de dados de alteração (CDC). Fluxos CDC automáticos só podem direcionar tabelas de streaming, e a origem deve ser uma fonte de streaming (mesmo no caso de fluxos ONCE). Vários fluxos CDC automáticos podem ser direcionados a uma única tabela de streaming. Uma tabela de streaming que atua como um destino para um fluxo de CDC automático só pode ser direcionada por outros fluxos de CDC automáticos.
Para obter mais informações sobre dados CDC, consulte as APIs AUTO CDC: Simplifique a captura de dados de alteração com pipelines.
Atualização (versão prévia pública) Os fluxos de atualização geram agregações globais de streaming sem marca d'água para um coletor, emitindo apenas os registros que foram alterados em cada lote.
Os fluxos de atualização só estão disponíveis em Python. Veja update_flow.

Recursos adicionais

Para obter mais informações sobre fluxos e seu uso, consulte os seguintes tópicos: