轉換為δ

適用於:檢查標記是的磚的SQL檢查標記是的磚運行時

將現有的拚花表轉換為表就地三角洲。這個命令將列出目錄中的所有文件,創建了一個三角洲湖事務日誌跟蹤這些文件,並自動推斷數據模式通過閱讀所有鋪文件的頁腳。轉換過程收集統計信息來提高查詢性能的差值表轉換。如果你提供一個表名,metastore也更新來反映表現在δ表。

該命令支持冰山轉換表的底層文件格式是拚花。在這種情況下,轉換生成基於冰山的三角洲湖事務日誌表的本地文件清單、模式和分區信息。

語法

轉換δtable_name(沒有統計數據](分區通過條款]

參數

  • table_name

    一個可選的資格表標識符或路徑拚花冰山文件目錄。必須不包含一個名稱時間規範。對於冰山的表,你隻能使用路徑,轉換管理冰山表不支持。

  • 沒有統計數據

    在轉換過程中繞過統計信息收集,完成轉換速度更快。表轉換為三角洲湖後,您可以使用優化ZORDER通過重組數據布局和生成統計數據。

  • 分區的

    通過指定的分區創建的表列。當table_name是一個路徑,分區通過需要分區的數據。當table_name是一個合格的表標識符,分區通過條款是可選的,分區規範從metastore加載。無論是哪種方法,轉換過程中止拋出一個異常,如果提供的目錄結構不符合或加載分區通過規範。

    請注意

    在磚運行時11.1及以下,分區通過是一個為所有分區數據所需的參數。

例子

請注意

你不需要提供分區信息注冊到metastore冰山表或表。

轉換δdatabase_nametable_name;——隻有拚花表轉換δ拚花s3:/ /我的- - - - - -/路徑//分區通過(日期日期);——如果表分區轉換δ冰山s3:/ /我的- - - - - -/路徑//;——為元數據使用冰山清單

警告

任何文件不是由三角洲湖是無形的和跟蹤運行時可以刪除真空。你應該避免更新或添加數據文件轉換過程中。表轉換後,確保所有經過三角洲湖寫道。

有可能是多個外部表共享相同的底層鋪目錄。在這種情況下,如果你跑了轉換在一個外部表,那麼你將無法訪問其他外部表,因為他們的基礎目錄已經轉換從鋪到三角洲湖。再次查詢或寫這些外部表,你必須運行轉換在他們身上。

轉換填充目錄信息,比如模式和表屬性,三角洲湖事務日誌。如果底層的目錄已經轉化為三角洲湖及其元數據不同於目錄的元數據,convertMetastoreMetadataMismatchException拋出。

在使用磚運行時,如果你想要的轉換覆蓋現有的元數據在三角洲湖事務日誌,設置SQL配置spark.databricks.delta.convert.metadataCheck.enabled為假。

撤銷的轉換

如果你有執行三角洲湖等操作刪除優化可以改變數據文件:

  1. 垃圾收集運行以下命令:

真空δ' <路徑- - - - - -- - - - - -> '保留0小時
  1. 刪除< path-to-table > / _delta_log目錄中。