轉換為 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 和更新版本中,您可以使用 、 或
string
類型的long
int
截斷數據行。 - 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 metastore 管理的 Parquet 資料表直接轉換成 Unity Catalog 管理的 Delta Lake 資料表,請參閱 使用 CREATE TABLE AS SELECT將 Hive 資料表升級至 Unity Catalog 管理的資料表。
若要將外部 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);