在決策配置過程中,一些複雜的邏輯或模型可通過自定義SQL腳本編寫創建數據變量,通過SQL腳本可以便捷的從數據庫中取數,並且自定義SQL支持傳參,可滿足更復雜多變的數據加工處理。
在JVS規則引擎中,提供了SQL變量能力,今天我詳細説一説SQL變量加工是如何配置的。
注意,SQL變量加工和算子編排加工的方式不同,SQL變量加工依賴於對應數據源的服務器的性能,在使用前,需要確認下數據庫是否有可用的多餘的性能滿足新增SQL執行的性能消耗(避免影響原有系統的性能)。
JVS規則引擎SQL數據加工配置效果如下圖所示
創建變量入口
在變量管理中,創建公共的SQL變量,如下圖所示:
在決策中,創建私有的SQL變量,如下圖所示:
界面介紹
SQL數據加工配置器界面介紹,如下所示,
①:數據源選擇,點擊下拉框,展示系統支持的多個數據源(數據庫)
②:搜索框,對數據庫、數據庫對應字段進行收縮,用於便捷的找到數據庫與相關字段
③:數據表與字段詳情展示,雙擊可以拾取到右側的編輯窗中
④:SQL腳本編輯框
⑤:SQL腳本執行時,設置預覽返回的限制條數,可以下拉選擇預覽返回的數據上限
⑥:執行按鈕,模擬執行SQL編輯腳本
⑦:參數設置窗,可以設置需要查詢傳遞進入SQL腳本中的參數
⑧:展示執行預覽的數據
⑨:展示多次執行的歷史記錄
數據庫的選擇
數據庫選擇是,可以點擊下拉框,進行系統已經配置的數據庫類型進行切換,目前通過SQL腳本的支持mysql、達夢、PostgreSQL、Oracle數據庫
在做了對應數據庫切換後,系統會自動加載對應的庫表數據,包括數據庫、表、字段的 樹形結構展示,如下圖所示
SQL腳本編輯
編輯器支持關鍵詞提示,在編寫的時候更加便捷的編寫腳本
提供了對SQL腳本執行的返回數據總量的條數限制,可通過下拉框進行選擇返回限制的條數,點擊模擬執行,可以預覽展示出來的效果
執行歷史記錄
系統提供了sql腳本執行歷史記錄的展示,包括執行語句,執行狀態,輸入參數,起止時間等
參數配置
在SQL變量使用的過程中,往往存在需要通過業務端傳入的參數去過濾查詢的數據,那麼就需要通過參數的方式進行SQL腳本的編寫,如下圖所示:
參數配置方式,如下所示
①:點擊添加參數,系統創建參數相關配置選項
②:設置入參的名稱,用於在決策中使用時,需要傳入的參數名稱説明
③:設置入參的key,這裏的key需要在系統中唯一,用於對變量的唯一標識
④:設置字段類型,類型包括字符串、數值、布爾類型
⑤:設置參數的模擬值,便於模擬執行驗證數據是否正確
⑥:刪除入參的按鈕操作
取值配置
我們可以對SQL變量內部數據字段值進行直接提取,通過一個基礎變量來直接獲取對應字段值的第一條數據值,以便用於規則的判斷,具體直接選擇對應字段即可。可選擇一個或多個。
聚合配置
我們還可以對SQL變量進行一個聚合配置,執行完畢後進行聚合配置。選擇相關需聚合的字段,即可統計條數。其中如果字段類型為字符串,則聚合時為計數和去重計數。如果是數字類型則有最大、最小、平均值等這些選項。詳情如下
用的時候可以用一個基礎變量進行存放,選擇【其他變量】裏的【SQL變量(聚合)】,找到對應的SQL變量名稱。最後就會統計出滿足條件的條數。
在線demo:http://rules.bctools.cn
gitee:https://gitee.com/software-minister/jvs-rules