基於圖神經網路的動態物化檢視管理

KaiwuDB發表於2023-12-29

本期 Paper Reading 主要介紹了釋出於 2023 年 ICDE 的論文《Dynamic Materialized View Management using Graph Neural Network》,該文研究了動態物化檢視管理問題,提出了一個基於 GNN 的模型。在真實的資料集上的實驗結果表明,取得了更高的質量。

一、背景

物化檢視(Materialized Views,下文簡稱 MVs)在資料庫管理系統中起著至關重要的作用,它透過減少工作負載共享子查詢的冗餘計算來提高查詢效率。傳統方法側重於靜態 MV 管理,它假設不會新增或驅逐 MV。然而,在實際場景中,查詢工作負載通常是動態變化的,因此,由於查詢分佈可能發生變化,以前維護的 MVs 不能很好地適應未來的工作負載。因此,在工作負載動態變化的情況下,研究動態 MV 管理問題是非常重要的。

二、動態 MV 管理的介紹

用於動態工作負載的 MV 的工作機制


動態 MV 管理的兩個步驟:

(1)查詢重寫

給定一個新查詢 q,查詢重寫旨在用當前維護的 MVs 中的一些 MVs 重寫 q。為此,這篇論文要估算使用檢視 v 回答 q 的好處,即使用 v 後回答 q 的執行時間減少,並選擇最能帶來好處的 MVs 重寫,從而最大限度地提高查詢效能。

(2)MV 集合維護

這篇論文考慮一個常見的場景,查詢在很長一段時間內連續出現,即動態工作負載。由於查詢分佈可能發生變化,使用這些固定的 MVs 來最佳化後續查詢的方法不是最優的。因此,這篇論文建議隨著新的工作負載的到來,不斷迭代地更新 MVs,以應對不斷出現的可能的分佈轉移的查詢,這樣所有的查詢都可以在一段時間內得到很好的最佳化。

三、動態 MV 管理的介紹

1. 侷限

MVs 管理是一個重要的問題,已經研究了幾十年。傳統的方法利用 DBMS 中的最佳化器來有效地估計  MVs 的好處,並在此基礎上迭代地選擇合適的  MVs 來實現。因此,即使在給定新的查詢工作負載的情況下從頭構建 MV,它們也可以實現高效率,但是由於純粹使用最佳化器進行收益估計是不準確的,因此產生了低質量  MV

為了解決這個問題,基於學習的方法被提出來準確地估計收益。然而,為了處理動態場景,他們必須從頭構建  MVs。儘管可以匯出高質量的  MVs,但它們昂貴得令人望而卻步,因為深度神經架構導致了緩慢的收益/成本估計。因此,在工作負載頻繁變化的情況下,它們不能滿足高效率的要求。

2. 挑戰

要實現在動態場景中最小化查詢工作負載的總執行時間的最終目標,有兩個基本挑戰。首先,在大量查詢的情況下,如何準確地估計每個  MV 對每個查詢的效益是一個挑戰,這對於生成高質量的  MV 具有重要意義。

其次,為了使新的查詢能夠及時利用生成的  MV,動態場景中的  MV 集維護應該非常高效。但是隨著查詢數量的增加,如何在保持高精度的前提下有效地進行效益估計是一個很有挑戰性的問題。

四、解決方案詳述

為了解決這些挑戰,這篇論文提出了一個新的框架 GnnMV,利用圖神經網路(GNN)來評估效益,以高效和有效的動態  MVs 管理。首先,將動態查詢負載維護為查詢圖,提取並編碼查詢的關鍵特徵,建立 GNN 模型。其次,為圖中的鄰居節點設計了一個特徵聚集函式,以達到較高的精度。第三,這篇論文提出在由於不斷的查詢而使圖變得越來越大的情況下,提取一個小的子圖來進行有效的效益估計。

1. 整體框架介紹

GnnMV 架構


GnnMV 由三個模組組成,即離線 GNN 模型訓練、用於查詢重寫的線上 GNN 推斷以及用於  MV 集合維護的 GNN 推斷。

最初,這篇論文將歷史工作負載作為輸入,基於此構建查詢圖,並在圖上訓練 GNN 模型,模型的輸出是檢視對工作負載中查詢的益處估計。

接下來,當查詢連續線上到達時,訓練好的模型用於查詢重寫和  MV 集維護。給定每個新到達的查詢,查詢重寫模組利用 GNN 模型來估計益處,並且從當前維護的  MV 中選擇  MV 來重寫查詢。

對於新的工作負載,這篇論文生成新的  MV,其中 GNN 模型也被用來估計收益,然後構建二分圖用於  MV 選擇。

2. GnnMV 的訓練

給定收集的用於離線訓練的工作負載 WT,透過合併工作負載中查詢的查詢樹來構建查詢圖。接下來,對圖中每個節點的特徵(例如,運算子型別、後設資料、謂詞)進行提取和編碼,生成一個特徵圖。並設計了一個聚合函式來聚合每個節點鄰居的特徵並生成節點嵌入。

