Delen via


Informatieschema

Van toepassing op:met vinkje Databricks SQL met vinkje Databricks Runtime 10.4 LTS en hoger met vinkje alleen Unity Catalog

Het INFORMATION_SCHEMA is een op SQL standaard gebaseerd schema, dat wordt geleverd in elke catalogus die is gemaakt in Unity Catalog.

Binnen het informatieschema kunt u een set weergaven vinden die de objecten beschrijven die bekend zijn in de catalogus van het schema en waar u toegang toe heeft. 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.

ER-diagram van informatieschema

Informatieschemaweergaven

Naam Beschrijving
CATALOG_PRIVILEGES Geeft principalen weer die bevoegdheden hebben op 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 buitenlandse 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 die bevoegdheden hebben op de referenties.
CREDENTIALS Beschrijft referenties.
EXTERNAL_LOCATION_PRIVILEGES Lijst principals die bevoegdheden hebben 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 vreemde sleutelbeperkingen in de catalogus weergegeven.
METASTORE_PRIVILEGES Geeft een lijst weer van principals die bevoegdheden hebben op de huidige metastore.
METASTORES Beschrijft de huidige metastore.
PARAMETERS Beschrijft parameters van routines (functies) in de catalogus.
PROVIDERS Beschrijft aanbieders.
RECIPIENT_ALLOWED_IP_RANGES Hiermee worden toegestane IP-bereiken voor ontvangers opgesomd.
RECIPIENT_TOKENS Geeft tokens voor ontvangers weer.
RECIPIENTS Beschrijft ontvangers.
REFERENTIAL_CONSTRAINTS Beschrijft referentiƫle (vreemde sleutel) restricties 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 gedeelde bestanden.
SCHEMATA Beschrijft schema's in de catalogus.
SHARE_RECIPIENT_PRIVILEGES Beschrijft de geadresseerden aan wie toegang tot de aandelen is verleend.
SHARES Beschrijft aandelen.
STORAGE_CREDENTIAL_PRIVILEGES [Verouderd] Lijst principals die rechten hebben op de opslagreferenties.
STORAGE_CREDENTIALS [Verouderd] Beschrijft opslaggegevens.
TABLE_CONSTRAINTS In deze beschrijving worden de metagegevens voor alle beperkingen van primaire en vreemde sleutels binnen de catalogus behandeld.
TABLE_PRIVILEGES Somt principals op 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 Lijst principalen die bevoegdheden hebben voor de volumes in de catalogus.
VOLUME_TAGS Bevat metagegevens voor volumetags die zijn toegepast op een volume.

Opmerkingen

  • Mogelijk is een handmatige synchronisatie REPAIR TABLE vereist zodat enkele wijzigingen in de catalogusmetadata worden weerspiegeld in het informatieschema. Zie REPAIR TABLE voor meer informatie.
  • Alle id's behalve kolom- en tagnamen worden opgeslagen in het informatieschema als kleine letters STRING. Vermijd voor queryprestaties het gebruik van functies zoals LOWER() of UPPER() in de id-kolom. Vergelijk in plaats daarvan id's rechtstreeks met kleine letters.
  • Als u time-outs van query's wilt voorkomen, past u selectieve filters toe bij het uitvoeren van query's op het informatieschema (bijvoorbeeld WHERE table_catalog = 'main' AND table_schema = 'default'). Raadpleeg de bovenstaande documentatie voor een volledige lijst met kolommen die kunnen worden gebruikt als filters voor elke tabel Informatieschema.
    • Houd er rekening mee dat LIMIT pushdown momenteel niet wordt ondersteund, dus hoewel deze de resultaten kan afkappen, worden de prestaties niet verbeterd.

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