表協議版本
三角洲的事務日誌表包含協議版本控製信息,支持三角洲湖進化。三角洲湖軌道最小讀者和作家版本分開。
三角洲湖擔保向後兼容性。更高的三角洲湖閱讀器協議版本總是能夠讀取數據是由較低的協議版本。
三角洲湖偶爾會休息向前兼容性。較低的協議版本的三角洲湖可能無法讀取和寫入數據由一個更高的三角洲湖協議版本寫的。如果你想讀和寫一個表與三角洲湖的協議版本太低,你就會得到一個錯誤,告訴你,你需要升級。
當創建一個表,三角洲湖選擇所需的最低協議版本基於表等特征模式或表屬性。你也可以設置默認協議版本通過設置SQL配置:
spark.databricks.delta.properties.defaults.minWriterVersion=2
(默認)spark.databricks.delta.properties.defaults.minReaderVersion=1
(默認)
升級一個表更新的協議版本,使用DeltaTable.upgradeTableProtocol
方法:
警告
不可逆轉的協議版本升級,升級協議版本可能會打破現有三角洲湖表的讀者,作家,或兩者兼而有之。因此,我們建議你升級具體表隻在需要時,如選擇在三角洲湖新特性。您還應該檢查以確保你所有的當前和未來的生產工具支持三角洲湖表與新協議版本。
——讀者協議版本升級1和作者協議版本3。改變表<table_identifier>集TBLPROPERTIES(“delta.minReaderVersion”=' 1 ',“delta.minWriterVersion”=“3”)
從delta.tables進口DeltaTableδ=DeltaTable。forPath(火花,“path_to_table”)#或DeltaTable.forNameδ。upgradeTableProtocol(1,3)#升級readerVersion = 1, writerVersion = 3
進口io。δ。表。DeltaTable瓦爾δ=DeltaTable。forPath(火花,“path_to_table”)/ /或DeltaTable.forNameδ。upgradeTableProtocol(1,3)/ /升級readerVersion = 1, writerVersion = 3。