比較兩個版本的Delta表

使用時間旅行來比較Delta表的兩個版本。

寫的mathan.pillai

最近一次發布時間:2022年5月10日

Delta Lake支持時間旅行,允許查詢Delta表的舊快照。

一個常見的用例是比較Delta表的兩個版本,以確定更改了什麼。

有關時間旅行的詳情,請參閱德爾塔湖時間旅行文件(AWS|Azure|GCP).

識別所有的差異

您可以使用SQL選擇查詢來識別Delta表的兩個版本之間的所有差異。

您需要知道表的名稱和要比較的快照的版本號。

%sql select * from @v except all from @v

例如,如果你有一個名為“schedule”的表,你想要比較版本2和原始版本,你的查詢會像這樣:

%sql select * from schedule@v2 except all select * from schedule@v0

識別添加到特定版本的文件

您可以使用Scala查詢來檢索添加到特定版本Delta表中的文件列表。

% scala顯示器(spark.read.json(“dbfs: / < path-to-delta-table > / _delta_log json / 00000000000000000002.”)。Where ("add is not null").select("add.path"))

在本例中,我們將獲得添加到版本2的Delta表中的所有文件的列表。

00000000000000000002. json包含版本2中所有文件的列表。

在讀取完整列表後,我們將排除已經存在的文件,因此顯示的列表隻包括添加到版本2的文件。