Sdílet prostřednictvím


Schéma informací

Platí pro:zaškrtnuto ano Databricks SQL zaškrtnuto ano Databricks Runtime 10.4 LTS a vyšší zaškrtnuto ano pouze Unity Catalog

SYSTEM V katalogu je standardní schéma SQL, INFORMATION_SCHEMA které poskytuje metadata o objektech ve všech katalogech v metastoru. Neobsahuje metadata o hive_metastore objektech.

Samostatně, každý katalog vytvořený v Unity Catalog také automaticky obsahuje information_schema metadata o objektech v tomto katalogu.

Oba typy informačních schémat automaticky filtrují výsledky tak, aby zahrnovaly pouze objekty, ke kterým máte oprávnění katalogu Unity pro přístup. Toto chování se liší od jiných systémových tabulek Azure Databricks. Přečtěte si , jak systémové tabulky schématu informací zpracovávají oprávnění.

Účelem informačního schématu je poskytnout API založené na SQL, které je si vědomé oprávnění a samo popisující, pro přístup k metadatům katalogu.

Jak systémové tabulky schématu informací zpracovávají oprávnění

system.information_schema liší se od ostatních systémových tabulek v tom, že implementuje automatické filtrování. To znamená, že uvidíte pouze objekty (katalogy, schémata, tabulky, sloupce atd.), ke kterým máte oprávnění k přístupu v katalogu Unity. Pokud se vaše oprávnění změní, změny v informačním schématu se odpovídajícím způsobem změní. Například při dotazování information_schema.tablesse vrátí pouze řádky pro tabulky, které máte oprávnění k zobrazení.

Stejně jako všechny ostatní systémové tabulky potřebujete explicitní USE a SELECT oprávnění pro přístup a dotazování ze schématu informací.

Diagram vztahů entit schématu informací

Následující diagram entitních vztahů (ER) nastiňuje přehled podmnožiny pohledů informačního schématu a jejich vzájemné vztahy.

Diagram ER schématu informací

Zobrazení schématu informací

