数据分析师作为企业数据资产的缔造者之一,具备肯定的维度与指标体系治理、血统剖析、ETL 调度平台等技能。可能灵便应用调度平台会为数据分析师带来很大的便当,然而对于编程技能程度参差不齐的数据分析师来说,一个操作简略,应用成本低的调度平台能力让他们锦上添花,而不是减少额定的学习老本。
与大多企业相比,自若大数据平台的独特之处在于,大量的数仓加工并非由业余的数仓工程师实现,而是由数据分析师所做。而自若的数据分析师之所以可能做到业余团队能力实现的简单的数据处理、剖析工作,与其调度零碎迁徙到 Apache DolphinScheduler 分不开。
在不久前的 Apache DolphinScheduler& Apache ShenYu(Incubating) Meetup 上,自若大数据研发经理 刘涛,为咱们分享了受数据分析师们欢送的调度零碎是什么样的。
刘涛
自若大数据研发经理,负责自若大数据根底平台构建,建设一站式大数据开发平台。
01 自若大数据平台现状
自若大数据平台
上图是自若大数据离线平台的简略图示,数据源包含 MySQL、Oracle 等业务库数据,以及各种日志数据,通过 Hive 离线 T 加 1 采集、另外应用 Hive acid 加上 Flink 实现了一个 10 分钟级别的业务库数据更新。
数据加工是分析师关怀的局部,这个过程能够配置调度、配置依赖和 SQL 开发。而在数据落地上,咱们采纳了 ClickHouse 的 OLAP 引擎,数据应用层应用网易无数提供报表平台。
自若的大数据平台与业界大多数平台相差不大,但独特之处在于除了反对业余数仓开发工程师外,大量的数据分析师参加到了数仓加工之中。这就要求大数据平台要足够简化。
02 分析师的冀望
因为数据分析师的编码程度参差不齐,有些分析师会写 SQL,而有些分析师基本不会写 SQL。即便是对于会写 SQL 的分析师,在面对工作依赖概念的了解上,也会感觉难度很大。
因而,分析师群体对于调度的冀望是要简略,上手成本低。
03 Airflow 的实现形式
一开始,自若选用的是 Airflow,应用 Airflow 可视化插件 Airflow DAG createmanager plug-in 来供分析师用,底层应用 hivepartitionsensor,用数据依赖的形式配置调度,便于分析师了解和应用,这套解决方案,对于分析师来说体验尚可,然而面临几个较大的问题:
数据依赖的底层实现导致的工作重跑非常复杂;
任务量比拟多后,调度性能较差,有些工作调起提早较大;
与一站式大数据开发平台集成二开老本比拟高;
原生不反对多租户。
04 Apache DolphinScheduler 革新与 Airflow 工作迁徙
以上几个比拟重要的挑战,促使咱们从新进行调度选型。通过比照剖析后,咱们抉择了 Apache DolphinScheduler。
对于分析师来说,数据依赖是一个好了解的概念,但工作依赖就比拟让人费解。
比拟现实的计划是对分析师展现的是数据依赖,底层实现是工作依赖,并且这数据依赖是自动生产的,不须要分析师手动输出依赖表。
做到这一点,首先须要解决一个问题,如何依据一段 SQL,判断出这段 SQL 的输入输出表?
因为是在 Hive 的环境中,所以须要看下 Hive sql 的解析过程。
如上图所示 hive 利用 antlr 进行语法和语义解析,生成形象语法树。举例,如下一段 sql 语句:
解析成的语法树:
遍历这棵形象语法树就能够精确取得输入输出,咱们发现并不需要从头来做,Hive 147 中就实现了这个性能。
https://issues.apache.org/jir…
咱们解析了输入输出之后,就能够把输入输出表和对应的 Apache DolphinScheduler 调度工作关联起来,这样就实现了对分析师看到的是数据依赖,底层实现是工作依赖。当然这种实现就会让每个工作都很小,大部分工作都是只最终产出一张表,调度数量会比拟多,但目前来看,没有带来性能问题。
这之后就是面临的如何把 Airflow 中的工作平滑的迁徙到 Apache DolphinScheduler 中,Airflow 的工作都是一个个 Python 文件,Airflow 的调度器不停地扫描 Pyhton 文件所在文件目录,生成调度工作。外围实现类就是上图中的 DagFileProcessorManager,咱们就能够参考这个类的实现来解析 Python 工作,生成 Apache DolphinScheduler 工作定义须要的 Json 串,从而实现调度工作的迁徙。
最初是做个广告,咱们是自若大数据根底平台,负责大数据的部署、运维、监控、优化、二开,并且在此之上构建一站式的大数据开发平台,欢送退出咱们。
我的分享就到这里,感激大家!
05 特别感谢
联结主办方
Apache ShenYu(Incubating)
合作方
示说网、开源中国、CSDN、稀土掘金、开源社、SeaTunnel 社区、思否 和 ALC 北京
礼品资助
YY 直播
Apache ShenYu(Incubating)
感激主持人,低代码无代码平台 Treelab 张德通,以及流动志愿者 曹陆地 对本场流动的大力支持!
参加奉献
随着国内开源的迅猛崛起,Apache DolphinScheduler 社区迎来蓬勃发展,为了做更好用、易用的调度,真挚欢送酷爱开源的搭档退出到开源社区中来,为中国开源崛起献上一份本人的力量,让外乡开源走向寰球。
参加 DolphinScheduler 社区有十分多的参加奉献的形式,包含:
奉献第一个 PR(文档、代码) 咱们也心愿是简略的,第一个 PR 用于相熟提交的流程和社区合作以及感触社区的友好度。
社区汇总了以下适宜老手的问题列表:https://github.com/apache/dol…
非老手问题列表:https://github.com/apache/dol…
如何参加奉献链接:https://dolphinscheduler.apac…
来吧,DolphinScheduler 开源社区须要您的参加,为中国开源崛起添砖加瓦吧,哪怕只是小小的一块瓦,汇聚起来的力量也是微小的。
参加开源能够近距离与各路高手切磋,迅速晋升本人的技能,如果您想参加奉献,咱们有个贡献者种子孵化群,能够增加社区小助手微信(Leonard-ds),手把手教会您(贡献者不分程度高下,有问必答,要害是有一颗违心奉献的心)。
增加小助手微信时请阐明想参加奉献。
来吧,开源社区十分期待您的参加。