Aller au contenu principal

Sinks dans les LakeFlow Pipelines

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

Vous définissez un sink en utilisant l'une des APIs de sink, puis vous le référez comme target dans votre définition de append_flow ou update_flow.

Quand utiliser des récepteurs​

Databricks recommande d'utiliser des récepteurs lorsque vous en avez besoin :

  • Créez des cas d'utilisation opérationnels à faible latence, tels que la détection de la fraude, l'analytique en temps réel ou les recommandations client, où les données doivent circuler vers un bus de messages plutôt que vers un stockage cloud. Pour les charges de travail qui nécessitent une latence de l'ordre de la milliseconde, consultez Utiliser le mode temps réel dans les pipelines Lakeflow.
  • Écrire les données transformées dans des tables gérées par une instance Delta externe, y compris les tables gérées et externes de Unity Catalog.
  • Effectuez l'ETL inverse vers des systèmes externes, par exemple en réécrivant les données traitées dans les rubriques Apache Kafka pour une consommation en dehors de Databricks.
  • Écrivez dans un format non pris en charge en mode natif par Databricks, à l’aide de sources de données Python personnalisées.

Types de récepteur​

Les pipelines prennent en charge les types de destination suivants :

Type de puits

Description

Récepteurs de table Delta

Écrire 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é.

Puits Apache Kafka

Écrivez dans les rubriques Apache Kafka à l'aide du connecteur Kafka inclus dans l'environnement d'exécution du pipeline.

Destinations Azure Event Hub

Écrire dans Azure Event Hubs en utilisant l'interface Kafka. Utilise les mêmes options que les récepteurs Kafka.

Puits Python personnalisés

Écrivez dans n’importe quelle source de données à l’aide d’une source de données personnalisée Python enregistrée avec spark.dataSource.register.

ForEachBatch puits

Appliquez une logique Python personnalisée à chaque micro-batch de données en streaming. Utilisez lorsque vous devez écrire vers plusieurs destinations, effectuer des upserts ou utiliser des cibles qui ne prennent pas en charge les écritures en streaming en mode natif.

ForEach puits

Appliquez une logique Python personnalisée à chaque ligne de données en streaming. À utiliser lorsque vous avez besoin d’écrire chaque enregistrement vers une destination qui ne dispose pas de connecteur intégré (sink), comme une API externe ou un magasin clé-valeur.

Type de puits

Description

Récepteurs de table Delta

Écrire 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é.

Puits Apache Kafka

Écrivez dans les rubriques Apache Kafka à l'aide du connecteur Kafka inclus dans l'environnement d'exécution du pipeline.

Destinations Azure Event Hub

Écrire dans Azure Event Hubs en utilisant l'interface Kafka. Utilise les mêmes options que les récepteurs Kafka.

Puits Python personnalisés

Écrivez dans n’importe quelle source de données à l’aide d’une source de données personnalisée Python enregistrée avec spark.dataSource.register.

ForEachBatch puits

Appliquez une logique Python personnalisée à chaque micro-batch de données en streaming. Utilisez lorsque vous devez écrire vers plusieurs destinations, effectuer des upserts ou utiliser des cibles qui ne prennent pas en charge les écritures en streaming en mode natif.

ForEach puits

Appliquez une logique Python personnalisée à chaque ligne de données en streaming. À utiliser lorsque vous avez besoin d’écrire chaque enregistrement vers une destination qui ne dispose pas de connecteur intégré (sink), comme une API externe ou un magasin clé-valeur.

APIs Sink​

Les pipelines disposent de trois APIs pour créer des sinks :

Vous référencez les trois types de récepteurs comme target de append_flow ou update_flow.

Limitations​

  • Les récepteurs ne sont disponibles qu'en Python. SQL n'est pas pris en charge.

  • Seules les queries de streaming sont prises en charge. Les requêtes batch ne sont pas prises en charge.

  • Seuls append_flow et update_flow peuvent écrire dans des puits. create_auto_cdc_flow et d'autres types de flux ne sont pas pris en charge.

    • Les flux de mise à jour ne prennent pas en charge les sinks de table Delta Lake.
  • Les attentes de pipeline ne sont pas prises en charge pour les puits.

  • L'exécution d'un refresh complet ne nettoie pas les données précédemment écrites dans les récepteurs.

Ressources supplémentaires​