“ DataSphere Studio(简称DSS)是微众银行自研的一站式数据应用开发管理门户。基于插拔式的集成框架设计,及计算中间件Linkis,可轻松接入上层各种Web系统,让数据开发变得简洁又易用。” 开源地址(github https://github.com/WeBankFinTech/DataSphereStudi gitee https://gitee.com/WeBank/DataSphereStudio) 01 — DSS是什么? DataSphere Studio(简称DSS)定位为数据应用开发门户,闭环涵盖数据应用开发全流程。在统一的UI下,以工作流式的图形化拖拽开发体验,满足从数据导入、脱敏清洗、分析挖掘、质量检测、可视化展现、定时调度到数据输出应用等,数据应用开发全流程场景需求。 DSS通过插拔式的集成框架设计,让用户可以轻松定制化开发DSS,简单快速集成各种Web系统,在一个统一的页面下,便可满足用户的所有业务需求。 根据需要,用户可以简单快速替换DSS已集成的各种功能组件,或新增功能组件。 借助于Linkis计算中间件的连接、复用与简化能力,DSS天生便具备了金融级高并发、高可用、多租户隔离和资源管控等执行与调度能力。 02 — 为什么需要DSS? 随着大数据技术的广泛应用,如今数据应用的开发,已远远不再是加工和生产几个报表了。 业务与数据如何快速实现互动,数据如何快速且高效地生成报告,协助商业决策,几乎是所有企业的核心诉求。 然而,现实却是,业务用户面对功能丰富的众多数据应用系统,往往不知所措,不知如何选择。
以下六个痛点,几乎是所有企业面临的非常头痛的问题:
03 — DSS的核心概念 DSS提出的五大核心概念,专注于解决上述提到的六大痛点问题。
1. 一站式 一站式,是DSS提高业务用户主动参与数据开发的第一步探索。 DSS通过提供一站式的数据应用开发管理界面,让用户无需再多方打听探讨,才能确认是否有工具能满足需求,所有的数据开发均可在DSS上找到组件完成。 DSS集成度极高,最新开源版已集成的系统有:
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系统产生的一份数据,通常的做法如下:
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规范,是实现一站式的核心抽象。
NodeService规范和NodeExecution规范,是实现全连通的核心基石。
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生态圈的成长。 |