点亮 ⭐️ Star · 照亮开源之路

在面对联合查询和湖仓一体场景时,Trino 已经是不少开发者的不二之选。Trino 是一个查询引擎,在数仓、即席查询方面非常强大。然而,在整个数仓处理场景中,相信很多数仓用户关注的不仅是查询,还有应用层面的可视化编辑 SQL 能力、失败重试、任务并发控制、SQL 版本管理、任务编排等能力,但这些 Trino 还未提供。幸运地是,Apache DolphinScheduler 作为一个工作流调度平台,最擅长的就是提供这样的能力。如果两者相结合,就可以互相取长补短,补足彼此的能力。
本文中,我们将通过实例,分析 Apache DolphinScheduler 如何与 Trino 结合,满足用户实现 OLAP 业务的需求,同时引入尽可能少的组件,快速实现湖仓一体数据建设。
01
什么是 Trino

02
什么是 DolphinScheduler
平台化:自动处理非业务的逻辑, 如失败重试,并发控制,检控,复杂任务依赖等,让用户更加容易使用 拖拉拽:通过 UI 创建 workflow 首要地位, 同时支持 API 创建, 让 engineer 和 not-engineer 都能很好的使用 HA:Decentralization,原生 HA 队列,保障集群可用性 插件化设计:简单方便地扩展插件,更方便地和用户系统集成,同时有很多内部插件

03
用户场景
公司发展初期 – OLTP阶段
公司发展中期 – OLAP阶段

SELECT count(*), mktsegment, nationkey,CAST(sum(acctbal) AS bigint) AS totalbalFROM customerGROUP BY mktsegment, nationkeyHAVING sum(acctbal) > 5700000ORDER BY totalbal DESC;
面临的问题

INSERT INTO customer_total_balSELECT count(*), mktsegment, nationkey,CAST(sum(acctbal) AS bigint) AS totalbalFROM customerGROUP BY mktsegment, nationkeyHAVING sum(acctbal) > 5700000ORDER BY totalbal DESC;
INSERT INTO package_addr_weightSELECT origin_state, destination_state, origin_zip, sum(package_weight)FROM shippingGROUP BY DISTINCTCUBE (origin_state, destination_state),ROLLUP (origin_state, origin_zip);
INSERT INTO clerk_price_rnkSELECT orderkey, clerk, totalprice,rank() OVER w AS rnkFROM ordersWINDOW w AS (PARTITION BY clerk ORDER BY totalprice DESC)ORDER BY count() OVER w, clerk, rnk









当当前工作流的特定任务成功时,想要触发下游工作流运行,可以使用 DolphinScheduler 中的任务程序 不仅想要基于当前工作流上游任务触发任务,还希望触发其他工作流中的任务,选择任务依赖设置不同工作流中的上游任务 还想在上游任务失败而不是成功时触发一些下游任务,可以根据上游任务状态根据上游任务状态尝试不同的下游任务条件和路线。

Connector 系统压力大导致查询慢或者失败


大量任务并发调度

便于部署定时

补数

任务实例
如果数据问题是由于源数据有问题,你可以将对应 workflow 做重运行 如果是SQL代码更新导致的问题,你可以通过 DolphinScheduler 提供版本管理完成版本的回退

04
Trino + DolphinScheduler

05
总结
05
联合线上活动来啦!
📆时间
2023 年 2 月 22 日,美国芝加哥时间上午 11:00–12:00
注册报名:http://bit.ly/3YVfTty
👬嘉宾
Brian, Developer Advocate,Starburst Data, 致力于促进 Trino 社区发展。
William GUO(郭炜), Apache Foundation Member
Jay Chung(钟嘉杰), Apache DolphinScheduler PMC Member
David(代立冬), Apache DolphinScheduler PMC Chair
👬我们常年开放社区合作,欢迎联系我们进行社区合作,也欢迎来我们的活动进行基于 DolphinScheduler 的用户实践分享。
联系我们:zenghui@apache.org
debra.chen12@gmail.com
参与贡献
随着国内开源的迅猛崛起,Apache DolphinScheduler 社区迎来蓬勃发展,为了做更好用、易用的调度,真诚欢迎热爱开源的伙伴加入到开源社区中来,为中国开源崛起献上一份自己的力量,让本土开源走向全球。

参与 DolphinScheduler 社区有非常多的参与贡献的方式,包括:

贡献第一个PR(文档、代码) 我们也希望是简单的,第一个PR用于熟悉提交的流程和社区协作以及感受社区的友好度。
社区汇总了以下适合新手的问题列表:https://github.com/apache/dolphinscheduler/issues/5689
非新手问题列表:https://github.com/apache/dolphinscheduler/issues?q=is%3Aopen+is%3Aissue+label%3A%22volunteer+wanted%22
如何参与贡献链接:https://dolphinscheduler.apache.org/zh-cn/community/development/contribute.html
来吧,DolphinScheduler开源社区需要您的参与,为中国开源崛起添砖加瓦吧,哪怕只是小小的一块瓦,汇聚起来的力量也是巨大的。
参与开源可以近距离与各路高手切磋,迅速提升自己的技能,如果您想参与贡献,我们有个贡献者种子孵化群,可以添加社区小助手微信(Leonard-ds) ,手把手教会您( 贡献者不分水平高低,有问必答,关键是有一颗愿意贡献的心 )。

添加社区小助手微信(Leonard-ds)
添加小助手微信时请说明想参与贡献。
来吧,开源社区非常期待您的参与。
☞Apache Spark + 海豚调度:PB 级数据调度挑战,教你如何构建高效离线工作流
☞Apache Dolphinscheduler 任务插件版图再添 Linkis,大幅提高计算治理能力
☞Apache DolphinScheduler 动态任务组件设计实现方案,减少前端代码





