Freigeben über


Informationsschema

Gilt für:Häkchen ja Databricks SQL durch Häkchen mit „Ja“ markiert Databricks Runtime 10.4 LTS und höher Häkchen gesetzt ja Nur Unity Catalog

Im SYSTEM-Katalog ist das INFORMATION_SCHEMA ein SQL-Standardschema, das Metadaten zu Objekten über alle Kataloge im Metastore bereitstellt. Es enthält keine Metadaten zu hive_metastore Objekten.

Jeder Katalog, der im Unity-Katalog erstellt wird, enthält automatisch eine information_schema, die ausschließlich Metadaten zu Objekten in diesem Katalog beschreibt.

Beide Arten von Informationsschemas filtern automatisch Ergebnisse, um nur die Objekte einzuschließen, auf die Sie über Unity-Katalogberechtigungen verfügen. Dieses Verhalten unterscheidet sich von anderen Azure Databricks-Systemtabellen. Siehe Wie Informationsschematabellen den Umgang mit Berechtigungen handhaben.

Der Zweck des Informationsschemas besteht darin, eine SQL-basierte, privilegierte und selbst beschreibende API für den Zugriff auf Katalogmetadaten bereitzustellen.

So behandeln Informationsschemasystemtabellen Berechtigungen

system.information_schema unterscheidet sich von anderen Systemtabellen darin, dass die automatische Filterung implementiert wird. Dies bedeutet, dass nur die Objekte (Kataloge, Schemas, Tabellen, Spalten usw.) angezeigt werden, auf die Sie über Berechtigungen für den Zugriff im Unity-Katalog verfügen. Wenn sich Ihre Berechtigungen ändern, ändert sich die Anzeige im Informationsschema entsprechend. Wenn Sie z. B. abfragen information_schema.tables, werden nur Zeilen für Tabellen zurückgegeben, für die Sie die Berechtigung zum Anzeigen haben.

Wie alle anderen Systemtabellen benötigen Sie explizite USE und SELECT Berechtigungen für den Zugriff und die Abfrage aus dem Informationsschema.

Entitätsbeziehungsdiagramm des Informationsschemas

Das folgende Entitätsbeziehungsdiagramm liefert einen Überblick über eine Teilmenge der Ansichten des Informationsschemas und deren Beziehung zueinander.

ER-Diagramm des Informationsschemas

Informationsschemasichten

