热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

DataWorks中业务日期和定时时间的理解

业务日期和定时时间结合调度参数使用关于调度参数的使用,可以参考一下官网文档:参数配置。给大家解析一下这篇文档:DataWorks调度系统参

业务日期和定时时间结合调度参数使用

关于调度参数的使用,可以参考一下官网文档:参数配置。
给大家解析一下这篇文档:

DataWorks调度系统参数:

调度系统参数:这两个调度系统参数无需赋值,可直接使用。

  • ${bdp.system.cyctime}:定义为一个实例的定时运行时间,默认格式为:yyyymmddhh24miss。
  • ${bdp.system.bizdate}:定义为一个实例计算时对应的业务日期,业务日期默认为运行日期的前一天,默认以 yyyymmdd 的格式显示(业务日期不精确到时分秒)。

DataWorks 自定义调度参数:有时候我们需要对时间参数进行加减,此时使用调度系统参数已经无法满足我们的需求了。面对这种情况,DataWorks 提供了自定义调度参数,用户可根据自己的业务需求,灵活的对时间参数进行加减,完美的解决各种复杂的场景。

自定义系统参数

自定义系统参数是以 bdp.system.cyctime 为基准的,任何的时间加减都是以定时时间为基线,向上或者向下移动。

举个例子:

代码为: select ${today} from dual ;

注 :其中 ${today} 是声明变量

调度配置为:today = $[yyyymmdd]

注:其中 $[yyyymmdd] 是给声明的变量赋值

测试运行的时候,选择的业务日期是 20180305,测试运行时,日志中打印出来的实际运行sql为:select 20180306 from dual;

附上一张步骤图

image

敲黑板:请注意调度参数的配置时 , 声明变量的符号和赋值的符号是不一样的,详情如下:

  • ${} 这个符号是声明变量时使用的;
  • $[] 这个符号是给变量赋值的时候使用的;

以下提供一些调度参数的赋值方法:

  • 后N年:$[add_months(yyyymmdd,12*N)]
  • 前N年:$[add_months(yyyymmdd,-12*N)]
  • 后N月:$[add_months(yyyymmdd,N)]
  • 前N月:$[add_months(yyyymmdd,-N)]
  • 后N周:$[yyyymmdd+7*N]
  • 前N周:$[yyyymmdd-7*N]
  • 后N天:$[yyyymmdd+N]
  • 前N天:$[yyyymmdd-N]
  • 后N小时:$[hh24miss+N/24]
  • 前N小时:$[hh24miss-N/24]
  • 后N分钟:$[hh24miss+N/24/60]
  • 前N分钟:$[hh24miss-N/24/60]

小时级调度的例子

例一

业务场景1:查看业务日期为 20180305 的小时任务,上午 3 点的实例,运行时执行的代码。

代码:select ${min} from dual ;

注:其中 ${min} 是声明变量

调度配置:min = $[yyyymmddhh24miss]

注:其中 $[yyyymmddhh24miss] 是给声明的变量赋值

测试运行时,日志中的运行代码为:select 20180306030000 from dual ;

例二

业务场景2:如何获得业务日期为 20180305 的小时任务,上午 3 点的实例,前 15 分钟的时间。

代码 : select ${min} from dual;

注:其中 ${min} 是声明变量

调度配置:min = $[yyyymmddhh24miss-15/24/60]

注:其中 $[yyyymmddhh24miss-15/24/60] 是给声明的变量赋值

测试运行时,日志中的运行代码为:select 20180306024500 from dual ;

测试调度参数

有不少同学可能没有接触过如何测试调度参数,这里放上我之前写的一篇文章《解析Dataworks中的运行和测试运行的区别》 ,调度参数和测试运行是需要结合使用的,没有经过调度系统,调度参数是无法生效的。

注:如果对此还有不了解的地方,请加入钉钉群,AT 彭敏 & 李珍珍获取技术支持。

image



推荐阅读
  • MySQL的查询执行流程涉及多个关键组件,包括连接器、查询缓存、分析器和优化器。在服务层,连接器负责建立与客户端的连接,查询缓存用于存储和检索常用查询结果,以提高性能。分析器则解析SQL语句,生成语法树,而优化器负责选择最优的查询执行计划。这一流程确保了MySQL能够高效地处理各种复杂的查询请求。 ... [详细]
  • PHP 使用 Cookie 进行访问授权的方法
    本文介绍了如何使用 PHP 和 Cookie 实现访问授权,包括表单验证、数据库查询和会话管理等关键步骤。 ... [详细]
  • 本文介绍了在 MySQL 中如何使用正则表达式来提高查询效率,通过具体示例展示了如何筛选包含中文字符的记录,并详细解释了正则表达式的各种特殊字符和结构。 ... [详细]
  • 本文介绍如何在将数据库从服务器复制到本地时,处理因外键约束导致的数据插入失败问题。 ... [详细]
  • importpymysql#一、直接连接mysql数据库'''coonpymysql.connect(host'192.168.*.*',u ... [详细]
  • Oracle 用户锁定问题及解决方法
    本文介绍了如何在 Oracle 数据库中检查和处理用户锁定问题,包括查询被锁定的用户、解锁用户以及调整登录失败次数限制的方法。 ... [详细]
  • 如何在Java中使用DButils类
    这期内容当中小编将会给大家带来有关如何在Java中使用DButils类,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。D ... [详细]
  • 本文总结了在SQL Server数据库中编写和优化存储过程的经验和技巧,旨在帮助数据库开发人员提升存储过程的性能和可维护性。 ... [详细]
  • 本文详细介绍了数据库并发控制的基本概念、重要性和具体实现方法。并发控制是确保多个事务在同时操作数据库时保持数据一致性的关键机制。文章涵盖了锁机制、多版本并发控制(MVCC)、乐观并发控制和悲观并发控制等内容。 ... [详细]
  • php更新数据库字段的函数是,php更新数据库字段的函数是 ... [详细]
  • 秒建一个后台管理系统?用这5个开源免费的Java项目就够了
    秒建一个后台管理系统?用这5个开源免费的Java项目就够了 ... [详细]
  • MySQL Decimal 类型的最大值解析及其在数据处理中的应用艺术
    在关系型数据库中,表的设计与SQL语句的编写对性能的影响至关重要,甚至可占到90%以上。本文将重点探讨MySQL中Decimal类型的最大值及其在数据处理中的应用技巧,通过实例分析和优化建议,帮助读者深入理解并掌握这一重要知识点。 ... [详细]
  • C# 中 SQLite 报错:在 "\\s\\" 附近出现语法错误,如何解决? ... [详细]
  • 在处理数据库中所有用户表的彻底清除时,目前尚未发现单一命令能够实现这一目标。因此,需要采用一种较为繁琐的方法来逐个删除相关表及其结构。具体操作可以通过编写PL/SQL脚本来实现,该脚本将动态生成并执行删除表的SQL语句。尽管这种方法相对复杂,但在缺乏更简便手段的情况下,仍是一种有效的解决方案。未来或许可以通过数据库管理工具或更高版本的数据库系统提供更简洁的处理方式。 ... [详细]
  • 在使用达梦数据库时,管理员可能会遇到连接频繁中断或特定SQL语句语法错误的问题。这些问题通常源于开发人员在创建对象时的不规范操作。为了解决这些问题,建议对数据库配置进行优化,并确保所有SQL语句符合达梦数据库的标准语法。此外,定期检查和维护数据库连接参数,以及对异常日志进行详细分析,也有助于及时发现并解决问题。 ... [详细]
author-avatar
小琪宝宝2010
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有