Mode de pipeline Triggered vs. continu
Les modes de Trigger et continu contrôlent la manière dont un pipeline traite les données : le mode Trigger refresh les données disponibles et s'arrête, tandis que le mode continu maintient les tables à jour à mesure que de nouvelles données arrivent. 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.
Le mode pipeline est indépendant du type de table en cours de compute. Les vues matérialisées et les tables de streaming peuvent être mises à jour dans l’un ou l’autre des modes de pipeline.
Pour passer de Trigger à continu, utilisez l'option **Mode de pipeline** dans les paramètres du pipeline lors de la création ou de la modification d'un pipeline. Voir Configurer les pipelines.
Les opérations de refresh pour les vues matérialisées autonomes et les tables de streaming s'exécutent toujours en mode pipeline Trigger.
Qu’est-ce que le mode Trigger pipeline ?
Si le pipeline utilise le mode déclenché , le système s'arrête après avoir rafraîchi toutes les tables en fonction des données disponibles au début de la mise à jour.
Qu'est-ce que le mode de pipeline continu ?
Si le pipeline utilise l'exécution **continue**, il traite les nouvelles données dès leur arrivée dans les sources de données pour maintenir les tables à jour tout au long du pipeline.
Pour éviter un traitement inutile en mode d'exécution continue, les pipelines surveillent automatiquement les tables Delta dépendantes et effectuent une mise à jour uniquement lorsque le contenu de ces tables dépendantes a changé.
Choisissez un mode de pipeline de données
Le tableau suivant met en évidence les différences entre les modes de pipeline déclenché et continu :
Questions clés | Déclenché | Continu |
|---|---|---|
Quand la mise à jour s'arrête-t-elle ? | Automatiquement une fois terminé. | S'exécute en continu jusqu'à ce qu'il soit arrêté manuellement. |
Quelles données sont traitées ? | Données disponibles lorsque la mise à jour start. | Toutes les données telles qu'elles arrivent aux sources configurées. |
À quels besoins en matière de fraîcheur des données cela correspond-il le mieux ? | Les mises à jour des données s'exécutent toutes les 10 minutes, toutes les heures ou quotidiennement. | Les mises à jour des données sont souhaitées toutes les 10 secondes et toutes les quelques minutes. |
Les pipelines déclenchés peuvent réduire la consommation de Ressources et les dépenses, car le cluster ne s'exécute que le temps nécessaire pour mettre à jour le pipeline. Cependant, les nouvelles données ne sont traitées que lorsque le pipeline est Trigger. Les pipelines continus nécessitent un cluster toujours en cours d'exécution, ce qui est plus coûteux mais réduit la latence de traitement.
Définir l'intervalle du Trigger pour les pipelines continus
Lorsque vous configurez des pipelines en mode continu, vous pouvez définir des intervalles de Trigger pour contrôler la fréquence à laquelle le pipeline start une mise à jour pour chaque flux.
Vous pouvez utiliser pipelines.trigger.interval pour contrôler l'intervalle de Trigger d'un flux mettant à jour une table ou un pipeline entier. Étant donné qu'un pipeline déclenché traite chaque table une seule fois, le Trigger pipelines.trigger.interval est utilisé uniquement avec les pipelines continus.
Databricks recommande de définir pipelines.trigger.interval sur les tables individuelles, car les streaming query et les batch query ont des valeurs par default différentes. Définissez la valeur sur un pipeline uniquement lorsque le traitement nécessite de contrôler les mises à jour pour l'intégralité du Graphe de pipeline.
Vous définissez pipelines.trigger.interval sur une table en utilisant spark_conf en Python ou SET en SQL :
@dp.table(
spark_conf={"pipelines.trigger.interval" : "10 seconds"}
)
def <function-name>():
return (<query>)
SET pipelines.trigger.interval=10 seconds;
CREATE OR REFRESH MATERIALIZED VIEW TABLE_NAME
AS SELECT ...
Pour définir pipelines.trigger.interval sur un pipeline, ajoutez-le à l'objet configuration dans les paramètres du pipeline :
{
"configuration": {
"pipelines.trigger.interval": "10 seconds"
}
}