NAME BESCHREIBUNG
CATALOG_PRIVILEGES Listet Prinzipale auf, die über Berechtigungen in den Katalogen verfügen.
CATALOG_PROVIDER_SHARE_USAGE Beschreibt die in Kataloge eingebundene Anbieterfreigabe.
CATALOG_TAGS Enthält Tags, die auf die Kataloge angewendet wurden.
CATALOGS Beschreibt Kataloge.
CHECK_CONSTRAINTS Für die zukünftige Verwendung reserviert.
COLUMN_MASKS Beschreibt Spaltenmasken für Tabellenspalten im Katalog.
COLUMN_TAGS Enthält Spaltenmarkierungsmetadaten innerhalb einer Tabelle.
COLUMNS Beschreibt Spalten von Tabellen und Ansichten im Katalog.
CONNECTION_PRIVILEGES Listet Prinzipale auf, die über Berechtigungen für die Fremdverbindungen verfügen.
CONNECTIONS Beschreibt Fremdverbindungen.
CONSTRAINT_COLUMN_USAGE Beschreibt die Einschränkungen, die auf Spalten im Katalog verweisen.
CONSTRAINT_TABLE_USAGE Beschreibt die Einschränkungen, die auf Tabellen im Katalog verweisen.
CREDENTIAL_PRIVILEGES Listet Prinzipale auf, die über Berechtigungen für die Anmeldeinformationen verfügen.
CREDENTIALS Beschreibt Anmeldeinformationen.
EXTERNAL_LOCATION_PRIVILEGES Listet Prinzipale auf, die über Berechtigungen für die externen Speicherorte verfügen.
EXTERNAL_LOCATIONS Beschreibt externe Standorte.
INFORMATION_SCHEMA_CATALOG_NAME Gibt den Namen des Katalogs dieses Informationsschemas zurück.
KEY_COLUMN_USAGE Listet die Spalten der Primär- oder Fremdschlüsseleinschränkungen im Katalog auf.
METASTORE_PRIVILEGES Listet Prinzipale auf, die über Berechtigungen für den aktuellen Metastore verfügen.
METASTORES Beschreibt den aktuellen Metastore.
PARAMETERS Beschreibt Parameter der Routinen (Funktionen) im Katalog.
PROVIDERS Beschreibt Anbieter.
RECIPIENT_ALLOWED_IP_RANGES Listet zulässige IP-Adressbereiche für Empfänger auf.
RECIPIENT_TOKENS Listet Token für Empfänger auf.
RECIPIENTS Beschreibt Empfänger.
REFERENTIAL_CONSTRAINTS Beschreibt die im Katalog definierten referenziellen Einschränkungen (Fremdschlüssel).
ROUTINE_COLUMNS Beschreibt Ergebnisspalten von Tabellenwertfunktionen.
ROUTINE_PRIVILEGES Listet Prinzipale auf, die über Berechtigungen für die Routinen im Katalog verfügen.
ROUTINES Beschreibt Routinen (Funktionen) im Katalog.
ROW_FILTERS Beschreibt Zeilenfilter für Tabellen im Katalog.
SCHEMA_PRIVILEGES Listet Prinzipale auf, die über Berechtigungen für die Schemata im Katalog verfügen.
SCHEMA_TAGS Enthält Schemataggingmetadaten innerhalb des Schemas.
SCHEMA_SHARE_USAGE Beschreibt die Schemas, auf die in Freigaben verwiesen wird.
SCHEMATA Beschreibt Schemas im Katalog.
SHARE_RECIPIENT_PRIVILEGES Beschreibt die Empfänger, denen Zugriff auf Freigaben gewährt wird.
SHARES Beschreibt Freigaben.
STORAGE_CREDENTIAL_PRIVILEGES [Veraltet] Listet Prinzipale auf, die über Berechtigungen für die Speicheranmeldeinformationen verfügen.
STORAGE_CREDENTIALS [Veraltet] Beschreibt Speicheranmeldeinformationen.
TABLE_CONSTRAINTS Enthält Metadaten für alle Primär- und Fremdschlüsseleinschränkungen im Katalog.
TABLE_PRIVILEGES Listet Prinzipale auf, die Berechtigungen für die Tabellen und Ansichten im Katalog haben.
TABLE_SHARE_USAGE Beschreibt die Tabellen, auf die in Freigaben verwiesen wird.
TABLE_TAGS Enthält Tabellentaggingmetadaten innerhalb einer Tabelle.
TABLES Beschreibt Tabellen und Ansichten, die innerhalb des Katalogs definiert sind.
VIEWS Beschreibt bestimmte Informationen zu den Ansichten im Katalog.
VOLUMES Beschreibt im Katalog definierte Volumes.
VOLUME_PRIVILEGES Listet Prinzipale auf, die über Berechtigungen für die Volumes im Katalog verfügen.
VOLUME_TAGS Enthält Taggingmetadaten, die auf ein Volume angewandt werden.

Notizen

  • Das Informationsschema implementiert die Filterung von Berechtigungen. Sie sehen automatisch nur die Objekte, auf die Sie über Unity-Katalogberechtigungen verfügen, um darauf zuzugreifen. Siehe Wie Berechtigungen in Informationsschema-Systemtabellen behandelt werden.
  • Möglicherweise ist eine manuelle Synchronisierung REPAIR TABLE erforderlich, damit einige Änderungen der Katalogmetadaten im Informationsschema widergespiegelt werden. Weitere Informationen finden Sie unter REPAIR TABLE.
  • Alle Bezeichner außer Spalten- und Tagnamen werden im Informationsschema als Kleinbuchstaben STRINGgespeichert. Vermeiden Sie bei der Abfrageleistung die Verwendung von Funktionen wie LOWER() oder UPPER() in der Bezeichnerspalte. Vergleichen Sie stattdessen Bezeichner direkt, indem Sie sie in Kleinbuchstaben umwandeln.
  • Um Abfragetimeouts zu verhindern, wenden Sie selektive Filter beim Abfragen des Informationsschemas an (z. B. WHERE table_catalog = 'main' AND table_schema = 'default'). Eine vollständige Liste der Spalten, die als Filter für jede Informationsschematabelle verwendet werden können, finden Sie in der obigen Dokumentation.
    • Beachten Sie, dass LIMIT-Pushdown derzeit nicht unterstützt wird. Dadurch kann es zwar die Ergebnisse abschneiden, jedoch nicht die Leistung verbessern.

Beispiele

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

Im Folgenden finden Sie Beispiele für Workflows, die die Schematabellen der Systemebeneninformationen verwenden.

Wenn Sie alle Tabellen anzeigen möchten, die in den letzten 24 Stunden erstellt wurden, könnte Ihre Abfrage wie folgt aussehen.

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

Wenn Sie sehen möchten, über wie viele Tabellen Sie in jedem Schema verfügen, sehen Sie sich das folgende Beispiel an.

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