Sorties des pipelines Lakeflow

Par défaut, les flux de pipeline écrivent des résultats dans des tables Delta gérées par le catalogue Unity, généralement des tables de streaming ou des vues matérialisées. Les récepteurs sont une autre cible de sortie qui vous permet d’écrire des données transformées vers des destinations situées en dehors du stockage géré par Databricks, comme des services de streaming d’événements ou des magasins de données personnalisés.

Les récepteurs sont utilisés avec des flux en ajout. Vous définissez un collecteur à l’aide de l’une des API de collecteur, puis faites-y référence en tant que target dans votre définition append_flow.

Quand utiliser des sinks

Databricks recommande d’utiliser des récepteurs lorsque vous devez :

  • Créez des cas d’usage opérationnels avec une faible latence, comme la détection des fraudes, l’analyse en temps réel ou les recommandations des clients, où les données doivent circuler vers un bus de messages plutôt que vers le stockage cloud. Pour les charges de travail nécessitant une latence en millisecondes, consultez Utiliser le mode en temps réel dans les pipelines Lakeflow.
  • Écrivez des données transformées dans des tables gérées par une instance Delta externe, y compris les tables gérées par le catalogue Unity et les tables externes.
  • Effectuer un ETL inversé vers des systèmes externes, par exemple en réécrivant des données traitées dans des topics Apache Kafka pour qu’elles soient consommées en dehors d’Azure Databricks.
  • Écrire dans un format non pris en charge nativement par Azure Databricks, à l’aide de sources de données Python personnalisées.

Types de récepteur

Les pipelines prennent en charge les types de récepteurs suivants :

Type de récepteur Description
Récepteurs de table Delta Écrivez dans des tables Delta gérées par Unity Catalog ou externes. Spécifiez un chemin de fichier ou un nom de table entièrement qualifié.
Récepteurs Apache Kafka Écrire vers des rubriques Apache Kafka à l’aide du connecteur Kafka inclus dans le runtime du pipeline.
Récepteurs Azure Event Hubs Écrivez dans Azure Event Hubs à l’aide de l’interface Kafka. Utilise les mêmes options que les récepteurs Kafka.
Sinks Python personnalisés Écrire vers n’importe quel magasin de données à l’aide d’une source de données Python personnalisée enregistrée avec spark.dataSource.register.
Récepteurs ForEachBatch Appliquez une logique de Python personnalisée à chaque micro-lot de données de streaming. À utiliser lorsque vous devez écrire vers plusieurs destinations, effectuer des opérations d’upsert ou utiliser des cibles qui ne prennent pas en charge nativement l’écriture en streaming.

API des récepteurs

Les pipelines fournissent deux API pour la création de récepteurs :

Les deux types de récepteurs sont utilisés comme target d’un append_flow.

Limitations

  • Les récepteurs ne sont disponibles que dans Python. SQL n’est pas pris en charge.
  • Seules les requêtes de diffusion en continu sont prises en charge. Les requêtes Batch ne sont pas prises en charge.
  • Seul append_flow peut écrire vers des récepteurs ; create_auto_cdc_flow et les autres types de flux ne sont pas pris en charge.
  • Les règles de validation du pipeline ne sont pas prises en charge pour les récepteurs.
  • L’exécution d’une actualisation complète ne supprime pas les données déjà écrites dans les récepteurs.

Ressources additionnelles