Surveiller l’utilisation avec des tables système

Cet article explique le concept des tables système dans Azure Databricks et met l’accent sur les ressources que vous pouvez utiliser pour tirer le meilleur parti des données de vos tables système.

Que sont les tables système ?

Les tables système sont un magasin analytique hébergé par Azure Databricks des données opérationnelles de votre compte qui se trouvent dans le catalogue system. Les tables système peuvent être utilisées pour l’observabilité historique de votre compte.

Remarque

Pour obtenir de la documentation sur system.information_schema, consultez Schéma d’informations.

Spécifications

  • Pour accéder aux tables système, votre espace de travail doit être activé pour le catalogue Unity. Pour plus d’informations, consultez Activer les schémas de table système.

  • Les tables système ne sont pas disponibles dans les régions suivantes :

    • Régions Azure Chine
    • Régions Azure Government
    • Ouest de l’Inde
    • Suisse Ouest

Quelles tables système sont disponibles ?

Actuellement, Azure Databricks héberge les tables système suivantes :

Table Description Emplacement Prend en charge la diffusion en continu Période de conservation gratuite Inclut les données globales ou régionales
Journaux d’audit (préversion publique) Inclut des enregistrements pour tous les événements d’audit provenant des espaces de travail de votre région. Pour obtenir la liste des événements d’audit disponibles, consultez Référence du journal de diagnostic. system.access.audit Oui 365 jours Régionales pour les événements au niveau de l’espace de travail. Globales pour les événements au niveau du compte.
Traçabilité des tables (préversion publique) Inclut un enregistrement pour chaque événement de lecture ou d’écriture sur une table ou un chemin d’accès Unity Catalog. system.access.table_lineage Oui 365 jours Zones géographiques
Traçabilité des colonnes (préversion publique) Inclut un enregistrement pour chaque événement de lecture ou d’écriture sur une colonne de Unity Catalog (mais n’inclut pas d’événements qui n’ont pas de source). system.access.column_lineage Oui 365 jours Zones géographiques
Utilisation facturable Inclut des enregistrements pour toutes les utilisations facturables sur votre compte. Chaque enregistrement d’utilisation est un agrégat horaire de l’utilisation facturable d’une ressource. system.billing.usage Oui 365 jours Global
Tarification Journal historique de la tarification de la référence SKU. Un enregistrement est ajouté chaque fois que le prix d’une référence SKU change. system.billing.list_prices Non Illimité Global
Clusters (préversion publique) Table de dimension à variation lente qui contient l’historique complet des configurations d’ordinateur au fil du temps pour tous les clusters. system.compute.clusters Oui Non applicable Regional
Chronologie des nœuds (préversion publique) Capture les métriques d’utilisation de vos ressources de calcul à usage unique et de travail. system.compute.node_timeline Oui 30 jours Regional
Types de nœuds (préversion publique) Capture les types de nœud actuellement disponibles avec leurs informations matérielles de base. system.compute.node_types Non N/A Regional
Entrepôts SQL (préversion publique) Contient l’historique complet des configurations au fil du temps pour n’importe quel entrepôt SQL. system.compute.warehouses Oui 365 jours Zones géographiques
Événements SQL Warehouse (préversion publique) Capture les événements liés aux entrepôts SQL. Par exemple, le démarrage, l’arrêt, l’exécution, le scale-up et le scale-down. system.compute.warehouse_events Oui 365 jours Zones géographiques
Travaux (préversion publique) Effectue le suivi de tous les travaux créés dans le compte. system.lakeflow.jobs Oui 365 jours Zones géographiques
Tâches de travail (préversion publique) Effectue le suivi de toutes les tâches de travail qui s’exécutent dans le compte. system.lakeflow.job_tasks Oui 365 jours Zones géographiques
Chronologie de l’exécution des travaux (préversion publique) Effectue le suivi des heures de début et de fin des exécutions de travaux. system.lakeflow.

job_run_timeline
Oui 365 jours Zones géographiques
Chronologie des tâches de travail (préversion publique) Effectue le suivi des heures de début et de fin et des ressources de calcul utilisées pour les exécutions de tâches de travail. system.lakeflow.

