轉換為δ
將現有的拚花表轉換為原地的Delta表。該命令列出目錄中的所有文件,創建跟蹤這些文件的Delta Lake事務日誌,並通過讀取所有Parquet文件的頁腳自動推斷數據模式。轉換過程收集統計信息以提高對轉換後的Delta表的查詢性能。如果您提供一個表名,那麼這個metastore也會被更新,以反映該表現在是一個Delta表。
這個命令支持轉換底層文件格式為Parquet的冰山表。在本例中,轉換器根據Iceberg表的本機文件清單、模式和分區信息生成Delta Lake事務日誌。
參數
沒有統計數據
在轉換過程中繞過統計信息收集,更快地完成轉換。將表轉換為Delta Lake後,即可使用
優化ZORDER通過
重新組織數據布局並生成統計信息。用指定的列對創建的表進行分區。當
table_name
是路徑,是分區通過
對於分區數據是必需的。當table_name
是一個合格的表標識符,分區通過
子句是可選的,分區規範從metastore加載。在這兩種方法中,如果目錄結構不符合所提供或加載的目錄結構,轉換過程將中止並拋出異常分區通過
規範。請注意
在Databricks Runtime 11.1及以下版本中,
分區通過
是所有分區數據的必選參數。
例子
請注意
您不需要為注冊到metastore的Iceberg表或表提供分區信息。
轉換來δdatabase_name.table_name;——僅適用於拚花桌轉換來δ拚花.`s3://我的-桶/路徑/來/表格`分區通過(日期日期);——如果表是分區的轉換來δ冰山.`s3://我的-桶/路徑/來/表格`;——使用Iceberg清單作為元數據
警告
任何沒有被Delta Lake跟蹤的文件都是不可見的,可以在運行時刪除真空
.您應該避免在轉換過程中更新或追加數據文件。轉換表之後,確保所有寫操作都經過Delta Lake。
多個外部表可能共享相同的底層Parquet目錄。在這種情況下,如果你跑轉換
,那麼您將無法訪問其他外部表,因為它們的底層目錄已從Parquet轉換為Delta Lake。要再次查詢或寫入這些外部表,必須運行轉換
也在他們身上。
轉換
將目錄信息(如模式和表屬性)填充到Delta Lake事務日誌中。如果底層目錄已經轉換為Delta Lake,並且它的元數據與目錄元數據不同,則aconvertMetastoreMetadataMismatchException
拋出。如果你想要轉換
若要覆蓋Delta Lake事務日誌中的現有元數據,請設置SQL配置spark.databricks.delta.convert.metadataCheck.enabled
為假。