適用於: Databricks SQL
Databricks Runtime 10.4 LTS 及以上
Unity Catalog 目錄
INFORMATION_SCHEMA
是 SQL 標準架構,提供於 Unity 目錄上建立的每個目錄中。
在資訊結構中,您可以找到一組視圖,這些視圖描述了資訊結構目錄中,您有權限查看的物件。
目錄的信息架構 SYSTEM
會傳回中繼存放區內所有目錄的對象相關信息。 信息架構系統數據表不包含有關 hive_metastore
物件的元數據。
信息架構的目的是提供以 SQL 為基礎的自我描述 API 給元數據。
信息架構的實體關聯性圖表
下列實體關聯性 (ER) 圖表提供資訊架構檢視子集的概觀,以及它們彼此的關聯性。
資訊架構視圖
備註
- 某些目錄元數據變更可能需要手動
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