“ DataSphere Studio(简称DSS)是微众银行自研的一站式数据应用开发管理门户。基于插拔式的集成框架设计,及计算中间件Linkis,可轻松接入上层各种Web系统,让数据开发变得简洁又易用。”
DataSphere Studio Github地址: https://github.com/WeBankFinTech/DataSphereStudio
01
—
DSS是什么?
DataSphere Studio(简称DSS)定位为数据应用开发门户,闭环涵盖数据应用开发全流程。在统一的UI下,以工作流式的图形化拖拽开发体验,满足从数据导入、脱敏清洗、分析挖掘、质量检测、可视化展现、定时调度到数据输出应用等,数据应用开发全流程场景需求。
DSS通过插拔式的集成框架设计,让用户可以轻松定制化开发DSS,简单快速集成各种Web系统,在一个统一的页面下,便可满足用户的所有业务需求。
根据需要,用户可以简单快速替换DSS已集成的各种功能组件,或新增功能组件。
借助于Linkis计算中间件的连接、复用与简化能力,DSS天生便具备了金融级高并发、高可用、多租户隔离和资源管控等执行与调度能力。
02
—
为什么需要DSS?
随着大数据技术的广泛应用,如今数据应用的开发,已远远不再是加工和生产几个报表了。
业务与数据如何快速实现互动,数据如何快速且高效地生成报告,协助商业决策,几乎是所有企业的核心诉求。
然而,现实却是,业务用户面对功能丰富的众多数据应用系统,往往不知所措,不知如何选择。
以下六个痛点,几乎是所有企业面临的非常头痛的问题:
数据应用系统多,没有统一的用户入口,用户体验割裂感强。
业务流程涉及多个系统相互协作,用户需频繁切换系统才可实现业务。
很多数据应用系统边界不清晰,功能重叠不仅极大浪费人力,系统间也难以协同互通,用户更是需要花时间反复调研比较,才能最终敲定方案。
跨部门跨业务的数据依赖,全靠口头约定ready时间,如果上游数据延迟,下游将产生连锁反应,引发数据灾难。
系统间的数据和信息共享,需要两两开发适配,调用复杂且耦合度高。
没有一套统一的集成框架,系统间集成需要各种开发适配。
03
—
DSS的核心概念
DSS提出的五大核心概念,专注于解决上述提到的六大痛点问题。
1. 一站式
一站式,是DSS提高业务用户主动参与数据开发的第一步探索。
DSS通过提供一站式的数据应用开发管理界面,让用户无需再多方打听探讨,才能确认是否有工具能满足需求,所有的数据开发均可在DSS上找到组件完成。
DSS集成度极高,最新开源版已集成的系统有:
数据开发探索Scriptis
数据可视化Visualis(基于宜信Davinci二次开发)
数据质量Qualitis
调度系统Azkaban
DSS插拔式的框架设计模式,允许用户快速替换DSS已集成的各个Web系统。如:将Scriptis替换成Zeppelin,将Azkaban替换成DolphinScheduler。
DSS一站式的数据应用开发入口,使用户养成了有需求时搜DSS,没需求时探索DSS其他功能组件的良好习惯。
2. 全连接
在DSS工作流拖拽编辑页面,DSS已集成的所有数据应用系统,都将以工作流节点的形式出现,一种节点对应一个系统功能,让功能边界清晰明朗,用户无需再做选择题。
DSS工作流节点,支持嵌入已集成的数据应用系统前端界面,让用户在一个工作流页面,即可编辑修改所有的业务功能。
DSS工作流,让用户能以业务视角将多个业务功能连接起来,编排成支持实时执行和定时调度的工作流,只需简单拖拽即可完成数据应用的全流程开发。
在微众银行,通过DSS的工作流,业务数据应用的迭代周期从原来的1周,降低到1天,效率提升了600%倍。
DSS工作流,做到让用户可以简单快速地实现业务,同时帮助用户更好地理解业务。
3.插拔式
插拔式是DSS作为数据应用集成框架的最大特色。
DSS就像是插槽,插拔式的设计方式,几乎不侵入原有的外部系统,且只需做简单适配,即可快速的集成进来。
DSS通过插拔式的集成框架设计,让用户可以轻松定制化开发DSS,简单快速集成各种Web系统,在一个统一的页面下,便可满足用户的所有业务需求。
通过插拔式,让WeDataSphere的各个功能组件既能相互独立、系统边界清晰明确,又能有机融合在一起,共同构成WeDataSphere一站式、全连通的大数据使用体验。
4.上下文
何谓上下文?
保持某种操作继续进行的所有必需信息。如:同时看三本书,每本书已翻看的页码就是继续看这本书的上下文。
DSS上下文,解决DSS工作流跨多个系统节点间的数据和信息共享问题。
例如,B系统需要使用A系统产生的一份数据,通常的做法如下:
B系统调用A系统开发的数据访问接口
B系统读取A系统写入某个共享存储的数据
DSS借助Linkis计算中间件实现的WorkflowContext,允许接入的外部系统作为分享节点或读取节点,将节点信息和节点数据共享给其他外部系统节点,无需外部系统两两开发适配,降低系统间调用复杂度和耦合度。
借助于DSS上下文,微众银行WeDataSphere实现彻底解耦,各功能组件的复杂度至少降低了30%。
5.信号化
跨部门跨业务的数据依赖问题,一向是业界公认的老大难。
例如:部门B的数据集市依赖于部门A DWD(Data Warehouse Detail数据明细层)的部分数据,
如何确保部门A的数据处理完成后,部门B才正式开始数据处理?
通常的做法是:双方约定一个时间窗口,部门A保证数据已准备就绪。
中间的空窗期,不仅极大降低了数据处理时效性,且一旦部门A数据处理延迟,下游将引发灾难。
DSS作为数据应用开发门户,提出了一套基于信号的数据依赖解决方案。
接入到DSS的数据应用系统,只需在其前面加上一个信息节点,即可实现跨业务、多系统间的数据依赖协作执行问题。
微众银行通过DSS信号化,让各业务跨多系统的数据依赖,变得简单、清晰又高效,平均提速了业务30%的数据产出,数据延迟率降低了90%。
04
—
DSS核心设计理念
AppJoint,DSS插拔式架构的插口,是DSS构建一站式、全连通、插拔式、上下文的基石。
AppJoint,是DSS可以简单快速集成各种上层Web系统的核心概念。
什么是AppJoint?
AppJoint——应用关节,基于Linkis计算中间件构建,定义了一套统一且规范的前后台接入规范,
让外部数据应用系统可简单快速地接入到DSS。
AppJoint的四大规范,让DSS的数据应用系统接入,变得清晰又便捷。
Security规范和Project规范,是实现一站式的核心抽象。
Security规范,打通DSS与外部系统前后台的登录跨域问题。
Project规范,打通DSS与外部系统的组织结构、权限体系,是实现DSS协同开发的通用标准。
NodeService规范和NodeExecution规范,是实现全连通的核心基石。
NodeService规范,打通DSS工作流节点与外部系统的关联互通。
NodeExecution规范,实现DSS工作流节点与外部系统的任务交互执行。
AppJoint还引入了Linkis计算中间件,让接入的外部数据应用系统,可快速具备Linkis的并发限流、用户资源打通等能力。
且基于Linkis实现的WorkflowContext,允许上下文信息跨系统节点级共享,彻底告别应用孤岛。
05
—
DSS已集成的数据应用组件
DSS通过实现多个AppJoint,已集成了丰富多样的各种上层Web应用系统,基本可满足用户的数据开发需求。
用户如果有需要,也可以轻松集成新的Web应用系统,以替换或丰富DSS的数据应用开发流程。
1、数据开发——Scriptis
什么是Scriptis?
Scriptis是一款支持在线写SQL、Pyspark、HiveQL等脚本,提交给Linkis执行的数据分析Web工具,且支持UDF、函数、资源管控和智能诊断等企业级特性。
Scriptis AppJoint为DSS集成了Scriptis的数据开发能力,并允许Scriptis的各种脚本类型,作为DSS工作流的节点,参与到应用开发的流程中。
目前已支持HiveSQL、SparkSQL、Pyspark、Scala等脚本节点类型。
2、数据可视化——Visualis
什么是Visualis?
Visualis是一个数据可视化的BI工具,基于宜信开源组件Davinci二次定制化开发而成。
Visualis AppJoint为DSS集成了Visualis的数据可视化能力,并允许数据大屏和仪表盘,作为DSS工作流的节点,与上游的数据集市关联起来。
3、DSS的调度能力——Azkaban
用户的很多数据应用,通常希望具备周期性的调度能力。
目前市面上已有的开源调度系统,与上层的其他数据应用系统整合度低,且难以融通。
DSS通过实现Azkaban AppJoint,允许用户将一个编排好的工作流,一键发布到Azkaban中进行定时调度。
DSS还为调度系统定义了一套标准且通用的Linkis工作流解析发布规范,让其他调度系统可以轻松与DSS实现低成本对接。
4、数据质量——Qualitis
Qualitis AppJoint 为DSS集成数据质量校验能力,将数据质量系统集成到DSS工作流开发中,对数据完整性、正确性等进行校验。
5、数据发送——Sender
Sender AppJoint为DSS集成数据发送能力,目前支持SendEmail节点类型,所有其他节点的结果集,都可以通过邮件发送。
例如:SendEmail节点可直接将Display数据大屏作为邮件发送出来。
6、数据信号——Signal
Signal AppJoint用于强化业务与流程之间的解耦和相互关联。
DataChecker节点:检查库表分区是否存在。
EventSender: 跨工作流和工程的消息发送节点。
EventReceiver: 跨工作流和工程的消息接收节点。
7、功能节点
空节点和子工作流节点。
8、节点扩展
根据需要,用户可以简单快速替换DSS已集成的各种功能组件,或新增功能组件。
06
—
总结
DSS作为数据应用开发门户,致力于提供一套通用的数据应用接入和开发的标准,让业务用户具备参与到数据应用开发的能力和可能。
由于篇幅所限,本文不再详细论述DSS的架构设计和实现。
期待更多的社区力量,一起推动DSS + Linkis生态圈的成长。
新福利:
从11月01日开始至12月06日截止,一共五周时间,每周五我会从公众号选择阅读+转发综合最多的读者一名,免费包邮送实体新书《Flink入门与实战》,留言互动起来吧~
上周获奖名单:飛
猜你喜欢
1、Apache Spark 中编写可伸缩代码的4个技巧
2、ElasticSearch 亿级数据检索案例实战
3、Flink Forward Asia 2019 总结和展望 - 附PPT下载
4、58同城实时计算平台架构实践
过往记忆大数据微信群,请添加微信:fangzhen0219,备注【进群】