全部產品
Search
文件中心

DataWorks:情境:切換調度時區

更新時間:Jun 19, 2024

在建立DataWorks工作空間時,您需要選擇工作空間所在地區,預設情況下DataWorks工作空間所在地區對應的時區即為調度時區(即任務定時調度時間所使用的時區)。同時,還支援您切換工作空間的調度時區,本文為您介紹如何切換調度時區。

背景資訊

支援修改調度時區的地區

DataWorks部分地區目前支援多調度時區切換,支援修改調度時區的地區及各地區支援切換的時區如下。

說明

本文所說的UTC時區(UTC+0)時區,該時區的時間與全球標準時間一致,沒有時差。

地區

本地時區

UTC時區

Asia/Shanghai時區

美西

America/Los_Angeles

支援

支援

美東

America/New_York

支援

支援

德國

Europe/Berlin

支援

支援

新加坡

Asia/Singapore

支援

支援(同本地時區)

中國(香港)

Asia/Hong_Kong

支援

支援(同本地時區)

(必讀)時區切換注意事項

為避免時區切換導致線上業務出錯或不符合預期,執行時區切換前請務必仔細閱讀以下內容。

分類

說明

修改後影響的工作空間範圍

調度時區是地區層級,修改的調度時區在本地區所有工作空間中生效。

修改操作無法復原

調度時區修改後不可更改,請您謹慎操作。

重要

若已在使用DataWorks的阿里雲使用者想要切換調度時區,需要注意該操作會涉及到存量資料的遷移(已經存在的節點和執行個體),可能會對業務造成影響,請先查看當前文檔關於時區切換的說明,並綜合評估後謹慎選擇。

修改後影響的配置範圍

調度時區切換後將影響DataWorks調度相關配置與代碼參數替換(調度參數會根據任務定時時間、業務時間計算的調度參數實際值,作為調度情境下代碼的實際入參)等。

重要
  • 底層引擎的時區是由各自引擎自己設定的,與DataWorks調度時區修改無關,所以操作不受調度時區變更影響。

  • 調度時區切換僅對任務調度時間相關屬性生效,不涉及引擎時區變更,調度參數實際替換值將按照純字串形式下發至引擎側按自身規則自行處理,關於引擎處理方案請參考引擎時區的相關說明文檔。

  • 由於Datatudio中商務程序運行、開發環境煙霧測試 (Smoke Test)操作會進入調度系統,所以代碼中時間參數將受調度時區變更影響,但Datatudio中單節點調試、臨時查詢等操作不走調度,所以不受調度時區變更影響。

時區切換產品側行為重點

調度時區切換後將會影響DataWorks調度相關配置、調度情境下參數替換以及部分模組介面時間展示等,影響詳情如下。

說明
  • 切換調度時區僅對調度情境生效,由於DataStudio大部分操作非調度環境,所以在DataStudio執行任務時,預設仍按照當地時區替換時間參數,例如Datatudio中單節點運行、帶參運行、臨時查詢等操作不受調度時區變更影響。

  • 由於Datatudio中商務程序運行、開發環境煙霧測試 (Smoke Test)操作會進入調度系統,所以節點代碼中時間參數將受調度時區變更影響。

一、節點定時時間

節點定時調度時間會按照設定的調度時區變化。定時時間

二、節點時間參數配置

節點調度參數會按照任務相關時間(任務定時時間,業務日期等)為基準值替換代碼中的變數,該值會根據的調度時區的改變而改變。

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

時間參數設定

三、節點代碼中時間相關的處理邏輯

代碼裡面設定的變數,一部分會在gateway解析,另一部分會在計算引擎側解析,具體解析邏輯如下:

  • 如果是在gateway上解析的,會按照設定的調度時區變化。調度情境下(不包括資料開發臨時運行),若您在DataWorks指令碼任務(例如Shell,pyodps)中,直接執行擷取時間命令(例如Shell節點中執行date命令),系統會根據您調度時區返回時間。

  • 如果是在底層計算引擎側解析的,請參考底層計算引擎側的時區轉換規則進行瞭解,具體請參見對應引擎說明文檔。

以下圖為例,調度情境下,代碼中的時間變數將根據調度時間替換為具體的時間字串下發至Hive,具體表達的時間,受限於Hive服務端解析邏輯。節點代碼

四、基準或警示相關的時間

基準或警示相關的時間會按照設定的調度時區變化。

五、API相關的時間

API相關的時間會按照設定的調度時區變化。

六、底層引擎的時區

底層引擎(例如,Data Integration、MaxCompute等)的時區是由各自引擎自己設定的,與DataWorks調度時區不轉換。調度參數實際替換值將按照純字串形式下發至引擎側按自身規則自行處理,關於引擎處理方案請參考引擎時區的相關說明文檔。

說明

如何切換時區

DataWorks調度支援從本地時區切換到其他非本地時區。

情境一:該租戶第一次建立專案

在支援切換時區的地區下建立工作空間時,若為全新使用者首次建立,會彈窗提示可修改調度時區為非本地時區,具體修改操作需要提交工單聯絡技術支援人員修改,您可根據業務需要以及(必讀)時區切換注意事項評估確認是否需要修改。

情境二:該租戶非第一次建立專案

在支援切換時區的地區下建立工作空間時,若需要將已有工作空間調度時區修改為非本地時區,您同樣需要提交工單聯絡技術支援人員修改,但由於涉及到存量資料的遷移(已經存在的節點和執行個體),可能對業務造成影響,請綜合評估。切換大致分為以下幾步:

  1. 使用者側:存量資料的影響面評估。

  2. 平台側:存量資料的遷移。

  3. 平台側:設定新時區。

  4. 使用者側:存量資料的恢複/新時區的驗證。

    建議您對各類型任務進行多次驗證以確認任務運行無誤。

確認時區切換是否成功

您可前往資料開發的調度配置頁面,確認時區是否切換成功,以及當前使用的調度時區。

  1. 進入資料開發頁面。

    登入DataWorks控制台,切換至目標地區後,單擊左側導覽列的資料建模與開發 > 資料開發,在下拉框中選擇對應工作空間後單擊進入資料開發

  2. 進入調度配置頁面。

    1. 在資料開發(DataStudio)介面,進入該專案的目標節點的編輯頁面。

    2. 單擊節點編輯頁面右側導覽列的調度配置,進入節點調度配置頁面。

  3. 調度配置頁面,顯示在時間屬性下面的就是當前所在的調度時區。

附錄:Data Integration相關時間處理

Data Integration的時區與DataWorks調度時區不轉換,調度參數實際替換值將按照純字串形式下發至Data Integration側。這裡以where條件資料過濾為例gmt_modify >= ${yyyymmdd},這個資料過濾SQL會按照字串字面值發送給資料來源執行,實際執行過濾效果受限於資料來源本身時區處理機制。

重要

Data Integration同步進程時區屬於DataWorks工作空間當地Region時區,同步進程時間不隨DataWorks調度時區進行切換,部分資料來源同步時會和同步進程時區有關,也請您留意此處約束。