Informatieschema
Van toepassing op:Alleen Databricks SQL
Databricks Runtime 10.4 LTS en hoger
dan Unity Catalog
Het INFORMATION_SCHEMA
is een op SQL standaard gebaseerd schema, dat wordt geleverd in elke catalogus die is gemaakt in Unity Catalog.
In het informatieschema vindt u een set weergaven met een beschrijving van de objecten die bekend zijn in de catalogus van het schema die u bevoegd bent te zien.
Het informatieschema van de SYSTEM
catalogus retourneert informatie over objecten in alle catalogi in de metastore. Systeemtabellen van informatieschema's bevatten geen metagegevens over hive_metastore
objecten.
Het doel van het informatieschema is om een op SQL gebaseerde, zelf beschrijvende API voor de metagegevens te bieden.
Diagram van entiteitsrelatie van het informatieschema
Het volgende ER-diagram (Entiteitsrelatie) biedt een overzicht van een subset van informatieschemaweergaven en hoe deze zich verhouden tot elkaar.
Informatieschemaweergaven
Name | Beschrijving |
---|---|
CATALOG_PRIVILEGES | Geeft principals weer met bevoegdheden voor de catalogi. |
CATALOG_PROVIDER_SHARE_USAGE | Beschrijft de providershare die is gekoppeld aan catalogi. |
CATALOG_TAGS | Bevat tags die zijn toegepast op de catalogi. |
CATALOGS | Beschrijft catalogi. |
CHECK_CONSTRAINTS | Gereserveerd voor toekomstig gebruik. |
COLUMN_MASKS | Beschrijft kolommaskers voor tabelkolommen in de catalogus. |
COLUMN_TAGS | Bevat metagegevens voor kolomtags in een tabel. |
COLUMNS | Beschrijft kolommen met tabellen en weergaven in de catalogus. |
CONNECTION_PRIVILEGES | Geeft principals weer die bevoegdheden hebben voor de externe verbindingen. |
CONNECTIONS | Beschrijft refererende verbindingen. |
CONSTRAINT_COLUMN_USAGE | Beschrijft de beperkingen die verwijzen naar kolommen in de catalogus. |
CONSTRAINT_TABLE_USAGE | Beschrijft de beperkingen die verwijzen naar tabellen in de catalogus. |
CREDENTIAL_PRIVILEGES | Geeft principals weer met bevoegdheden voor de referenties. |
CREDENTIALS | Beschrijft referenties. |
EXTERNAL_LOCATION_PRIVILEGES | Geeft principals weer met bevoegdheden op de externe locaties. |
EXTERNAL_LOCATIONS | Beschrijft externe locaties. |
INFORMATION_SCHEMA_CATALOG_NAME | Retourneert de naam van de catalogus van dit informatieschema. |
KEY_COLUMN_USAGE | Hiermee worden de kolommen van de primaire of refererende-sleutelbeperkingen in de catalogus weergegeven. |
METASTORE_PRIVILEGES | Geeft principals weer die bevoegdheden hebben voor de huidige metastore. |
METASTORES | Beschrijft de huidige metastore. |
PARAMETERS | Beschrijft parameters van routines (functies) in de catalogus. |
PROVIDERS | Beschrijft providers. |
RECIPIENT_ALLOWED_IP_RANGES | Hiermee worden toegestane IP-bereiken voor geadresseerden weergegeven. |
RECIPIENT_TOKENS | Hiermee worden tokens voor geadresseerden weergegeven. |
RECIPIENTS | Beschrijft geadresseerden. |
REFERENTIAL_CONSTRAINTS | Beschrijft referentiƫle (referentiƫle sleutel) beperkingen die zijn gedefinieerd in de catalogus. |
ROUTINE_COLUMNS | Beschrijft resultaatkolommen van tabelwaardefuncties. |
ROUTINE_PRIVILEGES | Geeft principals weer die bevoegdheden hebben voor de routines in de catalogus. |
ROUTINES | Beschrijft routines (functies) in de catalogus. |
ROW_FILTERS | Beschrijft rijfilters op tabellen in de catalogus. |
SCHEMA_PRIVILEGES | Geeft principals weer die bevoegdheden hebben voor de schema's in de catalogus. |
SCHEMA_TAGS | Bevat metagegevens voor schematags in het schema. |
SCHEMA_SHARE_USAGE | Beschrijft de schema's waarnaar wordt verwezen in shares. |
SCHEMATA | Beschrijft schema's in de catalogus. |
SHARE_RECIPIENT_PRIVILEGES | Beschrijft de geadresseerden die toegang tot shares hebben verleend. |
SHARES | Beschrijft shares. |
STORAGE_CREDENTIAL_PRIVILEGES | [Afgeschaft] Geeft principals weer met bevoegdheden voor de opslagreferenties. |
STORAGE_CREDENTIALS | [Afgeschaft] Hierin worden opslagreferenties beschreven. |
TABLE_CONSTRAINTS | Hierin worden metagegevens beschreven voor alle beperkingen voor primaire en refererende sleutels in de catalogus. |
TABLE_PRIVILEGES | Geeft principals weer met bevoegdheden voor de tabellen en weergaven in de catalogus. |
TABLE_SHARE_USAGE | Beschrijft de tabellen waarnaar wordt verwezen in shares. |
TABLE_TAGS | Bevat metagegevens voor tabeltags in een tabel. |
TABLES | Beschrijft tabellen en weergaven die zijn gedefinieerd in de catalogus. |
VIEWS | Beschrijft weergavespecifieke informatie over de weergaven in de catalogus. |
VOLUMES | Beschrijft volumes die zijn gedefinieerd in de catalogus. |
VOLUME_PRIVILEGES | Geeft principals weer met bevoegdheden voor de volumes in de catalogus. |
VOLUME_TAGS | Bevat metagegevens voor volumetags die zijn toegepast op een volume. |
Opmerkingen
Hoewel id's niet hoofdlettergevoelig zijn wanneer ernaar wordt verwezen in SQL-instructies, worden ze opgeslagen in het informatieschema als STRING
.
Dit impliceert dat u ze moet zoeken met behulp van de case waarin de id is opgeslagen, of functies zoals ilike gebruiken.
Voorbeelden
> SELECT table_name, column_name
FROM information_schema.columns
WHERE data_type = 'DOUBLE'
AND table_schema = 'information_schema';
Hier volgen voorbeelden van werkstromen die gebruikmaken van de schematabellen op systeemniveau.
Als u alle tabellen wilt weergeven die in de afgelopen 24 uur zijn gemaakt, kan uw query er als volgt uitzien.
> 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;
Als u wilt weergeven hoeveel tabellen u in elk schema hebt, bekijkt u het volgende voorbeeld.
> SELECT table_schema, count(table_name)
FROM system.information_schema.tables
WHERE table_schema = 'tpch'
GROUP BY table_schema
ORDER BY 2 DESC