共用方式為


什麼是 table?

table 位於 schema,並包含數據列。 Azure Databricks 中建立的所有 tables 預設都會使用 Delta Lake。 Tables 由 Delta Lake 支援,也稱為 Delta tables

Delta table 會將數據儲存為雲端物件記憶體中的檔案目錄,並在 catalog 和 schema內向中繼存放區註冊 table 元數據。 所有 Unity Catalog 管理 tables 和串流 tables 都是 Delta tables。 Unity Catalog 外部 tables 可以是 Delta tables,但不需要。

您可以在不使用 Delta Lake 的 Databricks 上建立 tables。 這些 tables 不提供 Delta tables的交易保證或優化效能。

Tables 儲存數據列。 table 位於 schema,並包含數據列。 下列範例顯示包含大約五名員工數據的 table prod.people_ops_employees。 元數據會註冊在 Unity Catalog 中,且數據會儲存在雲端儲存空間中。

Example table containing employee data包含員工數據 的範例

基本 table 許可權

若要建立 table,用戶必須具有 schema的 CREATE TABLEUSE SCHEMA 許可權,且其父系 catalog必須具有 USE CATALOG 許可權。 若要查詢 table,用戶必須具有 table的 SELECT 許可權、其父 schema的 USE SCHEMA 許可權,以及其父 catalog的 USE CATALOG 許可權。

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

Unity Catalog 中的 Tables

在 Unity Catalog中,tables 位於三層命名空間的第三層 (catalog.schema.table),如下列 table所示。 Unity Catalog 的外部 tables 可以是 Delta tables,但不是必須的。

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

Delta tables

由 Delta Lake 支援,Delta table 會將資料儲存為雲端物件記憶體中的檔案目錄,並將 table 元數據註冊至 catalog 和 schema內的中繼存放區。 除非另有說明,否則在 Databricks 上,Delta tables 為預設值,因此大多數對 tables 的參考會描述 Delta tables 的行為。 所有 Unity Catalog 管理 tables 和串流 tables 都是 Delta tables。 請參閱 Delta 是如何運作的 tables

Databricks 建議您一律以完整 table 名稱與 Delta tables 互動,而不是使用檔案路徑。

受控 tables

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

外部 tables

外部 tables,有時稱為 未管理的 tables,指參考儲存在 Databricks 外部的外部儲存系統中的數據,例如雲端物件儲存。 它們會將基礎數據檔的管理與中繼存放區註冊分離。 Unity Catalog>支援包括 Delta Lake 在內的數種格式的外部 tables。 Unity Catalog 外部 tables 可以使用外部系統可讀取的通用格式來儲存數據檔。 請參閱 與外部 tables合作。

串流 tables

串流 tables 是增量 tables 主要用於處理增量數據。 串流 tables 的大部分更新都會透過 refresh 操作進行。

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

外國 tables

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

功能 tables

任何由具有主鍵的 Unity Catalog 管理的 Delta table 都是一個功能 table。 您可以使用線上功能存放區選擇性地設定 tables 功能,以適應低延遲的使用案例。 請參閱工作區功能存放區(舊版)中的功能 tables

Hive tables (舊版)

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

根據預設,Tables 使用舊版 Hive metastore 將數據儲存在舊版 DBFS 根目錄中。 Databricks 建議將所有 tables 從舊版 HMS 移轉至 Unity Catalog。 請參閱舊版 Hive 中繼存放區中的資料庫物件 (英文)。

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

Live tables (已淘汰)

live tables 指的是先前版本的功能,現在已具體化為 materialized views。 任何參考即時 tables 的舊版程式代碼都應該更新為使用具現化 views語法。 請參閱 什麼是 Delta Live Tables?在 Databricks SQL中使用具體化 views。