全部產品
Search
文件中心

MaxCompute:增量查詢

更新時間:Dec 31, 2024

Delta Table支援增量寫入和儲存,關鍵考慮是支援增量查詢和計算最佳化,為此,設計了新的SQL增量查詢文法來支援近即時增量處理鏈路。

增量查詢的處理過程

增量查詢Delta Table 的處理過程如下圖所示。

image.png

  • 當輸入一個SQL語句後,引擎側會解析使用者指定的版本範圍查詢出來所有符合時間範圍內的DeltaFile,進行合并輸出。

  • Clustering和Compaction操作會產生新的資料檔案,但不會增加新的邏輯資料行。這些操作只是將原有的記錄進行了最佳化和重組,新產生資料檔案中的記錄不應被視為新增資料而重複輸出。為此,增量查詢專門進行了設計最佳化,以剔除掉這些記錄,確保其更符合使用者的使用情境。因此,增量查詢將唯讀取指定時間區間內的所有DeltaFile,而不會讀取任何BaseFile,並根據指定的策略進行Merge輸出。

上圖以建立一張事務表(src)為例:

  • Schema包含pk列和val列。

  • 左邊圖展示了資料變化過程,t1-t5代表了事務的時間版本,分別執行了5次資料寫入的事務,產生了5個DeltaFile。

  • 在t2和t4時刻分別執行了COMPACTION操作,產生了兩個BaseFile: b1和b2。

  • 在具體的查詢樣本中,例如,begin是t1-1,end是t1,只需讀取t1時間段對應的DeltaFile:d1進行輸出; 如果end是t2,會讀取兩個DeltaFiles:d1和d2;如果begin是t1,end是t2-1,即查詢的時間範圍為(t1, t2),這個時間段是沒有任何增量資料插入的,會返回空行。