首页 > 其他分享 >问界低代码平台架构设计及业务实践

问界低代码平台架构设计及业务实践

时间:2023-07-03 09:14:34浏览次数:37  
标签:架构设计 场景 问界 4.2 代码 配置 组件 数据

 

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.结语

以问为模式 不断的探索来达成,

以界为目标无限突围与延展~~    

创新与变革 永无止境~

 

作者|信息系统团队

标签:架构设计,场景,问界,4.2,代码,配置,组件,数据
From: https://www.cnblogs.com/88223100/p/Low-code-platform-architecture-design-and-business-prac

相关文章

  • 问界低代码平台架构设计及业务实践
     1.前言内因:随着之家业务快速发展,公司内部的数字化需求越来越多,信息系统团队每年都面对大量的需求,但研发侧资源是一定的,那么如何更快速的交付需求,越来越成为团队重点思考解决的问题。外因:互联网技术的不断推陈出新,尤其以React,Vue为代表的前端技术框架突飞猛进,大......
  • BackUpLogView 系列 - ps1 文件代码及参考
    注意保存为.ps1后缀的文件 $sourceDirectory="C:\FromDIR"$targetLocalDirectory="D:\ToDIR"$btree="数据库"$taskName="HIS"$memo="心电系统"#---btree为一级类目比如数据库taskname为二级类目比如his----memo在详情页展示,显示具体的备注人......
  • java代码加密
    <plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-resources-plugin</artifactId><version>2.6</version><execution......
  • classfinal加密java代码并且启动
    maven插件方式配置参数解释: 参数说明-file加密的jar/war完整路径-packages加密的包名(可为空,多个用","分割)-libjarsjar/war包lib下要加密jar文件名(可为空,多个用","分割)-cfgfiles需要加密的配置文件,一般是classes目录下的yml或propertie......
  • 代码计时工具类stop_watch
    //copyfromspdlog#pragmaonce#include<chrono>#include<iostream>classstopwatch{usingclock=std::chrono::steady_clock;std::chrono::time_point<clock>start_tp_;public:stopwatch():start_tp_{clock::now()}......
  • SSM项目整合思路以及代码
    当前真实的企业开发中,SpringBoot已经统一Java企业应用开发,很少有在使用SSM项目来进行项目开发的。可是在教学阶段,还是很有必要给学生讲解Java开发中一套很经典的框架,SSM框架。作为一个过渡阶段讲解的项目比较合适,之后在讲解SpringBoot项目,相对来说要好理解一些。如果以开始......
  • 从代码整洁之道 看什么是好的代码
    整洁的代码只做好一件事:每个函数、每个类和每个模块都全身神贯注于一件事。这里结合自己之前代码设计和处理的时候想一下子把整体都思考完全,无论是思维还是代码设计都不是好的方法。方法减少重复代码提供表达力提早构建简单抽象有意义的命名函数函数应该做一件事,做好这件......
  • OpenGL环境配置 和 测试代码(GLEW/GLFW VS2019)
    1.配置 2.测试代码:2.1 在黑板色的窗口上画一个三角形1#include<iostream>23//GLEW4#defineGLEW_STATIC5#include<GL/glew.h>67//GLFW8#include<GLFW/glfw3.h>91011//Functionprototypes12voidkey_callback(GLFWw......
  • [代码]如何在ASP.NET网页间传递数据
    重点总结目前为止在ASP.NET网页中传递数据的方式至少有5种:1、通过查询字符串传递数据。2、通过HTTPPOST传递数据。3、通过会话状态传递数据。4、通过源页的公共属性传递数据。5、通过源页中的控件值传递数据。到底使用哪种方式来进行数据的传递,这可能受到两方面的影响:1、页面重定......
  • N层研习中的测试代码01
    这是前文《N层研习记录01:试图通过Boolean参数控制并发冲突的检查方式(LINQtoSQL)》用到的测试代码。只是包含了其中最重要的部分,如果要想获取完整的代码,可以通过以下地址进行下载:下载地址2:http://u.115.com/file/f26716bcc2以上地址如果均不能下载,请留言通知我!测试代码的服务端使......