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
skipChangeCommits
surtrue
. 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 enTrigger.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
etsystem.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.