Remarque
L’accès à cette page requiert une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page requiert une autorisation. Vous pouvez essayer de modifier des répertoires.
Vous pouvez utiliser des déclencheurs de mise à jour de table pour déclencher une exécution de votre travail lorsque des tables sources sont mises à jour. Utilisez cette fonctionnalité pour exécuter un travail lorsque de nouvelles données sont prêtes sans avoir besoin d’un cluster en cours d’exécution continue ou de connaissances des processus qui mettent à jour une table.
Important
Le déclenchement de tâches sur les tables et les vues OpenSharing ainsi que sur les tables système est en version bêta. Consultez Ajouter un déclencheur à OpenSharing et aux tables système.
Fonctionnement des déclencheurs de mise à jour de table
Un déclencheur de mise à jour de table vérifie les mises à jour des tables et lorsqu’une table est mise à jour, le travail est exécuté. Le déclencheur peut s’exécuter lorsqu’une table est mise à jour ou lorsque toutes les tables surveillées par le déclencheur sont mises à jour. Les déclencheurs de mise à jour de table n’entraînent pas de coûts supplémentaires autres que les coûts de fournisseur de cloud associés à la liste des tables et à la lecture des mises à jour à partir de l’emplacement de stockage.
Un déclencheur de mise à jour de table peut être configuré pour surveiller une ou plusieurs tables pour les modifications de données telles que les mises à jour, les fusions et les suppressions. Ces tables peuvent être des tables Delta et Iceberg gérées par Unity Catalog, des tables externes du catalogue Unity reposant sur Delta Lake, des vues matérialisées, des tables de streaming et des vues du catalogue Unity ou des vues de métriques qui dépendent des tables prises en charge. Lorsque vous sélectionnez plusieurs tables, vous pouvez spécifier si un travail est déclenché lorsqu’une ou toutes les tables sont mises à jour.
Vous pouvez également configurer des déclencheurs sur des tables et vues OpenSharing, ainsi que sur des tables système (bêta). Consultez Ajouter un déclencheur à OpenSharing et aux tables système.
Ajouter un déclencheur de mise à jour de table
Pour ajouter un déclencheur de mise à jour de table à un travail existant :
Dans le volet de navigation gauche de votre espace de travail, cliquez sur Tâches et Pipelines.
Dans la liste des travaux, cliquez sur le nom du travail auquel vous souhaitez ajouter un déclencheur.
Dans le volet droit, sous Planifications et déclencheurs, cliquez sur Ajouter un déclencheur.
Dans le type de déclencheur, sélectionnez Mise à jour de table.
Sous Tables, ajoutez les tables que vous souhaitez surveiller pour les mises à jour.
Si vous sélectionnez plusieurs tables, configurez une option sous Déclencheur quand spécifier si vous souhaitez qu’une exécution de travail soit déclenchée lorsque toutes les tables sont mises à jour ou quand une table est mise à jour.
(Facultatif) Configurez les options avancées, en cliquant sur Avancé.
- Temps minimum entre les déclenchements en secondes : temps d’attente minimum pour déclencher une exécution une fois l’exécution précédente terminée. Les tables mises à jour pendant cette période déclenchent une exécution uniquement après l’expiration du délai d’attente. Azure Databricks attend ce délai avant de déclencher une exécution, même si les tables surveillées sont mises à jour.
- Attendre après la dernière modification (en secondes) : Le délai à respecter pour déclencher une exécution après une mise à jour de la table. Des mises à jour de table supplémentaires pendant cette période réinitialisent le minuteur. Ce paramètre peut être utilisé lorsque les mises à jour de table sont effectuées par lots et que le lot entier doit être traité une fois que toutes les tables sont mises à jour.
Note
Si les deux options sont utilisées, le déclencheur attend la durée minimale entre les déclencheurs, puis attend la durée définie après la dernière modification. Par exemple, si vous avez une durée minimale de 120 secondes et une attente après les dernières modifications de 60 secondes, elle ne déclenche pas l’exécution tant qu’au moins 120 secondes ne s’est pas écoulée, même si une mise à jour de table se produit dans les 60 premières secondes. En outre, si une mise à jour est effectuée à 5 secondes, puis une autre à 115 secondes, l’attente après la dernière modification signifie qu’une exécution n’est déclenchée qu’après 175 secondes.
Pour valider la configuration, cliquez sur Déclencheur de test.
Cliquez sur Enregistrer.
Note
Vous pouvez également configurer des déclencheurs de mise à jour de table à partir de l’API Travaux. Ajoutez un trigger objet à une opération jobs/create, jobs/update ou jobs/reset.
Pour modifier, suspendre ou supprimer ce déclencheur ultérieurement, utilisez la section Planifications et déclencheurs du volet Détails du travail . Consultez Gérer un déclencheur existant.
Ajouter un déclencheur à OpenSharing et aux tables système
Important
Cette fonctionnalité est en version bêta.
Outre les tables locales, vous pouvez configurer des déclencheurs de mise à jour de table pour surveiller les données partagées avec votre espace de travail via OpenSharing et les tables système. Par exemple, vous pouvez déclencher un travail chaque fois que de nouveaux enregistrements de facturation atterrissent dans une table système, ou chaque fois qu’un fournisseur met à jour une table partagée.
Vous pouvez déclencher sur les objets partagés suivants :
- Tables OpenSharing
- Vues OpenSharing
- Vues des métriques OpenSharing
- Vues matérialisées OpenSharing
- Tables de streaming OpenSharing
- Tables du système
Passez en revue les limitations du déclencheur OpenSharing, puis suivez les étapes décrites dans Ajouter un déclencheur de mise à jour de table et sélectionnez les tables partagées, les vues ou les tables système que vous souhaitez surveiller.
Limitations du déclencheur OpenSharing
Cette fonctionnalité prend uniquement en charge le modèle OpenSharing Databricks à Databricks. Le partage de Databricks vers Open n’est pas pris en charge.
Pour déclencher des tables et des vues partagées, la version bêta doit être activée à la fois sur les côtés du destinataire et du fournisseur :
- Déclencheurs de mise à jour des tables dans OpenSharing (destinataire) : fonctionnalité bêta au niveau de l’espace de travail, qui est activée dans l’espace de travail du destinataire où le déclencheur est créé.
- Déclencheurs de mise à jour des tables sur OpenSharing (Fournisseur) : fonctionnalité bêta au niveau du compte, activée dans le compte fournisseur propriétaire des données partagées.
Pour les tables système, seule la version bêta du destinataire est requise. Pour activer cette fonctionnalité, consultez Gérer les préversions d’Azure Databricks.
L’utilisateur qui crée le déclencheur doit avoir le
SELECTprivilège sur l’objet partagé ou la table système.
Déclencheurs de mise à jour de tables avec des événements de fichiers
Pour optimiser les performances et la scalabilité, activez les événements de fichier sur l’emplacement externe où les tables sont stockées. Cette étape de configuration unique améliore l’efficacité des déclencheurs de mise à jour de table et déverrouille d’autres fonctionnalités, notamment le chargeur automatique plus performant et les déclencheurs d’arrivée de fichiers.
Lorsque des événements de fichier sont activés, Databricks effectue automatiquement le suivi des métadonnées d’ingestion à l’aide de notifications de modification de fournisseur de cloud, ce qui entraîne des mises à jour de table plus rapides et plus efficaces.
Si vos tables se trouvent dans le stockage au niveau racine du metastore, commencez par les convertir en emplacement externe, puis activez les événements de fichier sur cet emplacement.
Pour obtenir des questions courantes sur les événements de fichier, consultez la FAQ sur les événements de fichier.
Paramètres de travail associés aux déclencheurs de mise à jour de table
Lorsque vous utilisez des déclencheurs de mise à jour de table pour un travail, trois nouvelles références de valeurs dynamiques sont disponibles pour être utilisées comme valeurs de paramètre dans le travail.
-
{{job.trigger.table_update.updated_tables}}- Liste JSON des tables mises à jour depuis la dernière exécution du travail. -
{{job.trigger.table_update.`<catalog.schema.table>`.commit_timestamp.iso_datetime}}- horodatage de validation le plus récent qui a déclenché l’exécution de la tâche. -
{{job.trigger.table_update.`<catalog.schema.table>`.version}}- version de validation la plus récente qui a déclenché l’exécution du travail.
Pour commit_timestamp et version, il existe plusieurs versions de la référence de valeur dynamique. Chaque table surveillée comporte un <catalog.schema.table> avec le nom pleinement qualifié de la table pour laquelle vous souhaitez obtenir des données. S’il n’existe qu’une seule table surveillée dans le déclencheur, vous voyez une valeur sans le <catalog.schema.table>. Par exemple, vous pouvez utiliser {{job.trigger.table_update.commit_timestamp.iso_datetime}}.
Pour plus d’informations sur les paramètres de travail, consultez Paramètres des travaux.
Recevoir des notifications des déclencheurs de mise à jour de table ayant échoué
Pour être averti si l’évaluation d’un déclencheur de mise à jour de table échoue, configurez des notifications par e-mail ou des notifications vers une destination système en cas d’échec de la tâche. Voir Ajouter des notifications dans une tâche.
Limites
Les déclencheurs de mise à jour de table présentent les limitations suivantes :
- Vous pouvez sélectionner jusqu’à 10 tables managées ou Delta par déclencheur.
- Pour les tables résidant dans des emplacements sans événements de fichier, un maximum de 1 000 travaux peut être configuré avec un déclencheur de mise à jour de table.
- Un maximum de 1 000 déclencheurs de mise à jour de table sur des objets OpenSharing ou des tables système peuvent être créés par espace de travail.
Les déclencheurs sur les vues Unity Catalog présentent les limitations supplémentaires suivantes :
Les déclencheurs de mise à jour de table prennent uniquement en charge la surveillance des vues de catalogue Unity ou des vues de métriques qui dépendent des tables qui sont également prises en charge par les déclencheurs de mise à jour de table. Notamment, les vues suivantes ne sont pas prises en charge :
- Vues qui utilisent
read_files(elles peuvent lire à partir d’une table prise en charge qui lit des fichiers, mais ne peuvent pas utiliserread_filesdirectement). - Vues qui dépendent des tables qui ne sont pas dans le catalogue Unity.
- Vues qui dépendent des tables fédérées.
- Vues qui utilisent
La création de déclencheurs pour les vues contenant des dépendances non prises en charge réussit toujours, mais aucune exécution de travail n’est déclenchée lorsqu’une dépendance non prise en charge est mise à jour.
La mise à jour de table déclenche l’analyse des modifications apportées aux tables dépendantes d’une vue et considère la vue mise à jour si l’une des tables dépendantes est mise à jour. Il est possible qu’une exécution d’un processus soit déclenchée pour les modifications de données filtrées par la définition de la vue.
Les tables sources d’une vue sont comptabilisées vers la limite de 10 tables par déclencheur.
- Par exemple, si une vue dépend de 11 tables, il n’est pas possible de l’utiliser dans un déclencheur de mise à jour de table. De même, un déclencheur avec deux vues, dont chacune dépend de 6 tables, compte comme 12 tables.
Il existe une limite distincte de 10 vues dépendantes par vue surveillée.
- Par exemple, si une vue dépend de 11 autres vues, il n’est pas possible de l’utiliser dans un déclencheur de mise à jour de table, même si cela n’interrompt pas les 10 tables par règle de déclencheur.