从一个项目成长到今天,Apache 软件基金会(ASF)已经成为目前为止全球最大的开源软件基金会,维护着包括 350 多个顶级项目以及数十个孵化器项目,为全球提供着几十亿甚至上百亿美元市值的开源软件,是推动全球开源软件发展的重要力量。
伴随着全球开源项目数量的迅速增长,我们很高兴看到越来越多中国的开发者与开源项目加入,以及越来越多高质量项目的涌现。种种迹象表明,中国在国际基金会的影响力愈发重要。
今年,CommunityOverCode Asia(原 ApacheCon Asia)作为 Apache 软件基金会的官方全球系列大会首次在中国举办线下活动, Apache Linkis项目的核心成员共赴此次开源技术盛宴。
以下内容为Apache Linkis PMC 王和平在活动中的分享内容。
《基于 Apache Linkis 快速高效构建数据应用工具》
Apache Linkis 构建了一层计算中间件,方便上层应用与底层数据引擎之间的连接、治理和编排。通过计算中间件将应用层和引擎层解耦,以标准化可复用的方式简化复杂的网状调用关系,降低数据平台的复杂度。涉及金融、电信、制造和互联网等各个行业,会上来自
王和平老师(微众银行大数据平台高级工程师、 Apache Linkis PMC 成员)分享了——如何基于Apache Linkis快速高效构建数据应用工具的主题演讲。
上层的各种数据应用工具,需要连接底层多样化的计算存储引擎。在上层应用工具和底层引擎之间,实际上是存在一层如图所示的“连接层”的。例如做数据应用开发时要用到的IDE工具,可能既要能对接OLAP 类的Spark、Presto等引擎,又要能对接OLTP类的ES、TiDB等引擎,甚至可能还要对接机器学习相关的Python Anaconda环境、Tensorflow等引擎。大家可能会想到例如Apache Zeppelin对吧。这些对接、连通的工作,是每一个上层数据应用工具都要去做的,这样整体的开发和维护的工作量就会越来越大、越来越复杂。
这也是我们为什么要做Linkis项目的原因,在没有Linkis之前,我们也遇到了上述问题,上层应用工具和底层引擎之间是个复杂的网状结构,可以很直观的看得出耦合度高,复杂度高,复用度低,每个上层应用工具都需要各自自行解决各种计算治理问题。
而有了Linkis之后(如上图),上层应用工具,通过对接和利用Linkis计算中间件的能力,来统一解决连通性、可扩展性、可管控性、编排、可复用性等这些计算治理相关问题,达到一个解耦、高度复用、整体架构更清晰简洁的效果。
这里展示的是Linkis的架构图,Linkis 主要由三组服务组成:
1. 计算治理服务组,CGS:Computation Governance Services.完成计算任务和请求的提交、准备、执行、返回结果等主要步骤
2. 公共增强服务组
,PES:Public Enhancement Services. 主要提供了统一数据源、物料库、上下文等能力
3. 微服务治理服务组
,MGS:Microservice Governance Services,该组服务主要复用了SpringCloud的能力。
以上共同构建了 Linkis 的核心优势,
通过将Linkis作为计算中间件连接底层和引擎,为企业级数据平台提供连通、简化、扩展、管控、复用等能力。
当我们去开发一个新的数据应用工具时我们会遇到什么问题,比如我们拿IDE工具举例:
会发现除了应用本身需要关心的功能,存在很多重复工作,并且互相割裂
在没有统一基座的情况下,数据分析工具需要支持不同数据源的查询和分析,并具有数据源管理能力。同样,数据质量工具也需要完成不同数据源的质量校验和管理。
在许多情况下,用户需要对数据分析工具的结果进行数据质量校验。如果这两个工具之间无法连通,可能需要先将数据分析结果存储到表中,然后再进行数据质量校验。同时,还有许多其他的重合的功能,如UDF、变量、参数管理等。这些功能不仅增加了多个工具的开发成本,而且为用户提供的能力可能并不相同,且
无法互联互通,造成割裂。这也是各个公司都需要一个数据应用开发基座的原因,去快速高效构建数据应用工具,并且做到互联互通等优势。
Part 03 Linkis提供了什么样的基座能力
Part 04 通过Linkis构建数据应用工具的实际案例
前面讨论了Linkis作为数据应用开发基座的优点与易用性,现在我们来看实际案例。下图展示的是数据开发集成工具IDE(Scriptis)和数据治理工具(Qualitis)接入Linkis的示意图。Scriptis基于Linkis进行开发,因此基本上只包含前端代码,只需关注前端交互便可实现出色的用户体验。类似地,Qualitis只需关注数据质量校验规则,无需操心任务的高并发和多租户控制,可以复用Linkis提供的数据源、UDF、配置参数、变量等基座能力。
同时,因为这两款工具都基于Linkis的基础之上进行开发的,所以这些公共的基座能力是互联互通的,在Scriptis上面定义的一个UDF,可以直接在Qualitis进行使用,IDE分析的一个结果可以在Qualitis上面直接进行校验,不需要将结果落入对应的库表中。这不仅大大节省了两个工具的开发成本,而且还可以打破工具间的应用孤岛,提高用户体验。
上图展示的是已经和Linkis 做了对接的一些开源项目,这些上层应用工具项目,都是通过Linkis来提交和管理各种类型引擎的任务,把Linkis 当成了一个开发基座,极大的降低了上层应用工具在连通、扩展、管控等计算治理方面的开发工作量,让上层应用工具只需专注于其自身的功能性需求。例如Scriptis 这个IDE工具,本身只有一些前端代码,都是一些JS、CSS等,后台完全基于Linkis。
未来我们也将引导和推动更多的上层工具系统,和底层引擎,去与Linkis对接集成,丰富其生态, 更多内容可至 WeDatasphere社区了解。
1 ► 官方文档贡献。发现文档的不足、优化文档,持续更新文档等方式参与社区贡献。通过文档贡献,让开发者熟悉如何提交PR和真正参与到社区的建设。参考攻略:保姆级教程:如何成为Apache Linkis文档贡献者
2 ► 代码贡献。我们梳理了社区中简单并且容易入门的的任务,非常适合新人做代码贡献。请查阅新手任务列表:https://github.com/apache/incubator-linkis/issues/1161
3 ► 内容贡献:发布WeDataSphere开源组件相关的内容,包括但不限于安装部署教程、使用经验、案例实践等,形式不限,请投稿给小助手。例如:
4 ► 社区答疑:积极在社区中进行答疑、分享技术、帮助开发者解决问题等;
5 ► 其他:积极参与社区活动、成为社区志愿者、帮助社区宣传、为社区发展提供有效建议等;
本文分享自微信公众号 - WeDataSphere(gh_273e85fce73b)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。