DataWorks多个shell使用$bizdate参数,会出现,【bizdate=20230305】和【20230305】两种结果,我在shell里面判断长度解决了,但是不是很舒服,也没有明白是为什么?我这个空间是张家口,简单模式
在 DataWorks 中,$bizdate 参数是通过调度系统传递给 Shell 节点的,其值取决于调度任务运行的时间。在一个工作流中,如果多个 Shell 节点都使用了 $bizdate 参数,但其运行时间却略有不同,就可能会出现两种结果。
例如,假设有一个工作流,其中有两个 Shell 节点分别使用了 $bizdate 参数,并且这两个节点都在调度系统中设置为按照 day 进行调度。然而,由于节点的运行时间略有不同,比如第一个节点运行在 2022-02-15 00:01,而第二个节点运行在 2022-02-15 02:00,那么 $bizdate 参数值在两个节点中所代表的时间就不同了。对于第一个节点,$bizdate 的值为 2022-02-14,而对于第二个节点,$bizdate 的值为 2022-02-15。因此,这两个节点中使用 $bizdate 参数所得到的结果就会不同。
要解决这个问题,可以考虑在调度系统中将这两个 Shell 节点设置为同一时间点运行,或者在工作流中引入其他变量,代替 $bizdate 参数,使得节点能够根据同一个变量值进行计算。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
DataWorks基于MaxCompute/Hologres/EMR/CDP等大数据引擎,为数据仓库/数据湖/湖仓一体等解决方案提供统一的全链路大数据开发治理平台。