Flink SQL支援添加提示(Hints),允許您手動影響執行計畫的產生結果,從而最佳化SQL作業的執行。本文為您介紹如何使用SQL提示。
動態表選項提示
從VVR 4.x開始,您可以通過動態表選項來動態地制定或覆蓋表選項,從而讓這些表參數僅在Query層級的範圍內生效。動態表選項的文法和樣本,請參見動態表(dynamic table)選項。
查詢提示
維表聯結提示
維表聯結提示(Lookup Join Hints)詳情,請參見維表JOIN語句 。
運算元狀態生命週期(State TTL)提示
通過為狀態設定狀態生命週期,可以顯著減少運算元狀態的大小,從而增強系統穩定性和可靠性。運算元狀態生命週期設定的方式詳情如下:
狀態生命週期提示:為特殊的有狀態運算元設定運算元粒度的狀態生命週期。當前該方式僅適用於雙流聯結運算元和分組彙總運算元,具體的設定方式如下:
雙流聯結運算元
VVR 8.0.7及以上版本:可以通過狀態生命週期提示或雙流JOIN hints的提示來實現。
VVR 8.0.1~VVR 8.0.6版本:僅支援通過雙流JOIN hints的提示來實現。
分組彙總運算元
VVR 8.0.7及以上版本:通過分組彙總狀態生命週期提示實現,更多文法和樣本請參見狀態生命週期提示。
VVR 8.0.6及以前版本:不支援配置運算元狀態生命週期提示。
作業參數配置:設定作業參數來設定全域作業層級的狀態生命週期,詳情請參見table.exec.state.ttl。
專家模式:為有狀態運算元配置運算元粒度的狀態生命週期,詳情請參見配置運算元並發、Chain策略和TTL。
說明
運算元狀態生命週期設定生效的優先順序從高到低依次是:專家模式、狀態生命週期提示、作業參數配置。
相關文檔
關於提示的基本能力詳情,請參見SQL Hints。