Databricks Certified Data Engineer Associate 無料問題 7 / 10 ・ 分野4: Working with Lakeflow Jobs
Unity Catalog のボリュームを見張るファイル到着トリガーで、Minimum time between triggers in seconds を 600、Wait after last change in seconds を 90 にしたジョブがある。この日、ファイルは 10:00:00・10:00:40・10:01:10 に届き、続いて 10:08:00・10:08:30 に届いた。この日の最初の実行は1分ほどで終わる。この日の1回目と2回目の実行が始まる時刻として正しいものはどれか。
- 1回目は 10:02:40 ごろ、2回目は 10:13:40 ごろ(1回目が終わってから 600 秒後)
- 1回目は 10:02:40 ごろ、2回目は 10:12:40 ごろ(1回目が始まってから 600 秒後)
- 1回目は 10:01:30 ごろ、2回目は 10:13:40 ごろ(1回目が終わってから 600 秒後)
- 1回目は 10:01:30 ごろ、2回目は 10:12:40 ごろ(1回目が始まってから 600 秒後)
正解と解説を見る
正解: A
正解の理由
Wait after last change in seconds は、最後のファイルが届いてから指定の秒数だけ待って実行を始める設定で、ファイルが届くたびに待ち時間が数え直される。最初のまとまりの最後のファイルは 10:01:10 なので、90 秒後の 10:02:40 ごろに1回目が始まり、10:03:40 ごろに終わる。Minimum time between triggers in seconds は実行の後の冷却で、実行が終わった後に届いたファイルは、600 秒が過ぎるまで新しい実行を始めない。10:08 台のファイルはこの冷却の中で届くので、2回目は 10:13:40 ごろに始まる。
違う選択肢
「1回目は 10:01:30 ごろ、2回目は 10:13:40 ごろ(1回目が終わってから 600 秒後)」… 公式は Wait after last change を "each new arrival resets the timer (debouncing)" と書いている。10:00:40 と 10:01:10 のファイルで待ちが数え直されるので、最初のファイルから 90 秒後の 10:01:30 には始まらない。2回目の時刻は正しい。
「1回目は 10:01:30 ごろ、2回目は 10:12:40 ごろ(1回目が始まってから 600 秒後)」… 1回目は、待ちが 10:00:40 と 10:01:10 のファイルで数え直されるので 10:01:30 には始まらない("each new arrival resets the timer")。2回目も、冷却は実行が終わってから数えるので、始まった時刻からの 10:12:40 ではない。どちらの設定の働きも外れている。
「1回目は 10:02:40 ごろ、2回目は 10:12:40 ごろ(1回目が始まってから 600 秒後)」… 公式の例は "After each run completes, the trigger waits 900 seconds (15 minutes) before it starts another run" と書き、冷却を実行が終わってから数えている。1回目は 10:03:40 ごろに終わるので、600 秒の冷却が明けるのは 10:13:40 ごろで、始まった時刻から数えた 10:12:40 ではない。1回目の時刻は正しい。
つまずき方
2つの設定を両方入れると、ファイルのまとまりが届き終わるのを待つ働きと、実行の間隔を空ける働きが重なる。冷却が長いと、届いたファイルの処理は冷却が明けるまで待たされるので、到着から処理までの遅れの見積もりに冷却の長さを入れる。
Databricks Certified Data Engineer Associateの演習アプリ(無料10問・全問は解錠で)へ