Professional Data Engineer(Google Cloud) 無料問題 10 / 10 ・ 分野5: データ ワークロードの管理と自動化
Streaming Engine を使う Dataflow のストリーミングのジョブで、パイプラインのコードを直して置き換えのジョブ(replacement job)を起動する。Update an existing pipeline のページの記述に合うものはどれか。
- 互換性の確認に失敗すると、前のジョブはそのまま動き続け、置き換えのジョブがエラーを返す
- ワーカーの最小と最大の数を変えるだけのときも、置き換えのジョブを起動する必要がある
- 置き換えのジョブは、前のジョブの中間の状態のデータに加えて、ワーカーのメモリ上のキャッシュも引き継ぐ
- 置き換えのジョブは、ジョブ名もジョブ ID も前のジョブと同じまま動き、止まる時間は生じない
正解と解説を見る
正解: A
正解の理由
Job compatibility check の節は、置き換えのジョブを起動すると、Dataflow が置き換えのジョブと前のジョブの間で互換性を確かめると書く。確認が通れば前のジョブが止まり、置き換えのジョブが同じジョブ名のまま起動する。確認に失敗すると、前のジョブは Dataflow で動き続け、置き換えのジョブがエラーを返す。互換性の確認は、中間の状態の情報やバッファにあるデータを前のジョブから置き換えのジョブへ移せることを確かめるためのものである。
違う選択肢
「置き換えのジョブは、前のジョブの中間の状態のデータに加えて、ワーカーのメモリ上のキャッシュも引き継ぐ」… The effects of replacing a job の節は、置き換えのジョブは前のジョブの中間の状態のデータを引き継ぐが、メモリ上のキャッシュは保存されないと書く。キャッシュを残したいときは、キャッシュを状態のデータかサイド入力に作り替える回避策を挙げる。
「置き換えのジョブは、ジョブ名もジョブ ID も前のジョブと同じまま動き、止まる時間は生じない」… 同じ節は、Dataflow はジョブ名を保つが、置き換えのジョブを新しいジョブ ID で動かし、前のジョブが止まり、互換性を確かめ、新しいジョブが始まる間に止まる時間が生じうると書く。
「ワーカーの最小と最大の数を変えるだけのときも、置き換えのジョブを起動する必要がある」… In-flight job option update の節は、Streaming Engine を使うストリーミングのジョブでは、min-num-workers と max-num-workers(と worker-utilization-hint)を、ジョブを止めずジョブ ID も変えずに更新できると書く。置き換えのジョブが要るのは、それ以外の更新のときである。
押さえどころ
ページの冒頭は、バッチのパイプラインの更新には対応していないと書き、ストリーミングのジョブの更新の手段を in-flight の更新と置き換えのジョブの2つとする。置き換えのジョブは、前のジョブの中間の状態のデータ、ウィンドウの確定を待つなどでバッファにある in-flight のデータ、前のジョブに当てた in-flight のオプションの更新を引き継ぐ。起動の前に、置き換えのジョブのジョブ グラフを検証して、置き換えが有効かを確かめられる。
Professional Data Engineer(Google Cloud)の演習アプリ(無料10問・全問は解錠で)へ