Název Popis
CATALOG_PRIVILEGES Uvádí subjekty, které mají oprávnění k katalogům.
CATALOG_PROVIDER_SHARE_USAGE Popisuje sdílení zprostředkovatele namontované do katalogů.
CATALOG_TAGS Obsahuje značky, které byly použity v katalozích.
CATALOGS Popisuje katalogy.
CHECK_CONSTRAINTS Vyhrazeno pro budoucí použití.
COLUMN_MASKS Popisuje masky sloupců na sloupcích tabulky v katalogu.
COLUMN_TAGS Obsahuje metadata označování sloupců v tabulce.
COLUMNS Popisuje sloupce tabulek a zobrazení v katalogu.
CONNECTION_PRIVILEGES Vypíše subjekty, které mají oprávnění k cizím připojením.
CONNECTIONS Popisuje zahraniční připojení.
CONSTRAINT_COLUMN_USAGE Popisuje omezení vztahující se ke sloupcům v katalogu.
CONSTRAINT_TABLE_USAGE Popisuje omezení odkazující na tabulky v katalogu.
CREDENTIAL_PRIVILEGES Seznam principálů, kteří mají oprávnění k pověření.
CREDENTIALS Popisuje přihlašovací údaje.
EXTERNAL_LOCATION_PRIVILEGES Uvádí subjekty, které mají přístupová práva k externím umístěním.
EXTERNAL_LOCATIONS Popisuje externí lokace.
INFORMATION_SCHEMA_CATALOG_NAME Vrátí název katalogu tohoto informačního schématu.
KEY_COLUMN_USAGE Zobrazí sloupce omezení primárního nebo cizího klíče v katalogu.
METASTORE_PRIVILEGES Uvádí subjekty, které mají oprávnění k aktuálnímu metastoru.
METASTORES Popisuje aktuální metastore.
PARAMETERS Popisuje parametry rutin (funkcí) v katalogu.
PROVIDERS Popisuje poskytovatele.
RECIPIENT_ALLOWED_IP_RANGES Zobrazí seznam povolených rozsahů IP adres pro příjemce.
RECIPIENT_TOKENS Vypíše tokeny pro příjemce.
RECIPIENTS Popisuje příjemce.
REFERENTIAL_CONSTRAINTS Popisuje referenční omezení (cizí klíč) definovaná v katalogu.
ROUTINE_COLUMNS Popisuje výsledné sloupce tabulkových hodnotných funkcí.
ROUTINE_PRIVILEGES Uvádí subjekty, které mají oprávnění k rutinám v katalogu.
ROUTINES Popisuje rutiny (funkce) v katalogu.
ROW_FILTERS Popisuje filtry řádků u tabulek v katalogu.
SCHEMA_PRIVILEGES Uvádí subjekty, které mají oprávnění ke schématům v katalogu.
SCHEMA_TAGS Metadata pro označení schématu jsou obsažena v rámci schématu.
SCHEMA_SHARE_USAGE Popisuje schémata odkazovaná ve sdílených položkách.
SCHEMATA Popisuje schémata v katalogu.
SHARE_RECIPIENT_PRIVILEGES Popisuje příjemce, kterým byl udělen přístup k podílům.
SHARES Popisuje akcie.
STORAGE_CREDENTIAL_PRIVILEGES [Zastaralé] Uvádí subjekty, které mají oprávnění k přístupovým údajům úložiště.
STORAGE_CREDENTIALS [Zastaralé] Popisuje přihlašovací údaje úložiště.
TABLE_CONSTRAINTS Popisuje metadata pro všechna omezení primárních a cizích klíčů v katalogu.
TABLE_PRIVILEGES Uvádí subjekty, které mají oprávnění k tabulkám a zobrazením v katalogu.
TABLE_SHARE_USAGE Popisuje tabulky odkazované ve sdílených složkách.
TABLE_TAGS Obsahuje metadata označování tabulek v tabulce.
TABLES Popisuje tabulky a zobrazení definovaná v katalogu.
VIEWS Popisuje informace specifické pro zobrazení v katalozích.
VOLUMES Popisuje svazky definované v katalogu.
VOLUME_PRIVILEGES Uvádí subjekty, které mají oprávnění ke svazkům v katalogu.
VOLUME_TAGS Obsahuje metadata pro označení svazků použitá na tyto svazky.

Poznámky

  • Schéma informací implementuje filtrování s podporou oprávnění. Automaticky se zobrazí jenom objekty, ke kterým máte oprávnění katalogu Unity pro přístup. Přečtěte si , jak systémové tabulky schématu informací zpracovávají oprávnění.
  • Pro některé změny metadat katalogu může být nutná ruční synchronizace pomocí REPAIR TABLE, aby se projevily ve schématu informací. Další informace najdete v tématu REPAIR TABLE.
  • Všechny identifikátory s výjimkou názvů sloupců a značek jsou uloženy ve schématu informací malými písmeny STRING. V případě výkonu dotazů nepoužívejte funkce, jako LOWER() je sloupec identifikátoru nebo UPPER() funkce. Místo toho porovnejte identifikátory přímo pomocí malých písmen.
  • Pokud chcete zabránit vypršení časového limitu dotazu, použijte při dotazování schématu informací selektivní filtry (např. WHERE table_catalog = 'main' AND table_schema = 'default'). Úplný seznam sloupců, které lze použít jako filtry pro každou tabulku schématu informací, najdete v dokumentaci výše.
    • Všimněte si, že LIMIT nabízená nabídka se v současné době nepodporuje, takže i když může zkrátit výsledky, nezlepší výkon.

Příklady

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

Následují příklady pracovních postupů, které používají tabulky informačního schématu úrovně systému.

Pokud chcete zobrazit všechny tabulky vytvořené za posledních 24 hodin, váš dotaz by mohl vypadat takto.

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

Pokud chcete zobrazit, kolik tabulek máte v každém schématu, zvažte následující příklad.

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