QUIZ 30分

Airflowオーケストレーションクイズ

Step 3で学んだAirflow基礎、DAG設計、タスク依存関係、エラーハンドリングについて理解度を確認しましょう。10問中8問以上の正解で合格です。


Q1. Airflowの役割

Apache Airflowの主な役割として最も適切なものはどれですか?

  • A: データの抽出と変換を高速に実行する
  • B: ワークフローをプログラムで定義・スケジュール・監視する
  • C: データウェアハウスのストレージを管理する
  • D: 機械学習モデルの学習を最適化する
正解と解説

正解: B

Airflowはワークフローオーケストレーターであり、DAGとしてワークフローを定義し、スケジュール実行と監視を行います。データ処理そのものではなく、処理の順序管理が主な役割です。


Q2. DAGの冪等性

DAGの冪等性(Idempotency)の説明として正しいものはどれですか?

  • A: DAGが常に最速で実行されること
  • B: 同じ入力で何度実行しても同じ結果が得られること
  • C: DAGが並列実行できること
  • D: DAGのタスク数が一定であること
正解と解説

正解: B

冪等性とは、同じDAGを同じパラメータで何度実行しても結果が同じであることを保証する性質です。INSERT の代わりに DELETE + INSERT(UPSERT)を使うなどの工夫が必要です。


Q3. センサーモード

Airflowのセンサーでrescheduleモードを使用する利点はどれですか?

  • A: チェック間隔を短くできる
  • B: チェック間にワーカースロットを解放し、リソースを節約できる
  • C: タイムアウトが発生しない
  • D: 外部システムへの負荷が減る
正解と解説

正解: B

rescheduleモードはチェックとチェックの間にワーカースロットを解放するため、長時間の待機でもリソースを無駄にしません。pokeモードはスロットを占有し続けます。


Q4. トリガールール

タスクのtrigger_ruleone_failedに設定した場合の動作はどれですか?

  • A: 全上流タスクが失敗した場合に実行される
  • B: 1つ以上の上流タスクが失敗した場合に実行される
  • C: 1つでも成功した上流タスクがあれば実行される
  • D: 上流タスクの状態に関係なく実行される
正解と解説

正解: B

one_failedは1つ以上の上流タスクが失敗した場合にタスクを実行するルールです。エラー通知タスクなどに使用します。全上流タスクの失敗にはall_failedを使います。


Q5. XCom

AirflowのXComの用途として正しいものはどれですか?

  • A: 大量のデータフレームをタスク間で受け渡す
  • B: タスク間でメタデータ(行数、パス、ステータス等)を受け渡す
  • C: 外部データベースへの接続情報を保存する
  • D: DAGの定義情報を保存する
正解と解説

正解: B

XComはメタデータDBに保存されるため、行数やファイルパスなどの小さなデータの受け渡しに適しています。大量データの受け渡しにはS3やデータベースを使用すべきです。


Q6. リトライ戦略

指数バックオフ(exponential backoff)のリトライが有効なケースはどれですか?

  • A: データの形式エラーによるパース失敗
  • B: 外部APIのレート制限やネットワーク一時障害
  • C: SQLの文法エラー
  • D: 権限不足によるアクセスエラー
正解と解説

正解: B

指数バックオフは一時的な障害(ネットワーク、レート制限)に対して有効です。リトライ間隔を徐々に長くすることで、相手システムの回復を待てます。文法エラーや権限不足は何度リトライしても成功しません。


Q7. TaskGroup

AirflowのTaskGroupの主な目的はどれですか?

  • A: タスクの実行速度を向上させる
  • B: 関連タスクをグループ化してWeb UIの可読性を向上させる
  • C: タスクを別のDAGに分離する
  • D: タスクの権限を一括管理する
正解と解説

正解: B

TaskGroupは関連するタスクを論理的にグループ化し、Web UIでの表示を整理する機能です。実行速度やDAG分離とは関係ありません。


Q8. SLA

AirflowのSLA(Service Level Agreement)機能の説明として正しいものはどれですか?

  • A: タスクの実行時間が設定値を超えると自動でタスクを停止する
  • B: タスクの実行時間が設定値を超えるとSLA miss callbackが呼ばれる
  • C: DAGの実行頻度を保証する
  • D: タスクのリトライ回数を制限する
正解と解説

正解: B

SLA設定は「期待される完了時間」を定義し、超過した場合にコールバック関数が呼ばれます。タスクの自動停止は行いません。


Q9. DAG間依存

Airflow 2.4以降のDataset機能の説明として正しいものはどれですか?

  • A: データセットの保存先を管理する
  • B: 上流DAGがDatasetを更新すると、そのDatasetに依存する下流DAGが自動トリガーされる
  • C: データセットのバックアップを自動で取得する
  • D: データセットのスキーマを管理する
正解と解説

正解: B

Dataset機能により、DAGのoutletとしてDatasetの更新を宣言し、別のDAGがそのDatasetをscheduleに指定することで、データ駆動のDAG間依存を実現できます。


Q10. デッドレターキュー

データパイプラインにおけるデッドレターキュー(DLQ)パターンの目的はどれですか?

  • A: 全レコードの処理に失敗したらパイプラインを停止する
  • B: 処理に失敗したレコードを別の場所に退避し、成功レコードの処理を継続する
  • C: 古いデータを自動的に削除する
  • D: データを暗号化して保存する
正解と解説

正解: B

デッドレターキューパターンは、処理失敗レコードを別途保存して後で調査・再処理できるようにしつつ、成功レコードの処理は中断せずに継続します。


結果

正答数判定
8-10問合格 - Step 4に進みましょう
6-7問もう一度レッスンを復習しましょう
5問以下Step 3のレッスンを最初から再学習しましょう

推定所要時間:30分