开发者社区 > 大数据与机器学习 > 大数据开发治理DataWorks > 正文

DataWorks设置调度参数 当前时间前一个小时的日期?

DataWorks设置调度参数 当前时间前一个小时的日期?

展开
收起
真的很搞笑 2023-11-21 09:18:15 174 0
5 条回答
写回答
取消 提交回答
  • 公众号:网络技术联盟站,InfoQ签约作者,阿里云社区签约作者,华为云 云享专家,BOSS直聘 创作王者,腾讯课堂创作领航员,博客+论坛:https://www.wljslmz.cn,工程师导航:https://www.wljslmz.com

    在DataWorks中设置调度时间时,可以使用cron表达式来指定具体的时间,包括年、月、日、时、分、秒。如果您要设置当前时间前一个小时的日期作为调度时间,可以使用如下的cron表达式:

    0 0 * * * ?
    

    这个表达式的含义是每小时的第0分0秒执行一次,即整点触发。如果您的任务需要在整点之后的某个时间点触发,可以根据实际情况调整分钟和秒数的值,比如:

    0 30 * * * ?
    

    这个表达式的含义是每小时的第30分0秒执行一次,即半点触发。

    2023-11-21 18:55:10
    赞同 1 展开评论 打赏
  • 在DataWorks中设置调度参数以获取当前时间前一个小时的日期,可以参考以下步骤:

    1. 进入节点编辑页面,找到并单击右侧导航栏的"调度配置";
    2. 在调度配置中,配置调度周期。确保节点保存并提交。例如,若需要设置开始时间为当前时间前一个小时,结束时间为当前时间,时间间隔为一小时,调度类型为正常调度,实例生成方式为发布后及时生成,那么您可以设置开始时间为当前时间减去一小时,结束时间为当前时间;
    3. 对于日期和时间的转换,DataWorks会根据节点的调度配置模拟任务调度时的参数转换。您基于转换后的参数值来验证调度参数转换是否正确。如果参数值不符合预期,请根据业务需求及时调整调度配置;
    4. 在节点编辑页面的脚本编辑器中,可以使用一些特定的系统参数来实现动态替换。例如,${bdp.system.cyctime}可以被定义为一个实例的调度日期与调度方式。
    2023-11-21 14:45:47
    赞同 展开评论 打赏
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    在DataWorks中,可以通过以下方式获取当前时间前一个小时的日期:
    $ {bdp.system.bizdate}
    此外,还可以通过以下方式获取当前时间前一个月或一年的日期:
    $ {bdp.system.monthbefore(1)} $ {bdp.system.yearbefore(1)}
    这里的数字表示需要往前移动的月份或年份的数量。例如,{bdp.system.monthbefore(2)}表示当前时间往前两个月的日期,{bdp.system.yearbefore(2)}表示当前时间往前两年的日期。
    请注意,这些调度参数仅适用于DataWorks的任务调度功能,且需要在创建任务时使用这些参数。

    2023-11-21 13:20:27
    赞同 展开评论 打赏
  • 调度参数往前取一个小时,如何处理跨天参数替换的问题
    问题描述
    表分区格式day=yyyymmdd,hour=hh24,执行时小时会取上个小时的数据,使用$[yyyymmdd] $[hh24-1/24]参数可以满足,但0点时会变成当天的23点,该情况如何处理?

    解决办法
    您可修改参数的计算公式,将datetime设置为$[yyyymmdd-1/24],hour的计算公式仍然是$[hh24-1/24]。

    配置说明
    代码中设置day=datetime, hour={hour},
    节点配置参数赋值datetime=[yyyymmdd-1/24],hour=[hh24-1/24]
    实时场景
    如果一个实例的定时时间为2021-7-21 00:00:00,减1小时便是昨天,则$[yyyymmdd-1/24]的值为20210720、$[hh24-1/24]的值为23。
    如果一个实例的定时时间为2021-7-21 01:00:00,减1小时还是今天,则$[yyyymmdd-1/24]的值为20210721、$[hh24-1/24]的值为00。

    https://help.aliyun.com/zh/dataworks/support/scheduling-parameters?spm=a2c4g.11186623.0.i80#section-gjm-ni7-p4c

    2023-11-21 11:13:37
    赞同 展开评论 打赏
  • 如果您希望在DataWorks中设置调度参数以获取当前时间前一个小时的日期,您可以使用以下方法:

    1.修改参数计算公式:您可以修改参数的计算公式,将datetime参数的计算方式修改为[yyyymmdd−1/24],同时保持hour的计算公式为[hh24-1/24]。这样,datetime参数将获取当前时间前一个小时的日期。

    2.处理表的分区格式:如果您的表采用了年月日时分秒间带空格的分区格式(例如pt=yyyy-mm-dd hh24:mi:ss),您可以使用两个自定义变量分别赋值年月日和时分秒,并将datetime参数设置为datetime,hour参数设置为{hour}。这样,datetime参数将根据年月日和时分秒拼接为当前时间前一个小时的日期。

    3.定时任务执行时间:如果您正在使用定时任务,并且希望在每天的特定时间(例如每天的20:00)执行任务,并且希望在上游节点执行异常导致第二天0:00才调起时,参数取值为20:00而不是0:00,您可以考虑以下解决方案:

    (1)在任务配置中,将定时任务的执行时间设置为每天的20:00。这样,当第二天0:00调起时,由于定时任务的时间戳为每天的20:00,因此参数取值仍为20:00。
    (2)在代码中添加逻辑判断。在任务执行前,您可以检查当前时间并判断是否为第二天0:00。如果是,则将参数值设为20:00;否则,根据正常逻辑进行参数计算。

    2023-11-21 10:12:16
    赞同 展开评论 打赏

DataWorks基于MaxCompute/Hologres/EMR/CDP等大数据引擎,为数据仓库/数据湖/湖仓一体等解决方案提供统一的全链路大数据开发治理平台。

相关产品

  • 大数据开发治理平台 DataWorks
  • 热门讨论

    热门文章

    相关电子书

    更多
    DataWorks调度任务迁移最佳实践-2020飞天大数据平台实战应用第一季 立即下载
    DataWorks商业化资源组省钱秘籍-2020飞天大数据平台实战应用第一季 立即下载
    基于DataWorks数据服务构建疫情大屏-2020飞天大数据平台实战应用第一季 立即下载