查詢計畫的邏輯屬性

Presto 實作一個框架,用於將邏輯屬性與查詢計畫節點產生的結果集相關聯。這些邏輯屬性可能來自對表格定義的限制,或來自查詢計畫中中間節點執行的操作,例如聚合、限制或述詞的應用。然後,Presto 最佳化工具可以使用這些邏輯屬性來執行最佳化,例如刪除多餘的操作或其他邏輯轉換。

查詢計畫中邏輯屬性的傳播,可透過在協調器 (coordinator) 的 etc/config.properties 中設定 exploit_constraints 會期屬性或 optimizer.exploit_constraints 組態屬性來啟用。預設情況下啟用邏輯屬性傳播。

邏輯屬性的類型

Presto 偵測並傳播以下邏輯屬性

  • KeyProperty - 適用於計畫節點產生之最終或中間結果集的一組相異屬性。

  • MaxCardProperty - 計畫節點產生之最終或中間結果集中可證明的最大行數。

  • EquivalenceClassProperty - 適用於計畫節點產生之最終或中間結果集的等效變數和常數參考類別。