Condividi tramite


Schema delle informazioni

Si applica a:segnato come sì Databricks SQL segnato come sì Databricks Runtime 10.4 LTS e versioni successive segnato come sì solo per Unity Catalog

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 è autorizzati a 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 autodescrittiva basata su SQL 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 informativi

Nome Descrizione
CATALOG_PRIVILEGES Elenca i soggetti che hanno privilegi sui cataloghi.
CATALOG_PROVIDER_SHARE_USAGE Descrive la quota del provider montata sui cataloghi.
CATALOG_TAGS Contiene i tag che sono stati applicati ai cataloghi.
CATALOGS Descrive i cataloghi.
CHECK_CONSTRAINTS Riservato a un uso futuro.
COLUMN_MASKS Descrive le maschere di colonna delle colonne della tabella nel catalogo.
COLUMN_TAGS Contiene i metadati di assegnazione di tag alle colonne all'interno di una tabella.
COLUMNS Descrive le colonne delle tabelle e delle viste nel catalogo.
CONNECTION_PRIVILEGES Elenca le entità con privilegi per le connessioni esterne.
CONNECTIONS Descrive le connessioni straniere.
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.
CREDENTIAL_PRIVILEGES Elenca principali che hanno privilegi sulle credenziali.
CREDENTIALS Descrive le credenziali.
EXTERNAL_LOCATION_PRIVILEGES Elenca le entità che hanno privilegi sulle ubicazioni esterne.
EXTERNAL_LOCATIONS Descrive le località esterne.
INFORMATION_SCHEMA_CATALOG_NAME Restituisce il nome del catalogo di questo schema delle informazioni.
KEY_COLUMN_USAGE Elenca le colonne dei vincoli di chiave primaria o chiave esterna presenti nel catalogo.
METASTORE_PRIVILEGES Elenca le entità che hanno privilegi sul metastore corrente.
METASTORES Descrive il metastore corrente.
PARAMETERS Descrive i parametri delle routine (funzioni) nel catalogo.
PROVIDERS Descrive i fornitori.
RECIPIENT_ALLOWED_IP_RANGES Elenca gli intervalli IP consentiti per i destinatari.
RECIPIENT_TOKENS Elenca i token relativi ai destinatari.
RECIPIENTS 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 quote.
SHARES Descrive le azioni.
STORAGE_CREDENTIAL_PRIVILEGES [Deprecato] Elenca le entità con privilegi per le credenziali di archiviazione.
STORAGE_CREDENTIALS [Deprecato] 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 i principali con privilegi sulle tabelle e le viste all'interno del 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 La descrizione fornisce informazioni specifiche sulle viste nel catalogo.
VOLUMES 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

  • Per riflettere alcune modifiche ai metadati del catalogo nello schema delle informazioni, potrebbe essere necessaria una sincronizzazione manuale tramite REPAIR TABLE . Per altre informazioni, vedere REPAIR TABLE.
  • Tutti gli identificatori tranne i nomi di colonna e tag vengono archiviati nello schema delle informazioni come minuscoli STRING. Per le prestazioni delle query, evitare di usare funzioni come LOWER() o UPPER() nella colonna dell'identificatore. Confrontare invece gli identificatori direttamente usando valori minuscoli.
  • Per evitare timeout delle query, applicare filtri selettivi durante l'esecuzione di query sullo schema delle informazioni ,ad esempio WHERE table_catalog = 'main' AND table_schema = 'default'. Fare riferimento alla documentazione precedente per un elenco completo di colonne che possono essere usate come filtri per ogni tabella dello schema delle informazioni.
    • Si noti che il meccanismo di pushdown LIMIT non è attualmente supportato, quindi anche se può ridurre i risultati non migliorerà le prestazioni.

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