Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Por padrão, os fluxos de pipeline gravam resultados em tabelas Delta gerenciadas pelo Catálogo do Unity, normalmente transmitindo tabelas ou exibições materializadas. Coletores são um destino de saída alternativo que permite gravar dados transformados em destinos fora do armazenamento gerenciado pelo Databricks, como serviços de streaming de eventos ou armazenamentos de dados personalizados.
Coletores são usados com fluxos de acréscimo. Você define um coletor usando uma das APIs do coletor e, em seguida, faz referência a ele como o target em sua append_flow definição.
Quando usar os coletores
O Databricks recomenda o uso de coletores quando você precisa:
- Crie casos de uso operacional com baixa latência, como detecção de fraude, análise em tempo real ou recomendações do cliente, em que os dados devem fluir para um barramento de mensagens em vez de armazenamento em nuvem. Para cargas de trabalho que exigem latência na casa dos milissegundos, consulte Use o modo de tempo real em pipelines do Lakeflow..
- Grave dados transformados em tabelas gerenciadas por uma instância externa do Delta, incluindo tabelas gerenciadas pelo Unity Catalog e tabelas externas.
- Realizar ETL reverso em sistemas externos, por exemplo, gravando dados processados de volta em tópicos do Apache Kafka para consumo fora do Azure Databricks.
- Grave em um formato não suportado nativamente pelo Azure Databricks, usando fontes de dados personalizadas em Python.
Tipos de coletor
Os pipelines dão suporte aos seguintes tipos de coletor:
| Tipo de coletor | Descrição |
|---|---|
| Coletores de tabela delta | Grave em tabelas Delta gerenciadas ou externas no Unity Catalog. Especifique um caminho de arquivo ou um nome de tabela totalmente qualificado. |
| Coletores do Apache Kafka | Escreva nos tópicos do Apache Kafka usando o conector Kafka incluído no ambiente de execução do pipeline. |
| Coletores dos Hubs de Eventos do Azure | Gravar em Hubs de Eventos do Azure usando a interface Kafka. Usa as mesmas opções que os coletores Kafka. |
| Sinks personalizados em Python | Grave em qualquer repositório de dados usando uma fonte de dados personalizada em Python registrada com spark.dataSource.register. |
| Coletores ForEachBatch | Aplique a lógica de Python personalizada a cada microlote de dados de streaming. Use quando precisar gravar em vários destinos, executar upserts ou usar destinos que não dão suporte a gravações de streaming nativamente. |
APIs de coletor
Os pipelines fornecem duas APIs para criar coletores:
-
create_sink(): cria um coletor nomeado de um tipo com suporte (Delta, Kafka, AEH ou Python fonte de dados personalizada). Disponível apenas em Python. Consulte Usar coletores em pipelines. -
foreach_batch_sink(): Decora uma função do Python que é executada para cada microlote de dados em streaming. Fornece flexibilidade máxima para a lógica de gravação personalizada. Consulte Usar o ForEachBatch para gravar nos coletores de dados arbitrários em pipelines.
Ambos os tipos de coletor são referidos como o target de um append_flow.
Limitações
- Os coletores só estão disponíveis em Python. Não há suporte para SQL.
- Há suporte apenas para consultas de streaming. Não há suporte para consultas em lote.
- Apenas
append_flowpode gravar em coletores;create_auto_cdc_flowe outros tipos de fluxo não têm suporte. - Não há suporte para expectativas de pipeline para coletores.
- Executar uma atualização completa não limpa dados gravados anteriormente em coletores.