然後,使用查詢 q 和檢視 v 的嵌入,用一個神經網路計算收益 B’(q,v)。但是物化所有可能的檢視太昂貴了,這篇論文對檢視進行取樣並物化它們(即集合 VT),用它們最佳化 WT 中的查詢,並計算真正的效益 B(q,v)。然後用 B(q,v)和 B’(q,v)計算損失來訓練模型。

(1)特徵編碼

要建立 GNN 模型,首先要提取圖中每個節點的特徵並對其進行編碼。更具體地說, MVs 管理有三種重要的特性:Operator type、Metadata、Predicate。節點的每個特徵向量由這三個特性級聯表示。接下來,用一個例子來說明。

如上圖所示,設某個節點與 seq-scan 運算子相關聯,該運算子掃描謂詞為 a.age>30 的 author 表。這篇論文將運算子型別 seq-scan 編碼為獨熱向量 fo ( v ),其中 seq-scan 的對應位置具有值 1。謂詞 a.age>30 可以表示為表示式樹,其中根節點>具有兩個子節點 a.age 和 30。這篇論文透過樹-LSTM 模型將該表示式樹編碼為嵌入向量 fp ( v )。後設資料包含作者、年齡列、掃描成本、行和寬度。這篇論文將其編碼到向量 fm(v)中,該向量包含一個獨熱向量,其中列 a.age 的對應位置具有值 1 和其他統計資訊。

(2)效益估計

GNN 模型的最終目標是準確地估計使用物化檢視 v 來回答圖中的查詢 q 的好處(即 B(q,v))。為此,首先要建立訓練資料。其次,給定特徵編碼,這篇論文還需要對查詢節點和 MV 節點進行適當的表示(或嵌入),以便模型能夠很好地捕捉它們之間的關係,從而準確地估計每個 B(q,v)。

  • 訓練資料

對 MV 節點的集合進行取樣,並將它們物化,因為物化所有可能的檢視太昂貴了。對  MV 節點進行統一取樣, 這是因為這篇論文要求訓練樣本是平衡的,以產生具有較強泛化能力的模型。

  • 特徵傳播

檢視對查詢的好處不僅依賴於其自身的特徵,還與其在查詢圖中的鄰居有關。例如,join 操作的成本與其子謂詞的選擇性高度相關。由於緩衝區的存在,查詢的效能與前一個查詢有很大的相關性。因此,鄰域資訊對節點的表示有一定的幫助。

考慮到上述問題,這篇論文采用 GNN 透過圖的結構來捕捉不同查詢計劃之間以及計劃節點之間的相關性。這篇論文建議在迭代中傳播圖上的特徵。在每次迭代中,對於每個節點,這篇論文並行聚合其鄰居的特徵。

GnnMV 中的模型

例如,給定如上圖所示的特徵圖,在第一次傳播時,v1 接收 v2、v3、v5、v6 的特徵。同時,q1、v7 的特徵也被傳播到 v6,而 q2、v4 的特徵被傳播到 v5。然後在第二次傳播中,將 v2、v3、v5、v6 再次傳播到 v1,但此時 v1 可以捕獲 q1 的資訊,因為在第一次迭代中,q1 的特徵已經傳播到 v6。這樣,每個節點透過幾次迭代就能很好地捕捉到鄰居的資訊。

  • 聚合函式

傳播後,需要一個聚合函式來計算每個節點的嵌入,同時考慮節點自身和鄰居的特徵。一個簡單的方法是採用典型的 GCN 聚合器作為聚合函式。具體地說,對於第 k 次傳播迭代時的每個節點 v,聚合器計算第 k-1 次迭代時 v 及其鄰居的嵌入的元素均值。形式上,

但是,上述方法對每個鄰居進行等價處理,沒有考慮查詢圖中不同型別節點和邊的不同特徵。在查詢樹中,資料在執行過程中自下而上流動,因此在聚合函式中應該區分父節點和子節點的特性。此外,還應識別子節點的差異。具體地說,這篇論文觀察到,如果節點 v 的一個子節點有索引,則 v 中的運算子的執行將比不使用索引更有效,尤其是對於 join 運算子。因此,帶或不帶索引的子節點將顯著影響查詢執行。透過分析不同型別節點對效益估計的影響,這篇論文發現為了更好地估計,應該特別對待父節點和索引節點。

針對上述問題,這篇論文設計了一個 MV 聚合器,用於在查詢圖上進行特徵聚合,該聚合器處理父節點、索引節點和其他具有不同線性變換的節點,分別表示為(WF, BF)、(WI, BI)、(WO, BO)。如圖 4 所示,依賴於 WF、WI、WO,鄰居將在聚合中向節點傳播不同的特性。 形式上,這篇論文將傳播的特性定義為:

MV 聚合函式為:

傳播迭代次數為 K,每個節點最終嵌入為e (vi) = hiK

  • 效益估計

給定每個節點的嵌入,這篇論文可以估計每個 MV 節點對每個查詢節點的好處。透過連線查詢 q 和檢視v的嵌入,然後是 MLP 來捕獲它們之間的關係,然後計算收益 B’(q,v)。假設 q 和 v 分別用 vi 和 vj 表示。形式上:

