Slide 1

Slide 1 text

データパイプラインの指揮者たち Google Cloud オーケストレーションサービスの ⽐較と実践 2024.7.12 データ事業本部 エノカワ

Slide 2

Slide 2 text

⽬次 ● ⾃⼰紹介 ● セッションの⽬的 ● Google Cloud のオーケストレーションサービス ● 各サービスでの実装 ○ Cloud Composer ○ Workflows ● まとめ 2

Slide 3

Slide 3 text

⾃⼰紹介 名前: 栄野川 隼⼈(エノカワ ハヤト) 所属: データ事業本部 那覇オフィス 経歴: メーカー系SIer →独⽴系地⽅SIer(流通⼩売系) →クラスメソッド(2021/6〜) 3 Okinawa

Slide 4

Slide 4 text

1. Google Cloud のオーケストレーションサービスを知る ○ Cloud Composer と Workflows の紹介 2. サンプルシナリオで実装のイメージを掴む ○ 両サービスでの実装アプローチの違い 3. サービス選択のガイドラインの提供 ○ 要件に応じたサービス選択基準 セッションの⽬的 4

Slide 5

Slide 5 text

Google Cloud の オーケストレーションサービス 5

Slide 6

Slide 6 text

オーケストレーションとは 6 定義: 複雑なワークフローやタスクの⾃動化と調整を⾏うプロセス 必要性: ● タスクの依存関係管理 ● エラーハンドリングの⼀元化 ● リソースの最適化

Slide 7

Slide 7 text

Cloud Composer ● Apache Airflow ベース ● 複雑なワークフロー管理に最適 ● 特徴: ○ Python でのワークフロー定義 ○ 柔軟なスケジューリング ○ 豊富なモニタリング機能 7

Slide 8

Slide 8 text

Workflows ● サーバーレス実⾏環境 ● YAML/JSONベースの簡潔な定義 ● 特徴: ○ 直感的なワークフロー設計 ○ Google Cloud サービスとの緊密な統合 ○ 低コストで⾼速な実⾏ 8

Slide 9

Slide 9 text

各サービスでの実装の⽐較 9

Slide 10

Slide 10 text

サンプルシナリオ ユースケース: EC サイトの⽇次販売データを処理し、分析⽤に集計 データフロー: 10 Sales Data Cloud Storage Sales Data BigQuery Sales Summary BigQuery

Slide 11

Slide 11 text

INPUT と OUTPUT 11 sales.csv sales_summary

Slide 12

Slide 12 text

Cloud Composer 12

Slide 13

Slide 13 text

コンソールから環境を作成 環境の作成 13 …

Slide 14

Slide 14 text

DAG のフォルダも作成された 約20分で環境できあがり 環境の作成 14

Slide 15

Slide 15 text

タスクの依存関係を明⽰的に定義 DAG名:sample_dag スケジュール:毎⽇実⾏(@daily) DAGファイルの作成 15 タスク①:CSVデータのロード ● 機能:GCS から BigQuery へのデータ転送 ● 使⽤オペレーター:GCSToBigQueryOpeartor タスク②:集計テーブルの作成と更新 ● 機能:集計テーブルの作成と集計データの挿⼊ ● 使⽤オペレーター :BigQueryExecuteQueryOperator タスクの依存関係:タスク① >> タスク②

Slide 16

Slide 16 text

DAG ファイルをアップロードする DAGのデプロイ 16

Slide 17

Slide 17 text

Airflow ウェブサーバーのDAGリストに反映された DAGのデプロイ 17

Slide 18

Slide 18 text

スケジュール実⾏ DAGの実⾏ 18

Slide 19

Slide 19 text

⼿動実⾏ DAGの実⾏ 19

Slide 20

Slide 20 text

Workflows 20

Slide 21

Slide 21 text

コンソールからワークフローを作成 ワークフローの作成 21

Slide 22

Slide 22 text

ワークフローエディタにコードを⼊⼒ ワークフローの作成 22

Slide 23

Slide 23 text

ワークフローの作成 23 ステップを順序⽴てて定義 ステップ②:CSVデータのロード ● 機能:GCS から BigQuery へのデータ転送 ● 使⽤API:googleapis.bigquery.v2.jobs.insert ステップ③:集計テーブルの作成と更新 ● 機能:集計テーブルの作成と集計データの挿⼊ ● 使⽤API:googleapis.bigquery.v2.jobs.insert ステップ④:結果の返却 ● 機能:処理完了メッセージの返却 ステップ①:初期化 ● 機能:変数に値を割り当て

Slide 24

Slide 24 text

可視化されたワークフローを確認してデプロイ ワークフローのデプロイ 24

Slide 25

Slide 25 text

正常にデプロイされると、ワークフローを実⾏できる ワークフローのデプロイ 25

Slide 26

Slide 26 text

実⾏時に JSON 形式で引数を渡すこともできる ワークフローの実⾏ 26

Slide 27

Slide 27 text

出⼒ペインにワークフローの結果が表⽰された ワークフローの実⾏ 27

Slide 28

Slide 28 text

まとめ 28

Slide 29

Slide 29 text

サービス⽐較 29 Cloud Composer Workflows 基盤技術 Apache Airflow Google 独⾃ ⾔語サポート Python(Airflow DAGs) YAML または JSON ワークフロー タスクの依存関係を明⽰的に定義 ステップを順序⽴てて定義 スケジューリング 内蔵 外部トリガー必要 複雑性 ⾼(柔軟性⼤) 低(シンプル) 統合サービス 豊富 Google Cloud 中⼼ スケーラビリティ ⼤規模向け 中⼩規模向け コスト ⾼ 低(サーバーレス)

Slide 30

Slide 30 text

サービス選択ガイドライン 30 Cloud Composer ● 複雑な依存関係を持つワークフロー ● ⻑時間実⾏のバッチ処理 ● 豊富なカスタマイズが必要な場合 Workflows ● シンプルで直感的なワークフロー ● HTTPベースのサービス連携 ● 低コストで⾼速な実⾏が必要な場合

Slide 31

Slide 31 text

● エラーハンドリングの実装 ○ 予期せぬ問題に対処し、システムの回復性を⾼める ● モニタリングとログの活⽤ ○ 運⽤効率の向上と問題の早期発⾒に不可⽋ ● IaCアプローチの採⽤ ○ 環境の⼀貫性を保ち、デプロイメントを⾃動化 ベストプラクティス 31

Slide 32

Slide 32 text

32