共用方式為


轉換為 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 數據表,請參閱 使用 CLONE 將 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);