job_task_run_timeline
Oui 365 jours Zones géographiques
Événements en entonnoir de la Place de marché (préversion publique) Inclut les données d’impression du consommateur et de synthèse pour vos annonces. system.marketplace.listing_

funnel_events
Oui 365 jours Zones géographiques
Accès aux listings de la Place de marché (préversion publique) Inclut les informations du consommateur pour les événements terminés request data ou get data sur vos listings. system.marketplace.listing_

access_events
Oui 365 jours Zones géographiques
Optimisation prédictives (préversion publique) Suit l’historique des opérations de la fonction d’optimisation prédictive. system.storage.predictive_

optimization_operations_history
Non 180 jours Zones géographiques
Événements de l’assistant Databricks (préversion publique) Effectue le suivi des messages utilisateur envoyés à l’Assistant Databricks. system.access.assistant_events Non 365 jours Zones géographiques
Historique des requêtes (préversion publique) Capture les enregistrements de toutes les requêtes exécutées sur des entrepôts SQL. system.query.history Oui 90 jours Regional
Événements de salle blanche (préversion publique) Capture les événements liés aux salles blanches. system.access.clean_room_events Oui 365 jours Zones géographiques
Utilisation des points de terminaison de service de modèle (préversion publique) Capture le nombre de jetons pour chaque requête vers un point de terminaison de service de modèle et ses réponses. system.serving.endpoint_usage Oui 90 jours Regional
Données de points de terminaison de service de modèle (préversion publique) Table à dimension variable lente qui stocke les métadonnées pour chaque modèle externe servi dans un point de terminaison de service de modèle. system.serving.served_entities Oui 365 jours Zones géographiques

Les tables d’utilisation facturable et de tarification sont gratuites. Les tables en préversion publique sont également gratuites pendant la préversion, mais peuvent engendrer des frais à l’avenir.

Remarque

Vous pouvez voir d’autres tables système dans votre compte en plus de celles répertoriées ci-dessus. Ces tables sont actuellement en préversion privée et sont vides par défaut. Si vous souhaitez utiliser l’une de ces tables, contactez l’équipe de votre compte Databricks.

Activer les schémas de table système

Les tables système étant régies par Unity Catalog, vous devez disposer d’au moins un espace de travail avec Unity Catalog dans votre compte pour activer les tables système et y accéder. Les tables système incluent des données de tous les espaces de travail de votre compte, mais elles ne sont accessibles que depuis un espace de travail avec Unity Catalog.

Les tables système sont activées au niveau du schéma. Si vous activez un schéma système, vous activez toutes ses tables. Lorsque de nouveaux schémas sont publiés, un administrateur de compte doit activer manuellement le schéma.

Les tables système doivent être activées par un administrateur de compte. Vous pouvez activer les tables système à l’aide de l’API SystemSchemas.

Remarque

Le schéma billing est activé par défaut. Les autres schémas doivent être activés manuellement.

Lister les schémas système disponibles

Utilisez la commande curl suivante pour lister les schémas système disponibles :

curl -v -X GET -H "Authorization: Bearer <PAT Token>" "https://adb-<xxx>.azuredatabricks.net/api/2.0/unity-catalog/metastores/<metastore-id>/systemschemas"

Voici un exemple de sortie de la commande GET :

{"schemas":[{"schema":"access","state":"<AVAILABLE OR EnableCompleted>"},{"schema":"billing","state":"<AVAILABLE OR EnableCompleted>"},{"schema":"information_schema","state":"<AVAILABLE OR EnableCompleted>"}]}

state: AVAILABLE : le schéma système est disponible mais n’a pas encore été activé.

state: EnableCompleted : vous avez activé le schéma système et il est visible dans Catalog Explorer.

Activer un schéma système

Utilisez la commande curl suivante pour activer un schéma système :

curl -v -X PUT -H "Authorization: Bearer <PAT Token>" "https://adb-<xxx>.azuredatabricks.net/api/2.0/unity-catalog/metastores/<metastore-id>/systemschemas/<SCHEMA_NAME>"

Si le schéma système est correctement activé, le code de résultat 200 est retourné.

