Schema delle informazioni

Si applica a:segno di spunta sì Solo databricks SQL segno di spunta sì Databricks Runtime 10.4 LTS e versioni successive segno di spunta sì al catalogo Unity

INFORMATION_SCHEMA è uno schema basato su SQL standard, fornito in ogni catalogo creato in Unity Catalog.

All'interno dello schema delle informazioni è possibile trovare un set di viste che descrivono gli oggetti noti al catalogo dello schema che si è privilegiati per visualizzare. Lo schema delle informazioni del SYSTEM catalogo restituisce informazioni sugli oggetti in tutti i cataloghi all'interno del metastore. Le tabelle di sistema dello schema informativo non contengono metadati sugli hive_metastore oggetti.

Lo scopo dello schema delle informazioni è fornire un'API basata su SQL autodescrizione ai metadati.

Diagramma delle relazioni di entità dello schema delle informazioni

Il diagramma ER (Entity Relationship) seguente offre una panoramica di un subset di viste dello schema delle informazioni e della relativa correlazione tra loro.

Diagramma ER dello schema delle informazioni

Viste degli schemi delle informazioni

Nome Descrizione
CATALOG_PRIVILEGES Elenca le entità con privilegi per i cataloghi.
CATALOG_PROVIDER_SHARE_USAGE Descrive la condivisione del provider montata nei cataloghi.
CATALOG_TAGS Contiene tag applicati ai cataloghi.
CATALOGHI Descrive i cataloghi.
CHECK_CONSTRAINTS Riservato a un uso futuro.
COLUMN_MASKS Vengono descritte le maschere di colonna nelle colonne della tabella nel catalogo.
COLUMN_TAGS Contiene i metadati di assegnazione di tag alle colonne all'interno di una tabella.
COLUMNS Vengono descritte le colonne di tabelle e viste nel catalogo.
CONNECTION_PRIVILEGES Elenca le entità con privilegi per le connessioni esterne.
CONNESSIONI Descrive le connessioni esterne.
CONSTRAINT_COLUMN_USAGE Descrive i vincoli che fanno riferimento alle colonne nel catalogo.
CONSTRAINT_TABLE_USAGE Descrive i vincoli che fanno riferimento alle tabelle nel catalogo.
EXTERNAL_LOCATION_PRIVILEGES Elenca le entità con privilegi per le posizioni esterne.
EXTERNAL_LOCATIONS Vengono descritte le posizioni esterne.
INFORMATION_SCHEMA_CATALOG_NAME Restituisce il nome del catalogo dello schema delle informazioni.
KEY_COLUMN_USAGE Elenca le colonne dei vincoli di chiave primaria o esterna all'interno del catalogo.
METASTORE_PRIVILEGES Elenca le entità con privilegi per il metastore corrente.
METASTORE Descrive il metastore corrente.
PARAMETERS Descrive i parametri delle routine (funzioni) nel catalogo.
PROVIDER Descrive i provider.
RECIPIENT_ALLOWED_IP_RANGES Elenca gli intervalli IP consentiti per i destinatari.
RECIPIENT_TOKENS Elenca i token per i destinatari.
DESTINATARI Descrive i destinatari.
REFERENTIAL_CONSTRAINTS Descrive i vincoli referenziale (chiave esterna) definiti nel catalogo.
ROUTINE_COLUMNS Vengono descritte le colonne dei risultati delle funzioni con valori di tabella.
ROUTINE_PRIVILEGES Elenca le entità che dispongono di privilegi per le routine nel catalogo.
ROUTINES Descrive le routine (funzioni) nel catalogo.
ROW_FILTERS Descrive i filtri di riga per le tabelle nel catalogo.
SCHEMA_PRIVILEGES Elenca le entità che dispongono di privilegi per gli schemi nel catalogo.
SCHEMA_TAGS Contiene i metadati di assegnazione di tag allo schema.
SCHEMA_SHARE_USAGE Descrive gli schemi a cui si fa riferimento nelle condivisioni.
SCHEMATA Descrive gli schemi all'interno del catalogo.
SHARE_RECIPIENT_PRIVILEGES Descrive i destinatari a cui è stato concesso l'accesso alle condivisioni.
AZIONI Descrive le condivisioni.
STORAGE_CREDENTIAL_PRIVILEGES Elenca le entità con privilegi per le credenziali di archiviazione.
STORAGE_CREDENTIALS Descrive le credenziali di archiviazione.
TABLE_CONSTRAINTS Descrive i metadati per tutti i vincoli di chiave primaria ed esterna all'interno del catalogo.
TABLE_PRIVILEGES Elenca le entità con privilegi per le tabelle e le viste nel catalogo.
TABLE_SHARE_USAGE Descrive le tabelle a cui si fa riferimento nelle condivisioni.
TABLE_TAGS Contiene i metadati di assegnazione di tag alla tabella all'interno di una tabella.
TABLES Vengono descritte le tabelle e le viste definite all'interno del catalogo.
VIEWS Vengono descritte le informazioni specifiche sulle viste nel catalogo.
VOLUMI Descrive i volumi definiti nel catalogo.
VOLUME_PRIVILEGES Elenca le entità che dispongono di privilegi per i volumi nel catalogo.
VOLUME_TAGS Contiene i metadati di assegnazione di tag al volume applicati a un volume.

Note

Anche se gli identificatori non fanno distinzione tra maiuscole e minuscole quando si fa riferimento nelle istruzioni SQL, vengono archiviati nello schema delle informazioni come STRING. Ciò implica che è necessario cercarli usando il caso in cui viene archiviato l'identificatore o usare funzioni come ilike.

Esempi

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

Di seguito sono riportati esempi di flussi di lavoro che usano le tabelle dello schema delle informazioni a livello di sistema.

Se si desidera visualizzare tutte le tabelle create nelle ultime 24 ore, la query potrebbe essere simile alla seguente.

> 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;

Per visualizzare il numero di tabelle presenti in ogni schema, prendere in considerazione l'esempio seguente.

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