我隻是試著寫一個三角洲湖表使用覆蓋模式,我發現曆史保留。我不清楚如何覆蓋數據,以及曆史可以保存多久。
正如他們所說,一個代碼比一千字:
mytable.write.mode .saveAsTable(“覆蓋”)(“軟件”)% sql SELECT id, display_name從應用程序id = 3;id名稱| 3 |舊# mytabl更新mytable.write.mode .saveAsTable(“覆蓋”)(“軟件”)% sql SELECT id, display_name從應用程序id = 3;id | 3 |新% sql SELECT id, display_name從應用程序版本為0的id = 3;id | 3 |舊名稱
同時,有許多的性能和成本含義是什麼版本的一個表嗎?
嗨@Rami ALZEBAK,
正如@Geeta提到的,您可以使用描述曆史命令查看的曆史表,但你也可以看看底層數據生成. json文件在提交更改數據時,這個文檔是很好的理解曆史和三角洲的版本控製表https://github.com/delta-io/delta/blob/master/PROTOCOL.md delta-table-specification。
在性能和成本,維護許多版本的差值表可以影響性能和成本(盡管相當最小)這就是為什麼你可以使用真空命令刪除舊版本和降低成本和延遲。這個博客有利於進入更多的細節:https://mungingdata.com/delta-lake/vacuum-command/。