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