然後透過最小化損失函式來訓練 GNN 模型,目標是最佳化引數 W 和 b。

3. GnnMV 的推斷

(1)查詢重寫

旦出現一個新的查詢,這篇論文選擇 MV 重寫查詢。首先,這篇論文檢測可用的  MV(例如下圖中的{v1, v2, v3})。然後,為了選擇使回答查詢的收益最大化的  MV,需要準確地估計收益。直觀的想法是選擇那些具有高收益的檢視來重寫,但是有些檢視可能會有衝突,因此不能同時使用。因此,它是一個 NP-hard 問題,選擇一個最優的子集與最大的利益,其中每兩個檢視不衝突。

查詢重寫和 MV 集維護推理

如上圖所示,當 q4 來臨時,將它追加到圖上,並且 R(q4)={v1,v2,v3}。然後這篇論文的目標是計算 B(q4,v),λv∈R(q4)。首先提取並編碼 q4 的特徵,然後這篇論文透過捕捉鄰域的特徵來計算 e(q4)。假設 k=3,q4 可以捕獲離它3跳的節點的資訊,即q4的紅色節點和查詢 q3 和 q2 的黃色節點 v1 和 v3。

在給定的條件下,這篇論文開始選擇檢視子集去回答查詢,因為兩個  MVs 可能會相互衝突。因此,它實際上可以表述為一個以節點權值為  MV 收益的加權最大獨立集問題,是 NP 難的。這篇論文可以用近似演算法來求解它。

(2) MV  集合維護

這篇論文需要週期性地維護  MVs,這樣可以進一步適應後續的工作負載。通常,這篇論文根據現有  MVs 的效能觸發  MVs 集的維護。這篇論文監視現有  MVs 對最近查詢的累積好處,因為好處直接反映了工作負載效能。當累計收益低於閾值時,這篇論文觸發 MVs 集維護。

  • 效益評估

隨著新到達的查詢數量的增長,這篇論文派生一個新的工作負載 Wn,將其新增到當前查詢圖 Wc,並開始維護 MVs 集。為此,這篇論文需要估計  MV 的收益和成本(即候選  MV 的生成成本和現有  MVs 的更新成本)。

成本 :透過將執行檢視和寫入結果的時間相加來估計生成成本,生成成本可以透過從生成檢視的已執行查詢計劃樹的子樹中提取的資訊來計算。這篇論文將更新成本視為  MV 重新計算成本,它大約等於重新建立檢視的成本。

收益 :為了估計  MV 候選的收益,需要獲得節點嵌入。一種簡單的方法是對新查詢的特徵進行編碼,在整個圖(WC®WN)上傳播特徵,並推斷嵌入。然而,隨著大量工作負載的到來,圖變得越來越大,整個圖的推斷非常耗時。而且,沒有必要這樣做,因為新節點對遠離它們的節點在圖上的嵌入影響很小。

因此,這篇論文提出在一個提取的子圖上計算嵌入,該子圖覆蓋了必要的特徵傳播。首先,這個子圖肯定包含 WN,因為 WN 中包含的節點的嵌入是未知的。其次,子圖還應該包含一些靠近 WN 的節點,因為它們會受到很大的影響,因此它們的嵌入應該更新。

  • MV 生成

當新的工作負載到達後,新的當前工作負載變成 Wc=Wc∪Wn。為了在空間預算 τ 內生成最佳化 WC 的 V*n∈V,這篇論文建立了一個二分圖,其中一邊的節點來自 WC,另一邊的節點來自V。每個邊表示 V∈V 到 Q∈WC 的收益,並用 B(q,v)標記。為了考慮檢視物化成本,對於建立新檢視,這篇論文從建立檢視的收益中減去檢視物化成本。

有些檢視是相互衝突的,在重寫查詢時,這篇論文使用一個矩陣 T|v|×|v|×w 來表示檢視之間的關係,其中 tijk=1(0)表示 vi 和 vj 在 qk 上衝突(不是衝突)。這篇論文使用 xik=1(0)來指示是否選擇 vi 重寫 qk。這篇論文將 V 的空間表示為|V|,為了獲得最大的總收益,這篇論文建模為如下整數規劃問題:


由於這是一個 NP 難問題,這篇論文使用貪婪演算法,近似比為 2 來選擇 V*。

五、總結

這篇論文提出了一個新的框架 GnnMV,利用圖神經網路(GNN)來評估效益,以高效和有效的動態 MVs 管理。

  • 首先,將動態查詢負載維護為查詢圖,提取並編碼查詢的關鍵特徵,建立 GNN 模型;

  • 其次,為圖中的鄰居節點設計了一個特徵聚集函式,以達到較高的精度;

  • 最後,這篇論文提出在由於不斷的查詢而使圖變得越來越大的情況下,提取一個小的子圖來進行有效的效益估計。


來自 “ ITPUB部落格 ” ,連結:https://blog.itpub.net/70027415/viewspace-3002154/,如需轉載,請註明出處,否則將追究法律責任。

相關文章