Schéma d’informations
S’applique à : Databricks SQL Databricks Runtime 10.4 LTS et versions ultérieures 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.
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. |
CREDENTIAL_PRIVILEGES | Répertorie les principaux disposant de privilèges sur les informations d’identification. |
POUVOIRS | Décrit les informations d’identification. |
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 | [Déconseillé] Répertorie les principaux disposant de 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 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