Coletores em Lakeflow Spark Declarative Pipelines
Por padrão, os fluxos de pipeline escrevem 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.
Destinos são utilizados com fluxos de acréscimo. É possível definir um coletor usando uma das APIs de coletor e referenciá-lo como target na definição de append_flow.
Quando usar as pias
O Databricks recomenda usar coletores quando for necessário:
- Crie casos de uso operacionais com baixa latência, como detecção de fraudes, analítica em tempo real ou recomendações para clientes, onde os dados precisam 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 de Tempo Real nos Pipelines Declarativos do Lakeflow Spark.
- 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 |
Coletores de dados ForEachBatch | 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. |
APIs de destino
Os pipelines fornecem duas APIs para criar destinos:
create_sink(): Cria um destino nomeado de um tipo compatível (Delta, Kafka, AEH ou fonte de dados personalizada Python). Disponível apenas para o Python. Consulte Usar sinks em pipelines.foreach_batch_sink(): Decora uma função Python que é executada para cada micro-batch de dados em transmissão. Oferece máxima flexibilidade para lógica de escrita personalizada. Consulte usar o ForEachBatch para gravar em coletores de dados arbitrários em pipelines.
Ambos os tipos de destino são referenciados como o target de um append_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_flowpode gravar em coletores de dados;create_auto_cdc_flowe outros tipos de fluxo não são suportados. - Expectativas de pipeline não são compatíveis com destinos.
- Um refresh completo não limpa os dados previamente gravados em sinks.