Si vous tentez de réactiver un schéma système, "error_code":"SCHEMA_ALREADY_EXISTS","message":"Schema <schema-name> already exists" est retourné.

Désactiver un schéma système

Utilisez la commande curl suivante pour désactiver un schéma système :

curl -v -X DELETE -H "Authorization: Bearer <PAT Token>" "https://adb-<xxx>.azuredatabricks.net/api/2.0/unity-catalog/metastores/<metastore-id>/systemschemas/<SCHEMA_NAME>"

Octroyer un accès aux tables système

L’accès aux tables système est régi par Unity Catalog. Aucun utilisateur n’a accès à ces schémas système par défaut. Pour accorder l'accès, un utilisateur qui est à la fois un administrateur de metastore et un administrateur de compte doit accorder les permissions USE et SELECT sur les schémas système. Consultez Gérer les privilèges dans Unity Catalog.

Les tables système sont en lecture seule et ne peuvent pas être modifiées.

Remarque

Si votre compte a été créé après le 9 novembre 2023, vous n’avez peut-être pas le rôle d’administrateur de metastore par défaut. Pour plus d’informations, consultez Configurer et gérer Unity Catalog.

Les tables système contiennent-elles des données de tous les espaces de travail de votre compte ?

Les tables système contiennent des données opérationnelles pour tous les espaces de travail de votre compte déployés dans la même région cloud. Les tables système de facturation contiennent des données à l’échelle du compte.

Même si les tables système sont accessibles uniquement par le biais d’un espace de travail Unity Catalog, elles incluent également des données opérationnelles pour les espaces de travail non-Unity Catalog de votre compte.

Où sont stockées les données de tables système ?

Les données de tables système de votre compte sont stockées dans un compte de stockage hébergé par Azure Databricks situé dans la même région que votre metastore. Les données sont partagées avec vous en toute sécurité à l’aide de Delta Sharing.

Chaque table a une période de rétention de données gratuite. Pour plus d’informations sur l’extension de la période de rétention, contactez votre équipe de compte Azure Databricks.

Où se trouvent les tables système dans l’explorateur de catalogues ?

Les tables système de votre compte se trouvent dans un catalogue appelé system, qui est inclus dans chaque metastore Unity Catalog. Dans le catalogue system, vous verrez des schémas tels que access et billing qui contiennent les tables système.

Considérations relatives à la diffusion en continu de tables système

Azure Databricks utilise Delta Sharing pour partager des données de table système avec des clients. Tenez compte des considérations suivantes lors de la diffusion en continu avec Delta Sharing :

  • Si vous utilisez la diffusion en continu avec des tables système, définissez l’option skipChangeCommitssur true. Cela garantit que le travail de diffusion en continu n’est pas perturbé par les suppressions dans les tables système. Consultez Ignorer les mises à jour et les suppressions.
  • Trigger.AvailableNow n’est pas pris en charge avec la diffusion en continu Delta Sharing. Il sera converti en Trigger.Once.

Si vous utilisez un déclencheur dans votre travail de diffusion en continu et qu’il ne rattrape pas la dernière version de la table système, Databricks recommande d’augmenter la fréquence planifiée du travail.

Lire les modifications incrémentielles des tables système de diffusion en continu

spark.readStream.option("skipChangeCommits", "true").table("system.billing.usage")

Problèmes connus

  • Actuellement, aucune prise en charge de la supervision en temps réel. Les données sont mises à jour tout au long de la journée. Si vous ne voyez pas de journal pour un évènement récent, vérifiez plus tard.

  • Pour activer les tables système, vous devrez peut-être accorder l’accès réseau au point de terminaison Stockage Blob des tables système. Pour afficher la liste du point de terminaison de stockage des tables système de chaque région, consultez Adresses IP des points de terminaison de stockage.

  • Les schémas système system.operational_data et system.lineage sont déconseillés et contiendront des tables vides.

  • Le schéma de table système __internal_logging est utilisé pour prendre en charge la journalisation des charges utiles à l’aide de tables d’inférence. Ce schéma est visible pour les administrateurs de compte, mais il ne peut pas être activé et ne doit pas être utilisé pour les flux de travail clients.