Databricks Unity Catalog 資料表類型

Unity 目錄支援三種主要資料表類型:管理型、外部型及外部型態資料表。 每種類型在資料的儲存、管理與治理方式上有所不同。

受管理的資料表

受管理的資料表是預設且推薦的類型。 Unity 目錄管理資料生命週期、儲存位置及優化。 當你丟棄受管理資料表時,元資料和底層資料檔案都會被刪除。

受管理的表格由 Delta Lake 或 Apache Iceberg 支援,並提供:

  • 自動優化以降低儲存與運算成本
  • 所有客戶端類型的查詢效能更快
  • 自動表格維護
  • 非 Databricks 用戶透過開放 API 獲得安全的存取權限
  • 自動升級至最新平台功能

資料檔案儲存在包含該資料表的結構或目錄中。 請參閱 Unity Catalog 管理的 Delta Lake 與 Apache Iceberg 表格。

外部數據表

外部資料表會參考你管理的雲端物件儲存中的資料。 Unity Catalog 管理資料存取,但不管理資料生命週期、優化或儲存佈局。 當你丟棄外部資料表時,只有目錄的元資料會被移除,底層的資料檔案會保留。

Unity Catalog 外部表格支援 Delta Lake、CSV、JSON、AVRO、PARQUET、ORC 及 TEXT 格式。 Databricks 建議你使用 Delta Lake 格式,因為它有交易保證和效能優化,這是其他格式沒有的。

需要時使用外部表格:

  • 註冊不相容於 Unity Catalog 管理資料表的現有資料
  • 提供非 Databricks 用戶端的直接資料存取,這些客戶端不支援其他外部存取模式

請參閱 使用外部數據表。

外部資料表

外部資料表(也稱為聯邦資料表)是唯讀資料表,由註冊於 Unity Catalog 的外部目錄管理。 外部系統管理資料與元資料,而 Unity 目錄則新增查詢資料治理功能。

Azure Databricks 支援兩種註冊外部資料表的方法:

  • 查詢聯盟:使用安全的 JDBC 連線至外部資料系統如 PostgreSQL 和 MySQL。
  • 目錄聯盟:將外部目錄與檔案儲存中直接查詢資料連結

使用 Delta Lake 格式的外部資料表缺乏許多 Unity 目錄管理資料表所提供的優化功能。 對於生產工作負載或經常查詢的資料集,建議遷移到 Unity Catalog 管理的資料表以提升效能。 參見 操作外國表格。

表格類型比較

下表比較了三種表格類型:

特徵 / 功能 受管理的資料表 外部數據表 外部資料表
數據生命週期管理 Unity Catalog 負責管理 你負責管理 外部系統進行管理
儲存位置 Unity Catalog 負責管理 你指定 外部系統進行管理
自動優化 是的 Limited No
支援的格式 三角洲湖,阿帕契冰山 Delta Lake(推薦)、CSV、JSON、AVRO、PARQUET、ORC、TEXT 這取決於外部系統
資料已刪除於 DROP TABLE 是的 No No
最適合用於 生產工作負載,經常查詢的資料 舊有整合與現有資料 從外部系統遷移,暫時存取

其他表格類型

Azure Databricks 也支援針對特定使用情境的專用表格類型:

  • 串流資料表:由 Delta Lake 支援的 Lakeflow pipelines 資料集,具備增量處理邏輯
  • 實體化檢視:由 Delta Lake 支援的 Lakeflow pipelines 資料集,利用管理式流程邏輯實現查詢結果

舊有資料表類型

以下的舊有資料表類型支援向下相容,但不建議用於新開發。

Hive 資料表

Hive 資料表由舊有的 Hive 元儲存庫管理,並使用舊有模式,包括 Hive SerDe 編解碼器和 Hive SQL 語法。 預設情況下,使用舊有 Hive 中繼儲存庫註冊的資料會將資料存放在舊有的 DBFS 根目錄中。

Databricks 建議你將所有資料表從舊有的 HMS 遷移到 Unity 目錄。 請參閱舊版 Hive 中繼存放區中的資料庫物件 (英文)。

你可以選擇將 Hive 元儲存庫與 Unity Catalog 聯合,並在 Unity Catalog 中以外部資料表存取這些資料表。 請參閱 Hive 中繼存放區同盟:讓 Unity 目錄控管 Hive 中繼存放區中註冊的數據表。

Apache Spark 支援註冊和查詢 Hive 資料表,但 Hive SerDe 編解碼器並未針對 Azure Databricks 進行優化。 只有在需要支援外部系統撰寫資料查詢時,才註冊 Hive 資料表。 參見 Hive table(舊版)。

即時表格

「即時資料表」一詞指的是早期功能實作,現今可作為實體化檢視。 更新參考活資料表的舊程式碼,改用實體化的檢視語法。 參見 Spark 宣告式管線 與 具體化視圖。