表協議版本控製

Delta表的事務日誌包含支持Delta Lake演化的協議版本信息。三角洲湖軌跡最小值Reader和writer版本分開。

三角洲湖擔保向後兼容性.Delta Lake閱讀器的高協議版本始終能夠讀取由低協議版本寫入的數據。

三角洲湖偶爾會決堤向前兼容性.Delta Lake的低協議版本可能無法讀寫由Delta Lake的高協議版本寫入的數據。如果您試圖讀寫一個Delta Lake協議版本過低的表,您將得到一個錯誤,告訴您需要升級。

在創建表時,Delta Lake會根據表的特征(如模式或表屬性)選擇所需的最小協議版本。您還可以通過設置SQL配置設置默認協議版本:

  • spark.databricks.delta.properties.defaults.minWriterVersion2(默認)

  • spark.databricks.delta.properties.defaults.minReaderVersion1(默認)

要將表升級到較新的協議版本,請使用DeltaTable.upgradeTableProtocol方法:

警告

協議版本升級是不可逆的,升級協議版本可能會破壞現有的Delta Lake表讀取器、寫入器或兩者。因此,我們建議您隻在需要時升級特定的表,例如選擇加入Delta Lake的新功能。您還應該進行檢查,以確保所有當前和未來的生產工具都支持新協議版本的Delta Lake表。

——將讀取器協議版本升級為1,寫入器協議版本升級為3。改變表格<table_identifier>TBLPROPERTIES“delta.minReaderVersion”' 1 '“delta.minWriterVersion”“3”
delta.tables進口DeltaTableδDeltaTableforPath火花“path_to_table”#或DeltaTable.forNameδupgradeTableProtocol13.#升級到readerVersion=1, writerVersion=3
進口ioδDeltaTable瓦爾δDeltaTableforPath火花“path_to_table”//或DeltaTable.forNameδupgradeTableProtocol13.//升級到readerVersion=1, writerVersion=3。

按協議版本劃分的特性

功能

minWriterVersion

minReaderVersion

介紹了

文檔

基本功能

2

1

- - - - - -

三角洲湖指南

檢查約束

3.

1

Databricks運行時7.4(不支持)

檢查約束

更改數據提要

4

1

Databricks運行時8.4(不支持)

更改數據提要

生成的列

4

1

Databricks運行時8.3(不支持)

使用生成的列

列映射

5

2

數據庫運行時10.2(不支持)

增量列映射