問界低代碼平臺架構設計及業務實踐(問界科技有限公司)
1.前言
內因:隨著之家業務快速發展,公司內部的數字化需求越來越多,信息系統團隊每年都面對大量的需求,但研發側資源是一定的,那么如何更快速的交付需求,越來越成為團隊重點思考解決的問題。
外因:互聯網技術的不斷推陳出新,尤其以React,Vue為代表的前端技術框架突飛猛進,大幅降低了可視化拖拽操作的技術門檻。
行業內低代碼平臺主要涉及表單,流程, 數據開發,BI工具,智能機器人等方向。
1.前言
2.問界低代碼平臺介紹
問界平臺,第一期鎖定了數據方向的主題進行建設開發。具體圍繞數據分析的以下5個場景:
- 數據建模場景:實現零代碼,可視化的拖拉拽方式數據建模;
- 數據開發場景:實現數據抽取,清洗加工,然后輸出到目標表等功能;
- 數據分析場景:通過BI解決多維度數據分析需求;
- 指標及維度規則場景:實現在線的計算公式、數據核算規則的配置及后端自動化核算;
- 數據質量監控場景:實現低代碼方式的數據監控,及既定規則的數據自動修復
3.問界平臺技術架構介紹
3.1
前端框架
前端框架選型React, React提供了組件化的編程思想,特別適合中大工程采用,另外考慮移動端RN的普及,所以整體采用React來實施。
前端框架一覽表:
3.2
后端框架
后端整體的技術架構基于Spring Cloud微服務框架,依托于云平臺ASF ; 通過SkyWalking實現后端全鏈路調用鏈的監控。
3.2.后端框架
3.3
調度引擎
調度引擎選型方面,我們選擇了PowerJob開源的工作流調度引擎, 目前市面上的調度引擎主要分為兩類,定時調度,代表性的調度引擎有quartz,xxlJob等,以及以Oozie,PowerJob等為代表的工作流調度引擎,考慮到數據開發場景的大量數據依賴任務,問界平臺選擇了PowerJob來負責底層的任務調度引擎,PowJob框架本身自帶流程引擎設計器。
3.4
ORM框架
采取自研的ORM框架(automis.orm),相比Mybatis半自動化ORM框架,省去大量SQL腳本的編寫, 框架底層增加大量常用的數據查詢方法,如自動加載為hash,自動格式化為交叉表等數據的查詢及匯總,小計合計的計算等。框架自動支持底層各類日志的跟蹤分析,及數據緩存策略,如基于方法,基于腳本,基于路徑的數據緩存等。
問界低代碼平臺后續將繼續表單場景的低代碼化,基于當前支持動態實體多表的自動序列化。可以有效支持基于數據模型設計的表單數據自動映射與序列化;
3.5
運行機制
3.5.運行機制
4.問界低代碼場景介紹
4.1
數據建模場景
數據建模做為數據分析的基礎,問界提供了在線ER圖的設計,并且可以在線進行數據表,維度及度量名稱等的二次修改及調整,另外支持計算字段及分組字段等的高階配置;
- 計算字段:支持聚合函數(sum/count/avg等)及計算公式(如:a b-c*100)等的配置
- 分組字段:支持時間、字符、數值類型的快速分組配置(類case when)
通過以上功能,普通的數據分析師完全可以通過零代碼的方式,完成線上數據模型設計,并通過后續的BI分析模塊進行下一步的數據分析。
? 4.1.1 在線ER圖的設計
4.1.1.在線ER圖的設計
? 4.1.2 計算字段的可視化配置
4.1.2.計算字段的可視化配置
? 4.1.3 分組字段的可視化配置
4.1.3.分組字段的可視化配置
4.2
數據開發場景
所有的數據分析,離不開基礎數據的加工,只有加工清洗后的數據,才具備分析的價值。
問界平臺目前已上線支持12個組件,其中4類腳本開發組件,用于在線直接數據腳本的編寫與開發,采用Monaco Editor 支持一定的SQL語法糖,支持MySQL,SqlServer, HiveSQL, StarRockcs等數據庫腳本的編寫;另外提供7類數據專項開發組件,后續還會不斷進行新增擴充組件(如:API組件、腳本組件等)。
開發模塊運行機制:
4.2.數據開發場景
4.2
數據開發場景
? 4.2.1 數據集成
采用阿里的DataX框架, 支持多種數據庫類型之間的數據抽取;
1.支持在線的源數據與目標數據列字段的自動映射,如同行關聯,同名關聯等,以及手工拖拽式的配置;
4.2.1.數據集成-列映射
2.對接之家大數據的平臺,基于大數據平臺能力,實現hive,StarRocks等的能力復用;
? 4.2.2 數據清洗
數據在線清洗功能, 共提供5類組件
- 輸入組件:負責源數據輸入的定義,支持多源數據的輸入;
- 關聯組件:提供異構數據的在線關聯,實現數據的列擴展;
- 合并組件:合并多個異構源的數據,實現數據的行擴展;
- 聚合組件:實現數據匯總配置,支持多種數據庫的聚合函數;
- 清洗組件:支持對輸入的數據再次過濾,進行數據行的處理;通過計算字段,值替換等實現數據列的處理;
- 輸出組件:用于將清洗后的數據,寫入目標的數據源;
效果圖:
4.2.2.數據清洗
? 4.2.3 SQL組件
- MySQL腳本組件
- MsSQL腳本組件
- HiveSql腳本組件
- StarRocks腳本組件
SQL編輯器選型對比:
具體使用效果:
4.2.3.SQL組件
? 4.2.4 輔助組件
開始組件:用來配置任務的調度策略;問界平臺封裝了Cron的公共組件,可以在線快速配置Cron表達式;
效果圖:
4.2.4.輔助組件-CRON表達式設置
? 4.2.5 動態參數
同時數據開發模塊還提供了執行時動態參數替換,用于更靈活動態的執行相關組件任務,可支持全局及組件自定義參數設置。
參數名格式:${xxxx}
4.2.5.動態參數-全局參數
4.2.5.動態參數-自定義參數
4.3
指標規則場景
數據分析的需求多變,因此數據加工離不開規則的配置,問界平臺提供了維度管理及指標管理實現了規則的線上化配置。
? 4.3.1 維度管理
維度管理功能提供了大量的線上口徑數據的定義,后臺基于規則配置完成維度數據的核算,目前該場景已大量在銷管,業績核算等業務場景中應用。
4.3.1.維度管理
? 4.3.2 指標管理
用于指標公式的配置,提供原子指標,派生指標,衍生指標三種類型的指標庫管理。目前指標模塊已在HR組織健康度完成150 指標的管理。
實現的效果如下:
4.3.2.指標管理
4.4
數據分析場景
數據分析場景主要面向了一線的業務人員,及各個BU的數據分析師。在我們總結的數據分析場景中,一共提供以下三類場景的實現
? 4.4.1 儀表板
儀表板主要采用 ECharts框架, ECharts最初由百度團隊開源,并于2018年初捐贈給Apache基金會,成為ASF孵化級項目。未采用Highcharts的原因, 付費非開源不利于后續的升級。
另外我們也自研了多個場景的分析組件,如果故事線組件,交叉表及明細表組件等。
截止到當前儀表板共提供7類23個場景的分析組件,另外提供基于路徑的鉆取分析,同環比配置,及基于明細的下鉆配置,每個數據卡片支持任意的拖拽布局,支持任何系統的行級權限配置。
4.4.1.儀表板
?4.4.2 電子報表
電子報表我們一期實現了常用的明細表及交叉表的設計;2023年我們將繼續升級這塊,滿足所有中國式報表的分析場景,目前已完成技術框架的原型。
4.4.2 電子報表
?4.4.3 多維分析
多維分析場景主要用來實現數據的及時探查分析, 實現的效果如下圖。可以快速進行行列配置,并自動進行聚合,及各類維度的小計,總計等的配置。
底層采用自研的ORM框架,自動實現下面的復雜分析場景。
多維分析的場景效果圖:
4.4.3.多維分析
4.5
數據監控與預警
問界平臺提供了在線的數據腳本巡查,并可以進行字段級的數據預警規則配置。
提醒方式分別支持郵件、手機短信、釘釘消息及釘釘群群機器人消息,可以快速完成數據預警及數據播報場景的應用,同時還提供規則明確情況下的數據自動修復功能。
? 4.5.1 郵件提醒
支持郵件模板的配置,支持語法糖;異常數據內容支持以郵件附件的形式發送;
4.5.1.郵件提醒
?4.5.2 釘釘機器人提醒
支持在線配置釘釘機器人 ,可以實現各種群消息提醒, 如數據播報,值班提醒機器人等。目前我們已在財務結賬,技術值班等完成這些場景的配置。
效果如下圖:
4.5.2.釘釘機器人提醒
?4.5.3 短信提醒
?4.5.4 釘釘提醒
5.總結與規劃
5.1
總結
問界低代碼平臺在2022年12月2日正式完成V1.0.0的發布,目前已在之家人財物事等多個業務場景中進行使用,在我們實踐的過程中,團隊自身的交付效率得到了大幅的提升。
2023年,我們將繼續夯實每個功能的細節體驗,實現基于數據模型的表單配置場景,并完成權限平臺,流程中心等的功能整合,為之家提供一站式的全場景低代碼平臺,賦能一線業務,也賦能我們所有的前中后臺的產研團隊。
另外我們也希望與各個BU的技術團隊進行共建,共同為之家的低代碼平臺建設,添磚加瓦,為技術人提效!
5.2
規劃
問界平臺23年規劃:
5.2.規劃
6.結語
以問為模式 不斷的探索來達成,
以界為目標無限突圍與延展~~
創新與變革 永無止境~
作者:信息系統團隊
來源:微信公眾號:之家技術
出處:https://mp.weixin.qq.com/s/kjnwz49yYldDlbexFa7Tlg