Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Por predefinição, os fluxos de processamento do pipeline escrevem resultados em tabelas Delta geridas pelo Unity Catalog, normalmente tabelas de streaming ou vistas materializadas. Os sinks são um destino alternativo de saída que permite escrever dados transformados para destinos fora do armazenamento gerido pela Databricks, como serviços de streaming de eventos ou repositórios de dados personalizados.
Os lavadouros são usados com escoamentos de adição. Define um sink utilizando uma das APIs de sink e, em seguida, referencia-o como target na definição de append_flow.
Quando usar lava-loiças
O Databricks recomenda usar sinks quando for necessário:
- Construir casos de uso operacionais com baixa latência, como deteção de fraude, análises em tempo real ou recomendações de clientes, onde os dados devem fluir para um barramento de mensagens em vez de armazenamento na cloud. Para cargas de trabalho que requerem latência de milissegundos, consulte Utilizar o modo em tempo real nos Pipelines Declarativos do Lakeflow Spark.
- Escreva dados transformados em tabelas geridas por uma instância externa do Delta, incluindo tabelas geridas pelo Unity Catalog e tabelas externas.
- Efetue ETL reverso em sistemas externos, por exemplo, escrevendo dados processados de volta para tópicos do Apache Kafka, para serem consumidos fora do Azure Databricks.
- Escreva num formato que não seja suportado nativamente pelo Azure Databricks, usando fontes de dados personalizadas em Python.
Tipos de pias
Os oleodutos suportam os seguintes tipos de sumidouros:
| Tipo de lava-louça | Description |
|---|---|
| Sumidouros da tabela delta | Escreva em tabelas Delta geridas pelo Unity Catalog ou externas. Especifique um caminho de ficheiro ou um nome de tabela totalmente qualificado. |
| Pias Apache Kafka | Escreva em tópicos Apache Kafka usando o conector Kafka incluído no ambiente de execução do pipeline. |
| Destinos dos Hubs de Eventos do Azure | Escreva no Hubs de Eventos do Azure usando a interface Kafka. Usa as mesmas opções que Kafka Sinks. |
| Sinks personalizados em Python | Escreva em qualquer data store usando uma fonte de dados personalizada em Python registada em spark.dataSource.register. |
| ForEachBatch afunda-se | Aplicar lógica Python personalizada a cada micro-lote de dados em streaming. Usa quando precisas de escrever para múltiplos destinos, fazer upserts ou usar alvos que não suportam escritas em streaming nativamente. |
Sink APIs
Os pipelines fornecem duas APIs para criar sumidouros:
-
create_sink(): Cria um sumidouro nomeado de um tipo suportado (fonte de dados personalizada Delta, Kafka, AEH ou Python). Disponível apenas em Python. Veja Usar sumidouros em oleodutos. -
foreach_batch_sink(): Decora uma função Python que corre para cada micro-lote de dados em streaming. Proporciona máxima flexibilidade para lógica de escrita personalizada. Veja Use ForEachBatch para escrever em destinos de dados arbitrários em pipelines.
Ambos os tipos de sink são designados por target de um append_flow.
Limitações
- Os sinks só estão disponíveis em Python. SQL não é suportado.
- Apenas consultas de streaming são suportadas. Não há suporte para consultas em lote.
- Só
append_flowpode escrever em sumidouros;create_auto_cdc_flowe outros tipos de escoamento não são suportados. - As expectativas do oleoduto não são suportadas para os sumidouros.
- Executar uma atualização completa não limpa os dados previamente escritos nos sinks.