分享方式:


什麼是資料表?

數據表位於架構中,並包含數據列。 根據預設,在 Azure Databricks 中建立的所有數據表都會使用 Delta Lake。 Delta Lake 支援的數據表也稱為 Delta 數據表

Delta 數據表會將資料儲存為雲端物件記憶體中的檔案目錄,並將數據表元數據註冊至目錄和架構內的中繼存放區。 所有 Unity 目錄受控數據表和串流數據表都是 Delta 數據表。 Unity 目錄外部數據表可以是 Delta 資料表,但不需要。

可以在不使用 Delta Lake 的 Databricks 上建立數據表。 這些數據表不提供差異數據表的交易保證或優化效能。 您可以選擇使用 Delta Lake 以外的格式來建立下列資料表型態:

  • 外部資料表。
  • 外部數據表。
  • 向舊版Hive中繼存放區註冊的數據表。

在 Unity 目錄中,資料表位於三層命名空間的第三層 (catalog.schema.table):

Unity Catalog 物件模型圖表,著重於數據表

Azure Databricks 數據表類型

Azure Databricks 可讓您使用下列類型的數據表。

受控資料表

受控數據表會與中繼存放區註冊一起管理基礎數據檔。 Databricks 建議您在建立新的數據表時使用受控數據表。 當您在 Azure Databricks 中建立資料表時,Unity 目錄受控數據表是預設值。 它們一律使用 Delta Lake。 請參閱 使用受控數據表

外部表格

外部數據表有時稱為 Unmanaged 數據表,可將基礎數據檔的管理與中繼存放區註冊分離。 Unity 目錄外部資料表可以使用外部系統可讀取的通用格式來儲存資料檔。 請參閱 使用外部數據表

差異資料表

Delta 數據表一詞用來描述 Delta Lake 所支援的任何數據表。 由於差異數據表是 Azure Databricks 上的預設值,因此除非另有說明,否則對數據表的大部分參考都會描述 Delta 數據表的行為。

Databricks 建議您一律使用完整數據表名稱來與 Delta 數據表互動,而不是檔案路徑。

串流數據表

串流數據表是差異數據表,主要用於處理累加數據。 串流數據表的大部分更新都會透過重新整理作業進行。

您可以使用 Databricks SQL 在 Unity 目錄中註冊串流數據表,或將它們定義為 Delta Live Tables 管線的一部分。 請參閱 使用 Databricks SQL 中的串流數據表載入數據。 以及 什麼是 Delta Live Tables?

外部數據表

外部數據表代表透過 Lakehouse 同盟連線到 Azure Databricks 的外部系統中儲存的數據。 外部數據表在 Azure Databricks 上是唯讀的。 請參閱 什麼是 Lakehouse 同盟

功能數據表

具有主鍵的 Unity 目錄所管理的任何 Delta 數據表都是功能數據表。 您可以選擇性地針對低延遲使用案例使用線上功能存放區來設定功能數據表。 請參閱 在工作區功能存放區中使用功能數據表。

Hive 資料表 (舊版)

Hive 數據表描述 Azure Databricks 上的兩個不同的概念,兩者都是舊版模式,不建議使用。

根據預設,使用舊版Hive中繼存放區註冊的數據表會將數據儲存在舊版 DBFS 根目錄中。 Databricks 建議將所有數據表從舊版 HMS 移轉至 Unity 目錄。 請參閱 舊版Hive中繼存放區中的資料庫物件。

Apache Spark 支援註冊和查詢 Hive 數據表,但這些編解碼器並未針對 Azure Databricks 優化。 Databricks 建議只註冊 Hive 數據表,以支援針對外部系統所寫入數據的查詢。 請參閱Hive數據表(舊版)。

即時資料表 (已淘汰)

實時數據表一詞是指先前實作的功能實作,現在實作為具體化檢視 任何參考實時數據表的舊版程式代碼都應該更新為使用具體化檢視的語法。 請參閱 什麼是 Delta Live Tables? 和使用 Databricks SQL 中的具體化檢視。

基本數據表許可權

若要建立數據表,用戶必須擁有 CREATE TABLEUSE SCHEMA 架構的許可權,而且他們必須具有 USE CATALOG 其父目錄的許可權。 若要查詢數據表,用戶必須具有 SELECT 數據表的許可權、 USE SCHEMA 其父架構的許可權,以及 USE CATALOG 其父目錄的許可權。

如需 Unity 目錄許可權的詳細資訊,請參閱 在 Unity 目錄中管理許可權。