Sumideros en las canalizaciones declarativas de Spark de Lakeflow

De forma predeterminada, los flujos de procesamiento de pipeline escriben los resultados en tablas Delta administradas por Unity Catalog, normalmente tablas de transmisión o vistas materializadas. Los receptores son un destino de salida alternativo que permite escribir datos transformados en destinos fuera del almacenamiento administrado por Databricks, como servicios de streaming de eventos o almacenes de datos personalizados.

Los sumideros se usan con flujos de anexado. Define un sink mediante una de las API de sink y, a continuación, haz referencia a él como target en la definición de append_flow.

Cuándo usar sumideros

Databricks recomienda usar sinks cuando necesite lo siguiente:

  • Cree casos de uso operativos con baja latencia, como la detección de fraudes, el análisis en tiempo real o las recomendaciones de los clientes, donde los datos deben fluir a un bus de mensajes en lugar de almacenamiento en la nube. Para las cargas de trabajo que requieren una latencia de milisegundos, consulte Uso del modo de tiempo real en canalizaciones declarativas de Lakeflow Spark.
  • Escriba los datos transformados en tablas gestionadas por una instancia externa de Delta, incluidas las tablas administradas por Unity Catalog y las tablas externas.
  • Realizar ETL inverso en sistemas externos, como volver a escribir los datos procesados en temas de Apache Kafka para su consumo fuera de Azure Databricks.
  • Escribir en un formato que Azure Databricks no admite de forma nativa, mediante orígenes de datos personalizados de Python.

Tipos de destino

Las canalizaciones admiten los siguientes tipos de destino:

Tipo de sumidero Description
Receptores de tabla Delta Escribir en las tablas Delta administradas o externas de Unity Catalog. Especifique una ruta de archivo o un nombre de tabla completamente calificado.
Receptores de Apache Kafka Escriba en los tópicos de Apache Kafka utilizando el conector de Kafka incluido en el entorno de ejecución de la canalización.
Receptores de Azure Event Hubs Escriba en Azure Event Hubs mediante la interfaz de Kafka. Usa las mismas opciones que los sinks de Kafka.
Sumideros personalizados de Python Escriba en cualquier almacén de datos usando un origen de datos personalizado de Python registrado con spark.dataSource.register.
Sumideros ForEachBatch Aplique una lógica de Python personalizada a cada microlote de datos de streaming. Use cuando necesite escribir en varios destinos, realizar upserts o usar destinos que no admitan escrituras de streaming de forma nativa.

API de sumideros

Las canalizaciones proporcionan dos API para crear receptores:

Se hace referencia a ambos tipos de sumidero como el target de un append_flow.

Limitaciones

  • Los sumideros solo están disponibles en Python. SQL no se admite.
  • Solo se admiten consultas de streaming. No se admiten consultas por lotes.
  • Solo append_flow puede escribir en receptores; create_auto_cdc_flow y otros tipos de flujo no se admiten.
  • Las expectativas de canalización no se admiten para los receptores.
  • Ejecutar una actualización completa no elimina los datos escritos previamente en los sinks.

Recursos adicionales