Pular para o conteúdo principal

Coletores em LakeFlow Pipelines

Por default, os fluxos de pipeline gravam os resultados em tabelas Delta gerenciadas pelo Unity Catalog, tipicamente tabelas de transmissão ou views materializadas. Coletores são um destino de saída alternativo que permitem gravar dados transformados em destinos fora do armazenamento gerenciado pelo Databricks, como serviços de transmissão de eventos ou armazenamentos de dados personalizados.

Você define um sink usando uma das APIs sink e, em seguida, faz referência a ele como target na definição do append_flow ou update_flow.

Quando usar as pias​

O Databricks recomenda usar coletores quando for necessário:

  • Construa casos de uso operacionais com baixa latência, como detecção de fraudes, analítica em tempo real ou recomendações de clientes, onde os dados devem fluir para um barramento de mensagens em vez de armazenamento em cloud. Para cargas de trabalho que exigem latência de milissegundos, consulte Usar o modo em tempo real em Lakeflow Pipelines.
  • Grave dados transformados em tabelas gerenciadas por uma instância Delta externa, incluindo tabelas gerenciadas e externas do Unity Catalog.
  • Realizar ETL reverso em sistemas externos, como escrever dados processados de volta para tópicos do Apache Kafka para consumo fora do Databricks.
  • Escreva em um formato não suportado nativamente pelo Databricks, usando fontes de dados personalizadas em Python.

Tipos de destino​

Os pipelines são compatíveis com os seguintes tipos de destino:

Tipo de pia

Descrição

Destinos de tabelas Delta

Gravar em tabelas Delta gerenciadas ou externas do Unity Catalog. Especifique um caminho de arquivo ou um nome de tabela totalmente qualificado.

Apache Kafka sinks

A gravação em tópicos do Apache Kafka pode ser realizada utilizando o conector Kafka incluído no runtime do pipeline.

Destinos dos Hubs de Eventos do Azure

Grave em Hubs de Eventos do Azure usando a interface Kafka. Usa as mesmas opções que os sinks Kafka.

Sinos personalizados em Python

Escreva em qualquer armazenamento de dados usando uma fonte de dados personalizada Python registrada com spark.dataSource.register.

ForEachBatch sinks

Aplicar lógica Python personalizada a cada microlote de dados de transmissão. Utilize quando for necessário gravar em vários destinos, executar upserts, ou usar alvos que não ofereçam suporte a gravações em transmissão nativamente.

ForEach sinks

Aplique lógica Python personalizada a cada linha de transmissão de dados. Use quando você precisar gravar cada registro em um destino que não tem sink integrada, como uma API externa ou um armazenamento de key-valor.

Tipo de pia

Descrição

Destinos de tabelas Delta

Gravar em tabelas Delta gerenciadas ou externas do Unity Catalog. Especifique um caminho de arquivo ou um nome de tabela totalmente qualificado.

Apache Kafka sinks

A gravação em tópicos do Apache Kafka pode ser realizada utilizando o conector Kafka incluído no runtime do pipeline.

Destinos dos Hubs de Eventos do Azure

Grave em Hubs de Eventos do Azure usando a interface Kafka. Usa as mesmas opções que os sinks Kafka.

Sinos personalizados em Python

Escreva em qualquer armazenamento de dados usando uma fonte de dados personalizada Python registrada com spark.dataSource.register.

ForEachBatch sinks

Aplicar lógica Python personalizada a cada microlote de dados de transmissão. Utilize quando for necessário gravar em vários destinos, executar upserts, ou usar alvos que não ofereçam suporte a gravações em transmissão nativamente.

ForEach sinks

Aplique lógica Python personalizada a cada linha de transmissão de dados. Use quando você precisar gravar cada registro em um destino que não tem sink integrada, como uma API externa ou um armazenamento de key-valor.

APIs de destino​

Os pipelines têm três APIs para criar sinks:

Você faz referência a todos os três tipos de coletor como o target de um append_flow ou update_flow.

Limitações​

  • Coletores estão disponíveis apenas para o Python. SQL não é compatível.

  • Apenas consultas de transmissão são suportadas. Queries em lote não são compatíveis.

  • Somente append_flow e update_flow podem gravar nos sinks. create_auto_cdc_flow e outros tipos de fluxo não são suportados.

    • Os fluxos de atualização não suportam sinks de tabela Delta Lake.
  • Expectativas de pipeline não são compatíveis com destinos.

  • Um refresh completo não limpa os dados previamente gravados em sinks.

Recursos adicionais​