Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a: Databricks SQL
Databricks Runtime 10.4 LTS e versioni successive
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.
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 comeLOWER()
oUPPER()
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.
- Si noti che il meccanismo di pushdown
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