共用方式為


資訊結構描述

適用於:勾選為是 Databricks SQL 勾選為是 Databricks Runtime 10.4 LTS 及以上 勾選為是 Unity Catalog 目錄

INFORMATION_SCHEMA是 SQL 標準架構,提供於 Unity 目錄上建立的每個目錄中。

在資訊結構中,您可以找到一組視圖,這些視圖描述了資訊結構目錄中,您有權限查看的物件。 目錄的信息架構 SYSTEM 會傳回中繼存放區內所有目錄的對象相關信息。 信息架構系統數據表不包含有關 hive_metastore 物件的元數據。

信息架構的目的是提供以 SQL 為基礎的自我描述 API 給元數據。

信息架構的實體關聯性圖表

下列實體關聯性 (ER) 圖表提供資訊架構檢視子集的概觀,以及它們彼此的關聯性。

信息架構的 ER 圖表

資訊架構視圖

名稱 描述
CATALOG_PRIVILEGES 列出在目錄中擁有許可權主體
CATALOG_PROVIDER_SHARE_USAGE 描述提供者的共享掛載至目錄。
CATALOG_TAGS 包含已套用至目錄的標記。
CATALOGS 描述目錄。
CHECK_CONSTRAINTS 保留供未來使用。
COLUMN_MASKS 描述目錄中資料表的欄位遮罩。
COLUMN_TAGS 包含表格內的欄位標記元數據。
COLUMNS 描述目錄中數據表和檢視的欄位。
CONNECTION_PRIVILEGES 列出具有外部連線許可權主體
CONNECTIONS 描述國外連結。
CONSTRAINT_COLUMN_USAGE 描述目錄中引用欄位的條件約束。
CONSTRAINT_TABLE_USAGE 描述在資料庫目錄中參考數據表的條件約束。
CREDENTIAL_PRIVILEGES 列出對憑證擁有許可權的主體。
CREDENTIALS 描述認證。
EXTERNAL_LOCATION_PRIVILEGES 列出具有外部位置許可權主體
EXTERNAL_LOCATIONS 描述外部位置。
INFORMATION_SCHEMA_CATALOG_NAME 傳回此資訊架構目錄的名稱。
KEY_COLUMN_USAGE 列出在目錄中主鍵或外鍵限制條件的欄位。
METASTORE_PRIVILEGES 列出具有目前中繼存放區許可權主體
METASTORES 描述目前的中繼存放區。
PARAMETERS 描述目錄中例程 (functions) 的參數。
PROVIDERS 描述提供者。
RECIPIENT_ALLOWED_IP_RANGES 為收件者列出允許的 IP 範圍。
RECIPIENT_TOKENS 列出收件者的令牌。
RECIPIENTS 描述收件者。
REFERENTIAL_CONSTRAINTS 描述目錄中定義的引用(外鍵)條件約束。
ROUTINE_COLUMNS 描述表值函式的結果欄位。
ROUTINE_PRIVILEGES 列出在目錄中具有例程許可權主體
ROUTINES 描述目錄中的例程(函式)。
ROW_FILTERS 描述目錄中數據表上的資料列篩選。
SCHEMA_PRIVILEGES 列出在目錄中具有架構許可權主體
SCHEMA_TAGS 包含架構內的架構標記元數據。
SCHEMA_SHARE_USAGE 描述共享中引用的結構。
SCHEMATA 描述目錄中的架構。
SHARE_RECIPIENT_PRIVILEGES 描述授與股份存取權的收件者。
SHARES 描述股份
STORAGE_CREDENTIAL_PRIVILEGES [已淘汰]列出具有記憶體認證許可權主體
STORAGE_CREDENTIALS [已淘汰]描述記憶體認證。
TABLE_CONSTRAINTS 描述目錄中所有主鍵和外鍵約束的元數據。
TABLE_PRIVILEGES 列出在目錄中具有數據表和檢視許可權主體
TABLE_SHARE_USAGE 描述資源共享中參考的資料表。
TABLE_TAGS 包含數據表內標記元數據的數據表。
TABLES 描述目錄內定義的數據表和視圖。
VIEWS 描述有關目錄中檢視的特定資訊。
VOLUMES 描述資料庫中定義的卷冊。
VOLUME_PRIVILEGES 列出在目錄中具有磁碟區許可權主體
VOLUME_TAGS 包含套用至磁碟區的磁碟區標記元數據。

備註

  • 某些目錄元數據變更可能需要手動 REPAIR TABLE 同步處理,才能反映在信息架構中。 如需詳細資訊,請參閱REPAIR TABLE
  • 除了資料欄位和標記名稱 以外的 所有標識符都會以小寫儲存在資訊結構中 STRING。 若要提升查詢效能,請避免在標識符數據欄上使用LOWER()UPPER()等函式。 相反地,使用小寫值直接比較標識符。
  • 若要防止查詢逾時,請在查詢資訊架構時套用選擇性篩選條件(例如 WHERE table_catalog = 'main' AND table_schema = 'default')。 如需可用來作為每個資訊架構數據表篩選條件之數據行的完整清單,請參閱上述檔。
    • 請注意,LIMIT 目前不支援下推操作,因此雖然它可以縮減結果,但無法提升效能。

範例

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

以下是使用系統層級資訊架構數據表的工作流程範例。

如果您想要檢視過去 24 小時內建立的所有數據表,您的查詢看起來可能如下所示。

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

如果您想要檢視每個架構中有多少個數據表,請考慮下列範例。

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