Partager via


Schéma d’informations

S’applique à :coche marquée oui Databricks SQL coche marquée oui Databricks Runtime 10.4 LTS et versions ultérieures oui coché Unity Catalog uniquement

Dans le SYSTEM catalogue, le INFORMATION_SCHEMA est un schéma standard SQL qui fournit des métadonnées sur les objets dans tous les catalogues du metastore. Il ne contient pas de métadonnées sur hive_metastore les objets.

Séparément, chaque catalogue créé dans le catalogue Unity inclut également automatiquement une information_schema description des métadonnées relatives aux objets de ce catalogue uniquement.

Les deux types de schémas d’informations filtrent automatiquement les résultats pour inclure uniquement les objets auxquels vous disposez des privilèges de catalogue Unity. Ce comportement diffère des autres tables système Azure Databricks. Découvrez comment les tables système de schéma d’informations gèrent les autorisations.

L’objectif du schéma d’informations est de fournir une API basée sur des privilèges, basée sur SQL et auto-décrivant l’accès aux métadonnées du catalogue.

Comment les tables système de schéma d’information gèrent les autorisations

system.information_schema diffère d’autres tables système dans lesquelles il implémente le filtrage automatique. Cela signifie que vous voyez uniquement les objets (catalogues, schémas, tables, colonnes, etc.) auxquels vous avez des privilèges d’accès dans le catalogue Unity. Si vos privilèges changent, ce que vous voyez dans le schéma d’informations change en conséquence. Par exemple, lorsque vous interrogez information_schema.tables, seules les lignes des tables que vous avez l’autorisation de voir sont retournées.

Comme toutes les autres tables système, vous avez besoin d’autorisations explicites USE et SELECT pour accéder et interroger le schéma d'information.

Diagramme de relations d’entités du schéma d’informations

Le diagramme de relation d'entité (ER) suivant fournit une vue d'ensemble d'un sous-ensemble de vues de schéma d'informations et de la façon dont elles sont liées les unes aux autres.

Diagramme de relations d’entités du schéma d’informations

Vues des schémas d'information

Nom Descriptif
CATALOG_PRIVILEGES Répertorie les principaux qui ont des privilèges sur les catalogues.
CATALOG_PROVIDER_SHARE_USAGE Décrit le partage de fournisseur monté sur des catalogues.
CATALOG_TAGS Contient les étiquettes qui ont été appliquées aux catalogues.
CATALOGS Décrit les catalogues.
CHECK_CONSTRAINTS Réservé pour un usage futur.
COLUMN_MASKS Décrit les masques de colonne sur les colonnes de tableau dans le catalogue.
COLUMN_TAGS Contient des métadonnées pour l'étiquetage des colonnes dans une table.
COLUMNS Décrit les colonnes de tables et vues dans le catalogue.
CONNECTION_PRIVILEGES Répertorie les principaux qui ont des privilèges sur les connections étrangères.
CONNECTIONS Décrit les connexions étrangères.
CONSTRAINT_COLUMN_USAGE Décrit les contraintes faisant référence à des colonnes dans le catalogue.
CONSTRAINT_TABLE_USAGE Décrit les contraintes faisant référence à des tables dans le catalogue.
CREDENTIAL_PRIVILEGES Répertorie les principaux qui ont des privilèges sur les informations d’identification.
CREDENTIALS Décrit les informations d’identification.
EXTERNAL_LOCATION_PRIVILEGES Répertorie les utilisateurs principaux qui ont des privilèges sur les emplacements externes.
EXTERNAL_LOCATIONS Décrit les emplacements externes.
INFORMATION_SCHEMA_CATALOG_NAME Retourne le nom du catalogue de ce schéma d'information.
KEY_COLUMN_USAGE Liste les colonnes des contraintes de clé primaire ou étrangère dans le catalogue.
METASTORE_PRIVILEGES Répertorie les principaux qui ont des privilèges sur le metastore actuel.
METASTORES Décrit le metastore actuel.
PARAMETERS Décrit les paramètres de routines (fonctions) dans le catalogue.
PROVIDERS Décrit les fournisseurs.
RECIPIENT_ALLOWED_IP_RANGES Répertorie les plages d’adresses IP autorisées pour les destinataires.
RECIPIENT_TOKENS Répertorie les jetons pour les destinataires.
RECIPIENTS Décrit les destinataires.
REFERENTIAL_CONSTRAINTS Décrit les contraintes référentielles (clé étrangère) définies dans le catalogue.
ROUTINE_COLUMNS Décrit les colonnes de résultat des fonctions table.
ROUTINE_PRIVILEGES Répertorie les entités qui ont des privilèges sur les routines du catalogue.
ROUTINES Décrit les routines (fonctions) fournies dans le catalogue.
ROW_FILTERS Décrit les filtres de lignes sur les tables du catalogue.
SCHEMA_PRIVILEGES Répertorie les principaux qui ont des privilèges sur les schémas dans le catalogue.
SCHEMA_TAGS Contient les métadonnées d’étiquetage de schéma dans le schéma.
SCHEMA_SHARE_USAGE Décrit les schémas référencés dans les partages.
SCHEMATA Décrit les schémas dans le catalogue.
SHARE_RECIPIENT_PRIVILEGES Décrit les destinataires auxquels l’accès aux partages a été accordé.
SHARES Décrit les partages.
STORAGE_CREDENTIAL_PRIVILEGES [Déconseillé] Répertorie les principaux qui ont des privilèges sur les informations d'identification de stockage.
STORAGE_CREDENTIALS [Déconseillé] Décrit les informations d’identification de stockage.
TABLE_CONSTRAINTS Décrit les métadonnées pour toutes les contraintes de clé primaire et étrangère dans le catalogue.
TABLE_PRIVILEGES Répertorie les principaux qui ont des privilèges sur les tables et vues du catalogue.
TABLE_SHARE_USAGE Décrit les tables référencées dans les partages.
TABLE_TAGS Contient les métadonnées d’étiquetage de table dans une table.
TABLES Décrit les tables et les vues définies dans le catalogue.
VIEWS Décrit les informations propres aux vues du catalogue.
VOLUMES Décrit les volumes définis dans le catalogue.
VOLUME_PRIVILEGES Répertorie les entités principales qui possèdent des privilèges sur les volumes du catalogue.
VOLUME_TAGS Contient les métadonnées de balise de volume appliquées au volume.

