首页 > 大数据 > 可视化 > 从开源使用者到Apache PPMC之路
近日 , 观远数据联合创始人 & 首席架构师吴宝琪 , 作为 Apache DolphinScheduler 的 PPMC 参加了 Apache DolphinScheduler 的首届用户大会 , 并在大会上做了《从开源使用者到 Apache PPMC 之路》的分享 , 以下是分享的主要内容 .
Table of Contents
• 1. Part 1. 缘起
o 1.1. 阶段 1, Airflow 本身是非常强大的 , 我们也做了大量的 Operator 扩展
o 1.2. 阶段 2, Apache NiFi 和 StreamSets Data Collector ( 简称 SDC)
o 1.3. 阶段 2.5, Kettle 和 Talend DI
o 1.4. 阶段 3, 开始调研各种开源调度项目 , 并最终选定 DolphinScheduler
• 2. Part 2. 开工
o 2.1. 在项目中做的贡献
o 2.2. 简单谈谈为什么贡献开源
o 2.3. 开源的收获
• 3. Part 3. 未来
o 3.1. 打算探索的一些功能
1 Part 1. 缘起
观远数据是一家 BI + AI 的数据科技公司 . 比如 : 对于 BI(Business Intelligence, 商业智能 ) 来说 , 并不简单的是酷炫的可视化 , 而是会涉及到大量的外部系统对接和数据融合 , 这里都会牵扯到复杂的数据清洗和任务调度 . 虽然我们的 BI 中也内置了轻量的数据处理模块 , 但是 , 对于更复杂的任务调度 / 补数据等需求 , 以及 AI 产品中的一些数据清洗 / 特征工程 / 调度等 , 我们也在寻找更适合的开源工具 .
1.1 阶段 1, Airflow 本身是非常强大的 , 我们也做了大量的 Operator 扩展

不过 Airflow 有个主要问题 : " 太依赖于 Python 编程 , 需要做大量的 Python 扩展 , 任务的依赖编排都要通过写 Python 实现 "
而我们对于调度工具的主要定位是 : 需要顾问同事也能实施 . 对于不会编程序的顾问同事来说 , 要求每个人都写 Python 太难了 . 所以我们得出的结论 : 需要一个有不错的可视化界面的 web 工具 , 不能假设用户都会编程序 .
1.2 阶段 2, Apache NiFi 和 StreamSets Data Collector ( 简称 SDC)
主要结论 :
虽然 SDC 很吸引人 , 不过 SDC 主要场景还是实时数据抽取转化 . BI 仍是离线定时任务为主 , 所以不是完全匹配 .
1.3 阶段 2.5, Kettle 和 Talend DI
主要结论 :
但是这两个项目的代码都十分复杂 , 阅读 / 掌握代码基本上太难 , 而对于是否使用一个开源项目的一个很重要的考量指标是 : 是否自己公司的同事能掌握这个项目 .
1.4 阶段 3, 开始调研各种开源调度项目 , 并最终选定 DolphinScheduler
主要结论 : DolphinScheduler ( 加入 Apache 前叫 EasyScheduler) 更适合我们的场景 . 主要原因 :
2 Part 2. 开工
作为公司的首席架构师 , 一部分的工作是思考和尝试一些公司的未来方向 , 所以 , 开始对于 DolphinScheduler 的贡献公司内部主要是我一个人奋斗 ( 当然我不是一个人 , 我是和开源社区的很多很多小伙伴们一起奋斗 ), 不过现在公司内部也有其他伙伴在和我一起为开源做贡献 .
2.1 在项目中做的贡献
主要的方式是 : 从简单到复杂 , 逐步融入社区
最开始 :
接下来可以做一些简单的功能 :
接下来就可以做一些更复杂些的功能了 :
当然 , 贡献不是光指合并的 pull request. 而还包括 :
2.2 简单谈谈为什么贡献开源
为开源做贡献也是一个必然的选择 . 我之前在前公司就遇到过这么一个项目 : ( 具体的公司 / 项目名就隐藏了 )
开始一切都很美好 ,
直到某一天 , PM 过来说 :
结果 , 负责升级的同事升级了 6 个月 . 他每天做的工作就是如下三件事 :
后来 , 我们反思 , 除了 C++ 和跨平台编译等原因外 , 另一个重要结论就是 : 对于使用的开源软件 , 一定要想方设法把扩展 /bugfix 合并到官方 repository 中 , 这样长期来看会大大减少维护成本 .
2.3 开源的收获
开源软件发展到今天
为开源做贡献 , 不只是能获得到 apache 邮箱 , 也能同时 :
3 Part 3. 未来
3.1 打算探索的一些功能
我心中的 DolphinScheduler ( 不负责任瞎想 ) 未来架构 , 当然 , 这个只是一个设想 , DolphinScheduler 目前架构不是如此 , 未来也不会完全一样 , 只是个人的一种对于通用数据调度平台的想法
以上是我对于参与 DolphinScheduler 开源项目的经历的简单分享 , 因为主要面向技术人员 , 所以没有介绍太多比较虚的项目背景 , 项目意义 , 未来方向等内容 . 提前剧透一下 , 根据文章反馈 , 未来适当时间也会介绍一些观远怎么基于 DolphinScheduler 做的一些未来产品 . Stay Tuned!
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69926423/viewspace-2664060/ ,如需转载,请注明出处,否则将追究法律责任。