轉換為 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 和更新版本支持轉換 Iceberg 數據表。
  • 不支援轉換 Iceberg 中繼存放區數據表。
  • 不支援轉換具有分割區演進經驗的 Iceberg 數據表。
  • 不支援轉換具有更新、刪除或合併的 Iceberg 合併讀取資料表。
  • 以下是使用截斷資料列上定義的分割區來轉換 Iceberg 資料表的限制:
    • 在 Databricks Runtime 12.2 LTS 和以下,唯一支援的截斷數據行類型是 string
    • 在 Databricks Runtime 13.3 LTS 和更新版本中,您可以使用 、 或 int類型的stringlong截斷數據行。
    • Azure Databricks 不支援使用 類型的 decimal截斷數據行。

只要您在儲存位置上具有寫入許可權,就可以將 Parquet 資料文件的目錄轉換成 Delta Lake 數據表;如需使用 Unity 目錄設定存取權的詳細資訊,請參閱使用 Unity 目錄 連線 雲端物件記憶體。

注意

Unity 目錄需要 Azure Data Lake 儲存體 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 TABLES 外部位置的許可權。

注意

針對 Databricks Runtime 11.3 LTS 和更新版本,自動推斷向中繼存放區註冊之數據表的數據分割資訊, CONVERT TO DELTA 而不需要手動指定數據分割。

將 Managed 和外部資料表轉換成 Unity 目錄上的 Delta Lake

Unity 目錄支援許多外部數據表的格式,但只支援 Managed 資料表的 Delta Lake。 若要將Managed Parquet資料表直接轉換成受控 Unity 目錄 Delta Lake 資料表,請參閱 將數據表升級至 Unity 目錄受控數據表

若要將外部 Parquet 數據表升級至 Unity 目錄,請參閱 將單一外部數據表升級至 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);