Remarques

  • Le schéma d’informations implémente le filtrage prenant en compte les privilèges. Vous voyez automatiquement uniquement les objets pour lesquels vous avez des autorisations dans Unity Catalog. Découvrez comment les tables système de schéma d’informations gèrent les autorisations.
  • Une synchronisation manuelle à l’aide REPAIR TABLE peut être nécessaire pour que certaines modifications de métadonnées de catalogue soient reflétées dans le schéma d’informations. Pour plus d’informations, consultez REPAIR TABLE.
  • Tous les identificateurs , à l’exception des noms de colonne et de balise, sont stockés dans le schéma d’informations en minuscules STRING. Pour les performances des requêtes, évitez d’utiliser des fonctions telles que LOWER() ou UPPER() sur la colonne d’identificateur. Au lieu de cela, comparez les identificateurs directement à l’aide de valeurs minuscules.
  • Pour empêcher les délais d’expiration des requêtes, appliquez des filtres sélectifs lors de l’interrogation du schéma d’informations (par exemple WHERE table_catalog = 'main' AND table_schema = 'default'). Reportez-vous à la documentation ci-dessus pour obtenir la liste complète des colonnes qui peuvent être utilisées comme filtres pour chaque table de schéma d’informations.
    • Notez que la fonctionnalité pushdown LIMIT n’est pas prise en charge actuellement. Par conséquent, bien qu’elle puisse tronquer les résultats, cela n’améliorera pas les performances.

Exemples

> SELECT table_name, column_name
    FROM information_schema.columns
    WHERE data_type = 'DOUBLE'
      AND table_schema = 'information_schema';

Voici des exemples de workflows qui utilisent des tables de schéma d’informations au niveau du système.

Si vous souhaitez voir toutes les tables qui ont été créées au cours des dernières 24 heures, votre requête peut ressembler à la suivante.

> SELECT table_name, table_owner, created_by, last_altered, last_altered_by, table_catalog
    FROM system.information_schema.tables
    WHERE  datediff(now(), last_altered) < 1;

Si vous souhaitez voir le nombre de tables qui se trouvent dans chaque schéma, considérez l’exemple suivant.

> SELECT table_schema, count(table_name)
    FROM system.information_schema.tables
    WHERE table_schema = 'tpch'
    GROUP BY table_schema
    ORDER BY 2 DESC