Upgrade to Pro — share decks privately, control downloads, hide ads and more …

データパイプラインの指揮者たち

enokawa.hayato
July 13, 2024
410

 データパイプラインの指揮者たち

enokawa.hayato

July 13, 2024
Tweet

Transcript

  1. ⽬次 • ⾃⼰紹介 • セッションの⽬的 • Google Cloud のオーケストレーションサービス •

    各サービスでの実装 ◦ Cloud Composer ◦ Workflows • まとめ 2
  2. 1. Google Cloud のオーケストレーションサービスを知る ◦ Cloud Composer と Workflows の紹介

    2. サンプルシナリオで実装のイメージを掴む ◦ 両サービスでの実装アプローチの違い 3. サービス選択のガイドラインの提供 ◦ 要件に応じたサービス選択基準 セッションの⽬的 4
  3. Cloud Composer • Apache Airflow ベース • 複雑なワークフロー管理に最適 • 特徴:

    ◦ Python でのワークフロー定義 ◦ 柔軟なスケジューリング ◦ 豊富なモニタリング機能 7
  4. タスクの依存関係を明⽰的に定義 DAG名:sample_dag スケジュール:毎⽇実⾏(@daily) DAGファイルの作成 15 タスク①:CSVデータのロード • 機能:GCS から BigQuery

    へのデータ転送 • 使⽤オペレーター:GCSToBigQueryOpeartor タスク②:集計テーブルの作成と更新 • 機能:集計テーブルの作成と集計データの挿⼊ • 使⽤オペレーター :BigQueryExecuteQueryOperator タスクの依存関係:タスク① >> タスク②
  5. ワークフローの作成 23 ステップを順序⽴てて定義 ステップ②:CSVデータのロード • 機能:GCS から BigQuery へのデータ転送 •

    使⽤API:googleapis.bigquery.v2.jobs.insert ステップ③:集計テーブルの作成と更新 • 機能:集計テーブルの作成と集計データの挿⼊ • 使⽤API:googleapis.bigquery.v2.jobs.insert ステップ④:結果の返却 • 機能:処理完了メッセージの返却 ステップ①:初期化 • 機能:変数に値を割り当て
  6. サービス⽐較 29 Cloud Composer Workflows 基盤技術 Apache Airflow Google 独⾃

    ⾔語サポート Python(Airflow DAGs) YAML または JSON ワークフロー タスクの依存関係を明⽰的に定義 ステップを順序⽴てて定義 スケジューリング 内蔵 外部トリガー必要 複雑性 ⾼(柔軟性⼤) 低(シンプル) 統合サービス 豊富 Google Cloud 中⼼ スケーラビリティ ⼤規模向け 中⼩規模向け コスト ⾼ 低(サーバーレス)
  7. サービス選択ガイドライン 30 Cloud Composer • 複雑な依存関係を持つワークフロー • ⻑時間実⾏のバッチ処理 • 豊富なカスタマイズが必要な場合

    Workflows • シンプルで直感的なワークフロー • HTTPベースのサービス連携 • 低コストで⾼速な実⾏が必要な場合
  8. 32