Azure Databricks 支援三種主要資料表類型(管理型、外部型及外部型)及兩種開放儲存格式(Delta Lake 與 Apache Iceberg)。 選擇合適的組合決定了資料的儲存、治理與優化方式。
Azure Databricks 資料表位於結構描述中,並包含資料列。 在 Azure Databricks 中建立的預設資料表類型是 Unity 目錄受控資料表。
儲存格式
儲存格式定義了資料在物件儲存中如何被物理結構化與追蹤。
Azure Databricks 支援兩種主要的開啟資料表儲存體格式:
- Delta Lake 是 Azure Databricks 中受控和外部資料表的預設儲存體格式。 Delta 也支援外部資料表。
- Apache Iceberg 支援 Azure Databricks 中的受管理及外部資料表。 當您與 Iceberg 生態系統整合時,此格式非常有用。
這兩種格式都新增了交易儲存層,追蹤元資料,並支援原子性、一致性、隔離與耐久性(ACID)合規性、時間旅行及其他功能。
數據表類型
Azure Databricks 中的資料表類型會定義資料的擁有和存取方式。
Azure Databricks 支援三種主要的資料表類型。 資料表類型由擁有並管理底層資料檔案的目錄決定,詳見下表:
| 數據表類型 | 管理目錄 | 讀取/寫入支援 | 效能優化 | 儲存成本最佳化 |
|---|---|---|---|---|
| Managed | Unity 目錄 | Yes | Yes | Yes |
| 臨時 | 無(會話範圍的管理表) | Yes | Yes | Yes |
| External | 無 (僅限檔案) | Yes | 僅限手動模式 | 僅限手動模式 |
| 外國 | 外部系統或目錄服務 | 唯讀模式 | 否 | 否 |
關於如何為您的使用情境選擇合適的資料表類型,請參閱 選擇資料表類型。
受管理的資料表
對於受管理的資料表,Unity Catalog 同時管理資料檔案和資料表的元資料。 資料檔案會儲存在 Unity Catalog 管理的雲端儲存位置。 Unity 目錄受控資料表是在您在 Azure Databricks 中建立資料表時的預設值。
Databricks 建議您在建立新資料表時使用受控資料表。 管理式資料表能自動實現效能提升、降低儲存與運算成本,並允許外部系統(如 Trino)存取。 請參閱 受管理資料表。
以下範例展示了一個名為 prod.people_ops_employees 管理資料表的資料表,包含關於五名員工的資料:
外部數據表
外部資料表,有時稱為 非受管理資料表,則參考儲存在外部儲存系統(如雲端物件儲存)中的資料。 Azure Databricks 會註冊資料表的元資料,但不會管理底層的資料檔案。 Unity 目錄支援多種格式的外部表格,包括 Delta Lake,允許你用外部系統閱讀這些表格。 請參閱 外部表格。
外部資料表
外部資料表代表儲存在透過 Lakehouse 同盟連線至 Azure Databricks 的外部系統中的資料。 外部資料表在 Azure Databricks 上是唯讀的。 請參閱 外部表格。
暫存資料表
暫存資料表是具有會話範圍的資料表,用於儲存 Azure Databricks 會話期間的資料。 它們很有用,可以將中間結果具體化,而不必在目錄中建立永久表格。 Azure Databricks 會在會話結束時自動丟棄暫存資料表,且你不需要目錄或結構權限來建立它們。 請參閱 Databricks SQL 與 Databricks 執行時中的暫存資料表。
選擇表格類型
大多數新資料表都用 管理資料表 。 Azure Databricks 自動化優化、儲存生命週期管理及外部存取。
以下情況下使用 外部表格 :
- 你需要在雲端儲存中註冊現有資料,但不移動它們。
- 你需要來自非 Azure Databricks 用戶端的直接路徑存取。
- 你正在處理受管理資料表不支援的檔案格式,例如 CSV 或 JSON。
- 丟棄資料表不應該刪除底層的資料檔案。
當您需要唯讀存取透過 Lakehouse Federation 連接的外部系統中的資料時,例如 Hive 元儲存庫或 AWS Glue 目錄,可以使用外部資料表。
在儲存格式方面,Delta Lake 是預設格式,也是大多數工作負載的建議選項。 在與需要 Iceberg 格式的外部系統整合時,請使用 Apache Iceberg。
Unity Catalog 中的資料表
在 Unity 目錄中,表格存在於三層命名空間的catalog.schema.table第三層(),如下圖所示:
基本資料表權限
大多數資料表作業都需要對包含該資料表的目錄和結構描述具有 USE CATALOG 和 USE SCHEMA 權限。
下表摘要說明 Unity 目錄中一般資料表作業所需的其他許可權:
| 行動 | 權限 |
|---|---|
| 建立數據表 |
CREATE TABLE 在包含它的結構描述上 |
| 查詢資料表 |
SELECT 在桌上 |
| 更新、刪除、合併資料或將資料插入資料表 | 數據表上的 SELECT 和 MODIFY。 或者,允許更細緻的寫入權限,包含 INSERT、 UPDATE和 DELETE 權限(Beta)。 詳見 細緻的 DML 權限。 |
| 刪除表格 |
MANAGE 在桌上 |
| 取代資料表 |
MANAGE 在資料表上,CREATE TABLE 在所屬結構描述上 |
關於這些操作的 SQL 語法參考,請參見:
如需 Unity 目錄許可權的詳細資訊,請參閱 管理 Unity 目錄中的許可權。