タイムゾーンをまたいだビジネスコラボレーションや統一されたデータ処理のニーズに応えるため、企業は異なるリージョンにある DataWorks ワークスペースのスケジューリングベースラインを、UTC+0 や UTC+8 などの特定のタイムゾーンに標準化する必要があることがよくあります。このトピックでは、スケジューリングタイムゾーンの変更方法と、定期タスクおよび関連構成への影響について詳しく説明します。この変更を行う前に、リスクを十分に評価し、グローバルビジネスにおけるスケジューリングロジックの一貫性を確保し、タイムゾーンの不一致によるスケジューリングの競合やデータエラーを防ぐ必要があります。
サポート対象リージョン
デフォルトでは、DataWorks ワークスペースのスケジューリングタイムゾーンは、ワークスペースが所在するリージョンのローカルタイムゾーンです。一部の DataWorks リージョンでは、スケジューリングタイムゾーンの変更が可能です。以下の表は、この変更をサポートするリージョンと利用可能なタイムゾーンの一覧です。
|
リージョン |
UTC+0 サポート |
UTC+8 サポート |
|
米国 (シリコンバレー) |
サポート済み |
サポート済み |
|
米国 (バージニア) |
サポート済み |
サポート済み |
|
ドイツ (フランクフルト) |
サポート済み |
サポート済み |
|
シンガポール |
サポート済み |
サポート済み (ローカルタイムゾーンと同じ) |
|
中国 (香港) |
サポート済み |
サポート済み (ローカルタイムゾーンと同じ) |
|
日本 (東京) |
サポート済み |
サポート済み |
例えば、米国 (シリコンバレー) リージョンの DataWorks ワークスペースの場合、スケジューリングタイムゾーンをデフォルトのローカルタイムゾーンから UTC+0 または UTC+8 に切り替えることができます。タイムゾーンが正常に変更された後、Operation Center上部の通知バーを確認するか、データ開発のノードで タブに移動して変更を確認できます。
注意事項
本番環境での問題や予期しない動作を防ぐために、スケジューリングタイムゾーンを変更する前に、以下の注意事項をよくお読みください。
|
カテゴリ |
説明 |
|
影響を受けるワークスペースの範囲 |
スケジューリングタイムゾーンはリージョンレベルの設定です。この変更は、リージョン内のすべてのワークスペースで有効になります。 |
|
元に戻せない操作 |
この変更は元に戻せません。慎重に進めてください。 重要
この操作には、ノードやインスタンスなどの既存データの移行が含まれ、ワークロードに影響を与える可能性があります。続行する前に、十分な評価を行うことを推奨します。 |
|
影響を受ける構成の範囲 |
スケジューリングタイムゾーンを変更すると、DataWorks のスケジューリング構成と、コード内でのスケジューリングパラメーターの置換方法に影響します。DataWorks は、タスクのスケジュール時刻とデータタイムスタンプに基づいてこれらのパラメーターの値を計算し、コードの入力として使用します。
重要
|
タイムゾーン変更の影響
スケジューリングタイムゾーンを変更すると、DataWorks のスケジューリング構成、スケジューリングシナリオでのパラメーター置換、および一部のモジュールでの時間表示に影響します。
-
スケジューリングタイムゾーンの変更は、スケジューリングシナリオにのみ影響します。DataStudio でのほとんどの操作はスケジューリング環境で実行されないため、DataStudio でタスクを実行する際、時間パラメーターはデフォルトでローカルタイムゾーンに基づいて置換されます。例えば、シングルノードの実行、パラメーター付きでの実行、アドホッククエリの実行などの操作は、スケジューリングタイムゾーンの変更の影響を受けません。
-
DataStudio でのワークフローの実行やスモークテストの実行などの操作はスケジューリングシステムを使用するため、ノードコード内の時間パラメーターはスケジューリングタイムゾーンの変更の影響を受けます。
影響 1:ノードのスケジュール時刻
ノードのスケジュール時刻は、新しいスケジューリングタイムゾーンに基づいて変更されます。スケジューリング設定で、インスタンス生成方法が T+1 (翌日)、スケジュールタイプが通常、繰り返しが毎日、スケジュール時刻が 00:01 (cron 式 00 01 00 * * ? に対応) であるとします。また、再実行プロパティが「成功または失敗後に再実行を許可」、有効日が 1970-01-01 から 9999-01-01 までであるとします。
影響 2:ノードの時間パラメーター構成
スケジューリングパラメーターは、スケジュール時刻やデータタイムスタンプなど、タスク関連の時間に基づいてコード内の変数を置き換えます。これらのパラメーターの値は、新しいスケジューリングタイムゾーンに応じて変更されます。
YYYYMMDD=${yyyymmdd} LAST_2D=${yyyymmdd-2}
[パラメーター] セクションで、スケジューリングパラメーターを入力します。複数のパラメーターはスペースで区切ります。例:YYYYMMDD=${yyyymmdd} LAST_2D=${yyyymmdd-2}。これらのパラメーターは定期的なスケジューリング中に有効になります。開発環境のスモークテスト機能を使用して、パラメーターが正しく置換されるかを確認できます。
影響 3:ノードコード内の時間関連ロジック
コード内の変数は、ゲートウェイまたはコンピュートエンジンによって解析されます。解析ロジックは次のとおりです。
-
ゲートウェイによって解析される場合、値は新しいスケジューリングタイムゾーンに従って変更されます。スケジューリングシナリオ (データ開発でのアドホック実行を除く) で、DataWorks スクリプトタスク (シェルノードや pyodps ノードなど) で時間を取得するコマンドを実行する場合、例えばシェルノードで
dateコマンドを実行すると、システムはスケジューリングタイムゾーンに基づいた時間を返します。 -
基礎となるコンピュートエンジンによって解析される場合、エンジン独自のタイムゾーン変換ルールが適用されます。詳細については、特定のエンジンのドキュメントをご参照ください。
以下のコード例では、コード内の時間変数はスケジュール時刻に基づいて特定の時間文字列に置換され、Hive に渡されます。実際に表される時間は、Hive サーバーの解析ロジックに依存します。
if [ "${YYYYMMDDHH}" = "${YYYYMMDD}00" ] ;then
echo '######## run hive reload data'
hive --hiveconf hive.merge.tezfiles=false --hiveconf tez.queue.name=${YARN_QUEUE} -d YYYYMMDD=${LASTDAY} -d YYYYMMDDHH=${YYYYMMDDHH} -d LASTDAY=${LAST_2D}
...
影響 4:ベースラインまたはアラートの時間
ベースラインまたはアラートに関連する時間は、新しいスケジューリングタイムゾーンに従って変更されます。
影響 5:API 関連の時間
API に関連する時間は、新しいスケジューリングタイムゾーンに従って変更されます。
影響 6:基礎となるエンジンのタイムゾーン
データ統合や MaxCompute などの基礎となるエンジンのタイムゾーンは、各エンジンによって設定され、DataWorks のスケジューリングタイムゾーンとは独立しています。スケジューリングパラメーターの値は、プレーン文字列としてエンジンに渡され、エンジン自身のルールに従って処理されます。エンジンがタイムゾーンをどのように処理するかについては、各エンジンのドキュメントをご参照ください。
-
スケジューリングタイムゾーンの変更は、タスクのスケジュール時刻に関連するプロパティにのみ影響し、エンジンのタイムゾーンの変更は含まれません。
-
このシナリオがデータ統合でどのように処理されるかについては、「付録:データ統合における時間処理」をご参照ください。
タイムゾーン変更のリクエスト
シナリオ 1:新規テナント、最初のワークスペース
新規ユーザーがタイムゾーン変更をサポートするリージョンで最初のワークスペースを作成すると、スケジューリングタイムゾーンをローカル以外のタイムゾーンに変更できることを知らせるダイアログボックスが表示されます。変更を行うには、してチケットを送信し、テクニカルサポートに連絡する必要があります。ビジネスニーズと「注意事項」の情報に基づいて、変更をリクエストするかどうかを決定できます。
シナリオ 2:既存のテナント
タイムゾーン変更をサポートするリージョンに既存のワークスペースがあり、スケジューリングタイムゾーンをローカル以外のものに変更する必要がある場合も、してチケットを送信し、テクニカルサポートに連絡する必要があります。これにはノードやインスタンスなどの既存データの移行が含まれるため、ワークロードに影響を与える可能性があります。十分な評価を行うことを推奨します。プロセスには次の手順が含まれます。
-
お客様側:既存データへの影響を評価します。
-
プラットフォーム側:既存データを移行します。
-
プラットフォーム側:新しいタイムゾーンを設定します。
-
お客様側:既存データを復元し、新しいタイムゾーンを確認します。
タスクタイプごとに複数の検証テストを実行することを推奨します。
タイムゾーン変更の確認
タイムゾーンの変更が成功した後、データ開発のノード編集ページ (新しいワークフローエディターのノードには適用されません) に移動して Scheduling Settings を確認するか、Operation Centerページに移動してタイムゾーン設定が有効になっていることを確認できます。
方法 1:スケジューリング設定の確認
タイムゾーン設定が有効になると、[スケジュール] > [スケジューリング時刻] タブの上部に「スケジューリングタイムゾーンは協定世界時 (UTC) です」という青い通知メッセージが表示されます。
DataWorks コンソールにログインします。対象のリージョンで、左側のナビゲーションウィンドウで をクリックします。ドロップダウンリストからワークスペースを選択し、入力 データ開発 をクリックします。
-
データ開発で既存のノードをクリックして開くか、新しいノードを作成してノード編集ページに移動します。
-
ノード編集ページで、 タブをクリックして、新しいタイムゾーン設定が有効になっているかを確認します。
方法 2:オペレーションセンターでの確認
DataWorks コンソールにログインします。対象のリージョンに切り替えた後、左側のナビゲーションウィンドウで を選択します。ドロップダウンリストから目的のワークスペースを選択し、オペレーションセンター をクリックします。現在のタイムゾーン構成は、オペレーションセンターページの上部にある通知バーに表示されます。
例えば、スケジューリングタイムゾーンが協定世界時 (UTC) に設定されている場合、通知バーにはこのテナントはスケジューリングタイムゾーンとして協定世界時 (UTC) を使用します。オペレーションセンターはデフォルトでこのタイムゾーンで時間を表示します。と表示されます。
付録:データ統合における時間処理
データ統合のタイムゾーンは、DataWorks のスケジューリングタイムゾーンとは独立しています。DataWorks は、スケジューリングパラメーターの値をプレーン文字列としてデータ統合に渡します。例えば、where 句のデータフィルタリング条件 gmt_modify >= ${yyyymmdd} のような場合、データ統合はこの SQL フィルターを文字列リテラルとしてデータソースに送信します。実際のフィルタリング結果は、データソース自体のタイムゾーン処理メカニズムに依存します。
データ統合の同期プロセスのタイムゾーンは、DataWorks ワークスペースリージョンのローカルタイムゾーンです。このタイムゾーンは、DataWorks のスケジューリングタイムゾーンの変更に伴って変更されません。一部のデータソースの同期は同期プロセスのタイムゾーンに関連するため、この制約に注意してください。