轉換為 Delta Lake
CONVERT TO DELTA
SQL 命令會針對 Parquet 和 Iceberg 數據表執行單次轉換至 Delta Lake 數據表。 如需將 Parquet 或 Iceberg 數據表累加轉換至 Delta Lake,請參閱 以累加方式將 Parquet 和 Iceberg 數據表複製到 Delta Lake。
Unity 目錄支援 CONVERT TO DELTA
儲存在 Unity 目錄所管理之外部位置的 Parquet 和 Iceberg 數據表的 SQL 命令。
您可以將現有的 Parquet 資料檔設定為 Unity 目錄中的外部數據表,然後將它們轉換成 Delta Lake,以解除鎖定 Databricks Lakehouse 的所有功能。
如需技術檔,請參閱 CONVERT TO DELTA。
將外部位置的 Parquet 或 Iceberg 檔案目錄轉換為 Delta Lake
注意
- 轉換 Iceberg 數據表處於 公開預覽狀態。
- Databricks Runtime 10.4 LTS 和更新版本支援轉換 Iceberg 數據表。
- 不支援轉換 Iceberg 中繼存放區數據表。
- 不支援轉換具有分割區演進經驗的 Iceberg 數據表。
- 不支援轉換具有更新、刪除或合併的 Iceberg 合併讀取資料表。
- 以下是使用截斷資料列上定義的分割區來轉換 Iceberg 資料表的限制:
- 在 Databricks Runtime 12.2 LTS 和以下,唯一支援的截斷數據行類型是
string
。 - 在 Databricks Runtime 13.3 LTS 和更新版本中,您可以使用 、 或
int
類型的string
long
截斷數據行。 - Azure Databricks 不支援使用 類型的
decimal
截斷數據行。
- 在 Databricks Runtime 12.2 LTS 和以下,唯一支援的截斷數據行類型是
只要您在儲存位置上具有寫入許可權,您就可以將 Parquet 資料檔的目錄轉換成 Delta Lake 資料表。 如需使用 Unity 目錄設定存取權的資訊,請參閱 使用 Unity 目錄連線到雲端物件記憶體和服務。
注意
Unity 目錄需要 Azure Data Lake Storage Gen2。
CONVERT TO DELTA parquet.`abfss://container@storageAccount.dfs.core.windows.net/parquet-data`;
CONVERT TO DELTA iceberg.`abfss://container@storageAccount.dfs.core.windows.net/iceberg-data`;
若要將已轉換的數據表載入為 Unity 目錄,您需要 CREATE EXTERNAL TABLE
外部位置的許可權。
注意
針對 Databricks Runtime 11.3 LTS 和更新版本, CONVERT TO DELTA
自動推斷登錄至 Hive 中繼存放區之數據表的數據分割資訊。 您必須提供 Unity 目錄外部資料表的數據分割資訊。
將 Managed 和外部資料表轉換成 Unity 目錄上的 Delta Lake
CONVERT TO DELTA
語法只能用於建立 Unity 目錄外部數據表。 CTAS
使用語句,將舊版Hive中繼存放區受控 Parquet 資料表直接轉換成受控 Unity 目錄 Delta Lake 數據表,請參閱使用 CREATE TABLE AS SELECT 將 Hive 數據表升級至 Unity 目錄受控數據表。
若要將外部 Parquet 資料表升級至 Unity 目錄外部資料表,請參閱 使用升級精靈將單一 Hive 數據表升級至 Unity 目錄外部數據表。
將外部 Parquet 數據表註冊到 Unity 目錄之後,您可以將它轉換成外部 Delta Lake 數據表。 如果已分割 Parquet 資料表,您必須提供資料分割資訊。
CONVERT TO DELTA catalog_name.database_name.table_name;
CONVERT TO DELTA catalog_name.database_name.table_name PARTITIONED BY (date_updated DATE);