轉換為δ
適用於:磚的SQL磚運行時
將現有的拚花表轉換為表就地三角洲。這個命令將列出目錄中的所有文件,創建了一個三角洲湖事務日誌跟蹤這些文件,並自動推斷數據模式通過閱讀所有鋪文件的頁腳。轉換過程收集統計信息來提高查詢性能的差值表轉換。如果你提供一個表名,metastore也更新來反映表現在δ表。
該命令支持冰山轉換表的底層文件格式是拚花。在這種情況下,轉換生成基於冰山的三角洲湖事務日誌表的本地文件清單、模式和分區信息。
參數
一個可選的資格表標識符或路徑
拚花
或冰山
文件目錄。必須不包含一個名稱時間規範。對於冰山的表,你隻能使用路徑,轉換管理冰山表不支持。沒有統計數據
在轉換過程中繞過統計信息收集,完成轉換速度更快。表轉換為三角洲湖後,您可以使用
優化ZORDER通過
重組數據布局和生成統計數據。通過指定的分區創建的表列。當
table_name
是一個路徑,分區通過
需要分區的數據。當table_name
是一個合格的表標識符,分區通過
條款是可選的,分區規範從metastore加載。無論是哪種方法,轉換過程中止拋出一個異常,如果提供的目錄結構不符合或加載分區通過
規範。請注意
在磚運行時11.1及以下,
分區通過
是一個為所有分區數據所需的參數。
例子
請注意
你不需要提供分區信息注冊到metastore冰山表或表。
轉換來δdatabase_name。table_name;——隻有拚花表轉換來δ拚花。”s3:/ /我的- - - - - -桶/路徑/來/表”分區通過(日期日期);——如果表分區轉換來δ冰山。”s3:/ /我的- - - - - -桶/路徑/來/表”;——為元數據使用冰山清單
警告
任何文件不是由三角洲湖是無形的和跟蹤運行時可以刪除真空
。你應該避免更新或添加數據文件轉換過程中。表轉換後,確保所有經過三角洲湖寫道。
有可能是多個外部表共享相同的底層鋪目錄。在這種情況下,如果你跑了轉換
在一個外部表,那麼你將無法訪問其他外部表,因為他們的基礎目錄已經轉換從鋪到三角洲湖。再次查詢或寫這些外部表,你必須運行轉換
在他們身上。
轉換
填充目錄信息,比如模式和表屬性,三角洲湖事務日誌。如果底層的目錄已經轉化為三角洲湖及其元數據不同於目錄的元數據,convertMetastoreMetadataMismatchException
拋出。
在使用磚運行時,如果你想要的轉換
覆蓋現有的元數據在三角洲湖事務日誌,設置SQL配置spark.databricks.delta.convert.metadataCheck.enabled
為假。