场景:切换调度时区

在创建DataWorks工作空间时,您需要选择工作空间所在地域,默认情况下DataWorks工作空间所在地域对应的时区即为调度时区(即任务定时调度时间所使用的时区)。同时,还支持您切换工作空间的调度时区,本文为您介绍如何切换调度时区。

背景信息

支持修改调度时区的地域

DataWorks部分地域目前支持多调度时区切换,支持修改调度时区的地域及各地域支持切换的时区如下。

说明

本文所说的UTC时区(UTC+0)时区,该时区的时间与全球标准时间一致,没有时差。

地域

本地时区

UTC时区

Asia/Shanghai时区

美国(硅谷)

America/Los_Angeles

支持

支持

美国(弗吉尼亚)

America/New_York

支持

支持

德国(法兰克福)

Europe/Berlin

支持

支持

新加坡

Asia/Singapore

支持

支持(同本地时区)

中国香港

Asia/Hong_Kong

支持

支持(同本地时区)

日本(东京)

Asia/Tokyo

支持

不支持

(必读)时区切换注意事项

为避免时区切换导致线上业务出错或不符合预期,执行时区切换前请务必仔细阅读以下内容。

分类

说明

修改后影响的工作空间范围

调度时区是地域级别,修改的调度时区在本地域所有工作空间中生效。

修改操作不可逆

调度时区修改后不可更改,请您谨慎操作。

重要

若已在使用DataWorks的阿里云用户想要切换调度时区,需要注意该操作会涉及到存量数据的迁移(已经存在的节点和实例),可能会对业务造成影响,请先查看当前文档关于时区切换的说明,并综合评估后谨慎选择。

修改后影响的配置范围

调度时区切换后将影响DataWorks调度相关配置与代码参数替换(调度参数会根据任务定时时间、业务时间计算的调度参数实际值,作为调度场景下代码的实际入参)等。

重要
  • 底层引擎的时区是由各自引擎自己设置的,与DataWorks调度时区修改无关,所以操作不受调度时区变更影响。

  • 调度时区切换仅对任务调度时间相关属性生效,不涉及引擎时区变更,调度参数实际替换值将按照纯字符串形式下发至引擎侧按自身规则自行处理,关于引擎处理方案请参考引擎时区的相关说明文档。

  • 由于DataStudio中业务流程运行、开发环境冒烟测试操作会进入调度系统,所以代码中时间参数将受调度时区变更影响,但DataStudio中单节点调试、临时查询等操作不走调度,所以不受调度时区变更影响。

时区切换产品侧行为重点

调度时区切换后将会影响DataWorks调度相关配置、调度场景下参数替换以及部分模块界面时间展示等,影响详情如下。

说明
  • 切换调度时区仅对调度场景生效,由于DataStudio大部分操作非调度环境,所以在DataStudio执行任务时,默认仍按照当地时区替换时间参数,例如Datatudio中单节点运行、带参运行、临时查询等操作不受调度时区变更影响。

  • 由于DataStudio中业务流程运行、开发环境冒烟测试操作会进入调度系统,所以节点代码中时间参数将受调度时区变更影响。

一、节点定时时间

节点定时调度时间会按照设置的调度时区变化。定时时间

二、节点时间参数配置

节点调度参数会按照任务相关时间(任务定时时间,业务日期等)为基准值替换代码中的变量,该值会根据的调度时区的改变而改变。

YYYYMMDD=${yyyymmdd} LAST_2D=${yyyymmdd-2}

时间参数设置

三、节点代码中时间相关的处理逻辑

代码里面设置的变量,一部分会在gateway解析,另一部分会在计算引擎侧解析,具体解析逻辑如下:

  • 如果是在gateway上解析的,会按照设置的调度时区变化。调度场景下(不包括数据开发临时运行),若您在DataWorks脚本任务(例如Shell,pyodps)中,直接执行获取时间命令(例如Shell节点中执行date命令),系统会根据您调度时区返回时间。

  • 如果是在底层计算引擎侧解析的,请参考底层计算引擎侧的时区转换规则进行了解,具体请参见对应引擎说明文档。

以下图为例,调度场景下,代码中的时间变量将根据调度时间替换为具体的时间字符串下发至Hive,具体表达的时间,受限于Hive服务端解析逻辑。节点代码

四、基线或告警相关的时间

基线或告警相关的时间会按照设置的调度时区变化。

五、API相关的时间

API相关的时间会按照设置的调度时区变化。

六、底层引擎的时区

底层引擎(例如,数据集成、MaxCompute等)的时区是由各自引擎自己设置的,与DataWorks调度时区无关。调度参数实际替换值将按照纯字符串形式下发至引擎侧按自身规则自行处理,关于引擎处理方案请参考引擎时区的相关说明文档。

说明

如何切换时区

DataWorks调度支持从本地时区切换到其他非本地时区。

场景一:该租户第一次创建项目

在支持切换时区的地域下创建工作空间时,若为全新用户首次创建,会弹窗提示可修改调度时区为非本地时区,具体修改操作需要提交工单联系技术支持人员修改,您可根据业务需要以及(必读)时区切换注意事项评估确认是否需要修改。

场景二:该租户非第一次创建项目

在支持切换时区的地域下创建工作空间时,若需要将已有工作空间调度时区修改为非本地时区,您同样需要提交工单联系技术支持人员修改,但由于涉及到存量数据的迁移(已经存在的节点和实例),可能对业务造成影响,请综合评估。切换大致分为以下几步:

  1. 用户侧:存量数据的影响面评估。

  2. 平台侧:存量数据的迁移。

  3. 平台侧:设置新时区。

  4. 用户侧:存量数据的恢复/新时区的验证。

    建议您对各类型任务进行多次验证以确认任务运行无误。

确认时区切换是否成功

您可前往数据开发的调度配置页面,确认时区是否切换成功,以及当前使用的调度时区。

  1. 进入数据开发页面。

    登录DataWorks控制台,切换至目标地域后,单击左侧导航栏的数据开发与治理 > 数据开发,在下拉框中选择对应工作空间后单击进入数据开发

  2. 进入调度配置页面。

    1. 在数据开发(DataStudio)界面,进入该项目的目标节点的编辑页面。

    2. 单击节点编辑页面右侧导航栏的调度配置,进入节点调度配置页面。

  3. 调度配置页面,显示在时间属性下面的就是当前所在的调度时区。

附录:数据集成相关时间处理

数据集成的时区与DataWorks调度时区无关,调度参数实际替换值将按照纯字符串形式下发至数据集成侧。这里以where条件数据过滤为例gmt_modify >= ${yyyymmdd},这个数据过滤SQL会按照字符串字面值发送给数据源执行,实际执行过滤效果受限于数据源本身时区处理机制。

重要

数据集成同步进程时区属于DataWorks工作空间当地Region时区,同步进程时间不随DataWorks调度时区进行切换,部分数据源同步时会和同步进程时区有关,也请您留意此处约束。