大数跨境

日均处理PB级数据,基于DolphinScheduler的离线数据治理平台实现血缘维护耗时降低95%

日均处理PB级数据,基于DolphinScheduler的离线数据治理平台实现血缘维护耗时降低95% 海豚调度
2025-08-05
1
导读:基于DolphinScheduler的离线数据治理平台,解决了任务依赖黑洞和扩展性瓶颈问题。

点击蓝字,关注我们

本文介绍了基于 DolphinScheduler 的离线数据治理平台,解决了任务依赖黑洞和扩展性瓶颈问题。通过 YAML 动态编译和血缘自动捕获,实现了高效的任务依赖管理和数据追踪。平台使用 Neo4j 图数据库进行血缘存储,支持秒级影响分析和根因定位。此外,结合自研高性能导入工具,大幅提升数据传输效率。


1

背景与挑战


在日均处理PB级数据的背景下,原有调度系统面临两大核心问题:

  1. 任务依赖黑洞:跨系统任务(Hive/TiDB/StarRocks)依赖关系人工维护,故障排查耗时超30分钟
  2. 扩展性瓶颈:单点调度器无法支撑千级任务并发,失败重试机制缺失导致数据延迟率超5%

2

技术选型



3

核心架构设计




关键技术实现:

  1. YAML动态编译
type TaskDAG struct {    Nodes []Node `yaml:"nodes"`     Edges []Edge `yaml:"edges"`}func GenerateWorkflow(yamlPath string) (*ds.WorkflowDefine, error) {    data := os.ReadFile(yamlPath)    var dag TaskDAG    yaml.Unmarshal(data, &dag)    // 转换为DolphinScheduler DAG结构    return buildDSDAG(dag) }
2. 血缘自动捕获
  • 通过拦截SQL执行计划解析输入/输出表
  • 非SQL任务通过Hook捕获文件路径
# StarRocks Broker Load血缘捕获def capture_brokerload(job_id):    job = get_job_log(job_id)    return {      "input": job.params["hdfs_path"],      "output": job.db_table     }


4

核心难题解决方案


  1. 零事故迁移方案
  • 双跑比对:新老系统并行运行,DataDiff工具校验结果一致性
  • 灰度发布:按业务单元分批次切割流量
  • 回滚机制:5分钟内完整回退能力
2. 自研高性能导入工具



核心优化点:

  • 基于Go的协程池实现批量提交
  • 动态缓冲区调整策略
func (w *StarrocksWriter) batchCommit() {    for {        select {        case batch := <-w.batchChan:            w.doBrokerLoad(batch)             // 动态调整batchsize            w.adjustBatchSize(len(batch))         }    }}


5

血缘管理实现


血缘存储采用图数据库Neo4j,实现:

  • 影响分析:表级变更秒级定位影响范围
  • 根因定位:故障时30秒内追踪问题源头
  • 合规审计:满足GDPR数据溯源要求


6

性能收益


原文链接:https://blog.csdn.net/guichenglin/article/details/149216068





用户案例



Zoom网易邮箱 每日互动 惠生工程  作业帮 
博世智驾 蔚来汽车 长城汽车集度长安汽车
思科网讯食行生鲜联通医疗联想
新网银行唯品富邦消费金融 
自如有赞伊利当贝大数据
珍岛集团传智教育Bigo
YY直播  拈花云科太美医疗
Cisco Webex兴业证券




迁移实战



Azkaban   Ooize(当贝迁移案例)
Airflow (有赞迁移案例)
Air2phin(迁移工具)
Airflow迁移实践



发版消息




Apache DolphinScheduler 3.2.2版本正式发布!
Apache DolphinScheduler 3.2.1 版本发布:增强功能与安全性的全面升级
Apache DolphinScheduler 3.3.0 Alpha发布,功能增强与性能优化大升级!




加入社区



关注社区的方式有很多:

  • GitHub: https://github.com/apache/dolphinscheduler
  • 官网:https://dolphinscheduler.apache.org/en-us
  • 订阅开发者邮件:dev@dolphinscheduler@apache.org
  • X.com:@DolphinSchedule
  • YouTube:https://www.youtube.com/@apachedolphinscheduler
  • Slack:https://join.slack.com/t/asf-dolphinscheduler/shared_invite/zt-1cmrxsio1-nJHxRJa44jfkrNL_Nsy9Qg

同样地,参与Apache DolphinScheduler 有非常多的参与贡献的方式,主要分为代码方式和非代码方式两种。

📂非代码方式包括:

完善文档、翻译文档;翻译技术性、实践性文章;投稿实践性、原理性文章;成为布道师;社区管理、答疑;会议分享;测试反馈;用户反馈等。

👩‍💻代码方式包括:

查找Bug;编写修复代码;开发新功能;提交代码贡献;参与代码审查等。

贡献第一个PR(文档、代码) 我们也希望是简单的,第一个PR用于熟悉提交的流程和社区协作以及感受社区的友好度。

社区汇总了以下适合新手的问题列表https://github.com/apache/dolphinscheduler/pulls?q=is%3Apr+is%3Aopen+label%3A%22first+time+contributor%22

优先级问题列表https://github.com/apache/dolphinscheduler/pulls?q=is%3Apr+is%3Aopen+label%3Apriority%3Ahigh

如何参与贡献链接https://dolphinscheduler.apache.org/zh-cn/docs/3.2.2/%E8%B4%A1%E7%8C%AE%E6%8C%87%E5%8D%97_menu/%E5%A6%82%E4%BD%95%E5%8F%82%E4%B8%8E_menu

如果你❤️小海豚,就来为我点亮Star吧!

https://github.com/apache/dolphinscheduler


你的好友秀秀子拍了拍你

并请你帮她点一下“分享”

【声明】内容源于网络
0
0
海豚调度
Apache DolphinScheduler是一个分布式、去中心化、易扩展的可视化DAG工作流任务调度系统,其致力于解决数据处理流程中错综复杂的依赖关系,使调度系统在数据处理流程中开箱即用。
内容 667
粉丝 0
海豚调度 Apache DolphinScheduler是一个分布式、去中心化、易扩展的可视化DAG工作流任务调度系统,其致力于解决数据处理流程中错综复杂的依赖关系,使调度系统在数据处理流程中开箱即用。
总阅读167
粉丝0
内容667