DataWorks我有一个初始化的任务,还有一个周期性的任务,两个节点的输出是一致的。但在我配置周期性任务时,提示不能有相同的输出节点。我应该如何做?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
这是一个比较常见的场景:有一个初始化任务用来产生初始数据,然后用一个周期性任务维护和更新该数据。
DataWorks不建议两个任务有相同的输出,主要有以下原因:
数据冲突:如果两个任务同时运行,可能会覆盖或损坏每个任务产生的数据。
难以调度:后续任务很难正确依赖两个任务的输出,因为它们产生的是同一个数据。
数据lineage混乱:系统无法准确记录数据的来源。
扩容困难:如果需要扩展一个任务,很难将依赖切换到正确的任务上。
所以DataWorks在配置周期性任务时会提示"不能有相同的输出节点"。
建议的处理方法是:
初始化任务和周期任务产生不同的输出。
周期任务初始化时,读取初始化任务的输出作为初始数据。
后续周期任务按照正常逻辑更新数据。
后续依赖任务,都直接依赖周期任务的输出。
通过这种方式,可以实现两个任务的逻辑,又保证他们的输出是唯一的。
DataWorks基于MaxCompute/Hologres/EMR/CDP等大数据引擎,为数据仓库/数据湖/湖仓一体等解决方案提供统一的全链路大数据开发治理平台。