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

INFORMATION_SCHEMA est un schéma basé sur des normes SQL, fourni dans chaque catalogue créé sur Unity Catalog.

Le schéma d’informations comprend un ensemble de vues décrivant les objets connus du catalogue du schéma pour lesquels vous disposez du privilège d’affichage. Le schéma d’informations du catalogue SYSTEM retourne des informations sur les objets dans tous les catalogues du metastore. Les tables système de schéma d’informations ne contiennent pas de métadonnées concernant les objets hive_metastore.

L’objectif du schéma d’informations est de fournir une API basée sur SQL et à description automatique pour les métadonnées.

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

Affichages des schémas d'information

Nom Description
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 les métadonnées d’étiquetage de colonne 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.
CONNEXIONS 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.
EXTERNAL_LOCATION_PRIVILEGES Répertorie les 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’informations.
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 principaux qui ont des privilèges sur les routines dans le 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 Répertorie les principaux qui ont des privilèges sur les informations d’identification de stockage.
STORAGE_CREDENTIALS 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 principaux qui ont des privilèges sur les volumes dans le catalogue.
VOLUME_TAGS Contient les métadonnées sur l’étiquetage de volume appliquées au volume.

Notes

Bien que les identificateurs ne respectent pas la casse lorsqu’ils sont référencés dans des instructions SQL, ils sont stockés dans le schéma d’informations en tant que STRING. Cela implique que vous devez soit les rechercher à l’aide de la casse dans laquelle l’identificateur est stocké, soit utiliser des fonctions telles que ilike.

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