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

本文涉及的产品
大数据开发治理平台DataWorks,资源组抵扣包 750CU*H
简介: 很多同学不明白,业务日期和定时时间的区别。我们做离线统计,最常见的是今天处理昨天的数据。这里今天就是运行日期(也叫定时时间),昨天就是业务日期。

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

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

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

相关实践学习
基于Hologres轻量实时的高性能OLAP分析
本教程基于GitHub Archive公开数据集,通过DataWorks将GitHub中的项⽬、行为等20多种事件类型数据实时采集至Hologres进行分析,同时使用DataV内置模板,快速搭建实时可视化数据大屏,从开发者、项⽬、编程语⾔等多个维度了解GitHub实时数据变化情况。
目录
相关文章
|
SQL 分布式计算 Unix
阿里云-DataWorks- ODPS SQL开发3-日期与字符、数学运算、聚合函数函数
阿里云-DataWorks- ODPS SQL开发3 本文主要讲解日常大量会接触到的一些常用的日期与字符、数学运算、聚合函数函数。
|
SQL 数据采集 DataWorks
DataWorks产品使用合集之怎么按指定的日期统计
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
117 0
|
数据采集 DataWorks 监控
DataWorks产品使用合集之如何配置指定日期进行调度任务
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
219 0
|
资源调度 DataWorks 安全
DataWorks产品使用合集之在离线同步任务中,可以使用函数对日期和时间参数进行拼接吗
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
204 7
|
SQL 数据采集 DataWorks
DataWorks产品使用合集之如何处理时间格式中含有空格的日期和时间字段,并将其拼接成一个完整的字符串
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
171 0
|
运维 DataWorks 大数据
DataWorks常见问题之DataWorks补数据日期不按顺序排如何解决
DataWorks是阿里云提供的一站式大数据开发与管理平台,支持数据集成、数据开发、数据治理等功能;在本汇总中,我们梳理了DataWorks产品在使用过程中经常遇到的问题及解答,以助用户在数据处理和分析工作中提高效率,降低难度。
|
SQL DataWorks NoSQL
DataWorks常见问题之如何自定义日期参数
DataWorks是阿里云提供的一站式大数据开发与管理平台,支持数据集成、数据开发、数据治理等功能;在本汇总中,我们梳理了DataWorks产品在使用过程中经常遇到的问题及解答,以助用户在数据处理和分析工作中提高效率,降低难度。
498 0
|
运维 DataWorks 调度
DataWorks百问百答12:定时时间到了,任务为什么还不运行呢?
DataWorks百问百答12:定时时间到了,任务为什么还不运行呢?
2465 0
|
分布式计算 DataWorks MaxCompute
使用Dataworks同步Elasticsearch至MaxCompute 日期类型为\N的解决办法
Dataworks同步阿里云ES到MaxCompute中时间格式为/N的解决方案
|
DataWorks 测试技术 调度
DataWorks:通过业务时间维度来看自定义参数“[ ]”与“{ }”的区别
DataWorks:通过业务时间维度来看自定义参数“[ ]”与“{ }”的区别
4574 0