ドルヲタ系インフラエンジニア じーふーの備忘録

クラウドをメインに扱うインフラエンジニアが書くメモやら雑感、たまにドルヲタ的活動記録残します。最近の推しはAzureのData Factory(V2)です。

Azure Data Factory v2 スケジュールトリガー設定時の注意点

こんにちは。

Azure Data Factory バージョン2はGUI周りが強化されて、非常に操作性が向上したと実感しています。
バージョン2にアップデートされて、パイプラインの実行タイミングはトリガーで指定するようになりました。
筆者がトリガーの検証を行った際にひっかかった点がありましたのでメモとして記します。

スケジュールトリガーの設定について

f:id:fujikkoooooo:20180725155633j:plain
スケジュールトリガー設定画面
赤枠で囲った部分がトリガーの実行開始時間を設定するフォームです。日付の他に開始時間を分単位で設定することができます。同様に、トリガーの期限を設定することも可能です。

GUIを利用してトリガーを作る際に時間を設定する上で二つ注意点があります。

一つは、ここで指定する時間は"UTC"時間であることです。
そのため、日本時間と9時間の差があることを考慮した上で設定する必要があります。

二つ目は、AM12時はお昼の12時を指すということです。
そんなの当たり前ですって……?筆者は混乱しました笑

まずは画面を見て頂きたいです。

f:id:fujikkoooooo:20180725163751j:plain
トリガー開始時刻設定

時間はドロップダウン形式で選択できるようになっております。
AM/PMを指定した上で時間を選択してトリガーの開始時間、期限を設定します。

さて、筆者は日本時間9:50から10:05までの間で1分間隔でパイプラインを実行するよううトリガーを設定したいと考えました。
トリガーの検証を始めた時刻は9時45分。トリガー作成画面に遷移すると、トリガーの開始日時はあらかじめ現在日時が設定された状態になっています。
トリガーの開始時刻は【AM12:45】が指定されていました。

5分後に動き出すトリガーを作りたいから、実行開始時間は【AM12:50】を指定すればいいんだな。
その15分後には終わるトリガーにしたいから、期限は開始時間の15分後だよなと考え、【PM01:05】を指定したわけですよ。

さて、トリガーの作成が完了しました。
時間になったら自動で動き出したことが確認でき、はい成功!と安心してとりあえず放置していました。

~他の作業中~

あ、そろそろ終わっている時間だよな。確認しよ。

ん?

(。´・ω・)ん?

まだ動いてる!!!!!!!!!

そこでようやく、トリガーの期限の指定が誤っていることに気づきました笑

トリガーのソースコードを確認し、【AM12:50】と指定したトリガー開始日時は【"startTime": "2018-07-25T00:00:00.000Z",】と設定され、【PM01時】と指定したトリガー期限は【"endTime": "2018-07-25T13:05:00.000Z"】と設定されていることが確認できました。

つまり、【AM12:00】の1時間後は【AM01:00】と設定するのが正しかったのです。

単純にAM12:00の次はPM01:00だよなと勝手に思い込んで設定してしまっていたのが間違いでした。。

まとめ

ここで得た教訓は以下のものがあげられます。
AM/PMの正しい考え方を理解しよう
②トリガーのソースコードもしっかり確認しよう

筆者と同じような勘違いする人はいないよ!!って意見もあるかもしれませんが、少しでもこの記事が皆様のお役に立てば幸いです。。笑