Comment les pipelines se refresh-ils ?
Lorsqu'une mise à jour de pipeline est exécutée, elle refresh les vues matérialisées et les tables de streaming définies dans le pipeline afin que leurs résultats reflètent l'état actuel des données sources. La manière dont un dataset refresh dépend de son type et du type de refresh. Pour savoir comment Trigger et gérer les mises à jour, consultez Exécuter une mise à jour de pipeline.
Types de refresh
default, chaque vue matérialisée et table de streaming dans un pipeline refresh avec chaque mise à jour. Le tableau suivant résume le comportement de chaque type de refresh :
Type de mise à jour | Vue matérialisée | Table de streaming |
|---|---|---|
Refresh (default) | Met à jour les résultats pour refléter les résultats actuels de la query de définition. Databricks examine le coût et effectue un refresh incrémentiel lorsque c'est plus efficace. | Traite les nouveaux enregistrements via la logique définie dans les tables et les flux de streaming. |
refresh complète | Recalcule les résultats pour refléter les résultats actuels de la définition query. | Efface les données des tables de streaming, efface les points de contrôle des flux et retraite tous les enregistrements de la source de données. |
Reset les points de contrôle du flux de streaming | Non applicable aux vues matérialisées. | Efface les points de contrôle des flux, mais n'efface pas les données des tables de streaming, puis retraîte tous les enregistrements de la source de données. |
refresh (default)
Une default refresh met à jour un dataset pour refléter les résultats actuels de sa query de définition.
Les tables de streaming sont intrinsèquement incrémentielles. Un refresh de table en streaming évalue uniquement les enregistrements arrivés depuis la dernière mise à jour et les ajoute, en utilisant la définition actuelle de la table. Les enregistrements plus anciens ne sont pas retraités ; par conséquent, les modifications qui affecteraient les données déjà écrites ne sont pas appliquées. En d'autres termes, un refresh par default d'une table de streaming échange la justesse des données contre des coûts de temps et de Ressources réduits. Pour retraiter les données plus anciennes, exécutez un refresh complet ou reset les points de contrôle du flux.
Les vues matérialisées tentent un refresh incrémentiel mais retraitent tous les enregistrements lorsque nécessaire pour maintenir la table entièrement précise. Une vue matérialisée est rafraîchie selon l'une des deux méthodes suivantes :
- Incremental refresh identifie les modifications depuis la dernière mise à jour et Merge uniquement les données nouvelles ou modifiées.
- L' refresh complète exécute la query entière et remplace les données existantes lorsqu'une refresh incrémentielle n'est pas possible ou n'est pas rentable.
By default, Databricks utilise un modèle de coûts pour choisir la méthode la plus rentable. Vous pouvez remplacer ce choix par une politique de refresh. Pour la sémantique, les exigences et le SQL pris en charge pour l'incrémentielle refresh, consultez refresh incrémentielle des vues matérialisées.
Full refresh complète
Une refresh complète retraire tous les enregistrements des données source via la logique qui définit le dataset :
- Pour une vue matérialisée, un refresh complet recalcule le résultat entier. Étant donné que les vues matérialisées renvoient toujours le même résultat qu’une query batch, un refresh default et un refresh complet produisent des données identiques.
- Pour une table de streaming, un full refresh tronque la table, efface les points de contrôle de streaming pour ses flux et retraite chaque enregistrement de la source.
Étant donné qu'un full refresh retraite toutes les données source, le temps et le coût augmentent avec la taille de ces données. Databricks recommande d'effectuer un refresh complet uniquement lorsque cela est nécessaire, par exemple lorsqu'une modification de définition ou de schéma n'est pas compatible avec les données existantes. Un refresh complet d'une table streaming peut supprimer des enregistrements si la source ne conserve plus les données d'origine, par exemple un sujet Kafka au-delà de sa fenêtre de conservation.
Pour savoir quand et comment exécuter une refresh complète d'une table de streaming, consultez refresh complète des tables de streaming.
Reset les points de contrôle
La réinitialisation des points de contrôle s'applique uniquement aux tables de streaming. Il efface les points de contrôle de streaming pour les flux sélectionnés sans effacer les données déjà écrites dans la table de streaming, puis retraite tous les enregistrements de la source via ces flux. Contrairement à un full refresh, les données de table existantes sont conservées.
Utilisez cette option lorsque vous souhaitez retraiter une source de streaming pour des flux sélectionnés, par exemple après avoir modifié la logique d'un flux, sans tronquer la table.
Le Reset des checkpoints est Triggered via l'API REST LakeFlow Pipelines. Pour les étapes, consultez Start une mise à jour du pipeline pour effacer les points de contrôle des flux de streaming sélectifs.