Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
データパイプラインの指揮者たち
Search
enokawa.hayato
July 13, 2024
0
750
データパイプラインの指揮者たち
enokawa.hayato
July 13, 2024
Tweet
Share
More Decks by enokawa.hayato
See All by enokawa.hayato
技術コミュニティ運営のススメ.pdf
enokawahayato
0
230
クラウドデータ基盤で切り拓く沖縄DXの可能性
enokawahayato
0
370
BigQuery を使った小規模データ分析デモ
enokawahayato
0
240
Featured
See All Featured
A designer walks into a library…
pauljervisheath
210
24k
How to train your dragon (web standard)
notwaldorf
97
6.4k
Why Our Code Smells
bkeepers
PRO
340
57k
Music & Morning Musume
bryan
46
7k
The Pragmatic Product Professional
lauravandoore
36
7k
The World Runs on Bad Software
bkeepers
PRO
72
12k
Fireside Chat
paigeccino
41
3.7k
Product Roadmaps are Hard
iamctodd
PRO
55
12k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
34
2.3k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
1
34
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
10
670
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.2k
Transcript
データパイプラインの指揮者たち Google Cloud オーケストレーションサービスの ⽐較と実践 2024.7.12 データ事業本部 エノカワ
⽬次 • ⾃⼰紹介 • セッションの⽬的 • Google Cloud のオーケストレーションサービス •
各サービスでの実装 ◦ Cloud Composer ◦ Workflows • まとめ 2
⾃⼰紹介 名前: 栄野川 隼⼈(エノカワ ハヤト) 所属: データ事業本部 那覇オフィス 経歴: メーカー系SIer
→独⽴系地⽅SIer(流通⼩売系) →クラスメソッド(2021/6〜) 3 Okinawa
1. Google Cloud のオーケストレーションサービスを知る ◦ Cloud Composer と Workflows の紹介
2. サンプルシナリオで実装のイメージを掴む ◦ 両サービスでの実装アプローチの違い 3. サービス選択のガイドラインの提供 ◦ 要件に応じたサービス選択基準 セッションの⽬的 4
Google Cloud の オーケストレーションサービス 5
オーケストレーションとは 6 定義: 複雑なワークフローやタスクの⾃動化と調整を⾏うプロセス 必要性: • タスクの依存関係管理 • エラーハンドリングの⼀元化 •
リソースの最適化
Cloud Composer • Apache Airflow ベース • 複雑なワークフロー管理に最適 • 特徴:
◦ Python でのワークフロー定義 ◦ 柔軟なスケジューリング ◦ 豊富なモニタリング機能 7
Workflows • サーバーレス実⾏環境 • YAML/JSONベースの簡潔な定義 • 特徴: ◦ 直感的なワークフロー設計 ◦
Google Cloud サービスとの緊密な統合 ◦ 低コストで⾼速な実⾏ 8
各サービスでの実装の⽐較 9
サンプルシナリオ ユースケース: EC サイトの⽇次販売データを処理し、分析⽤に集計 データフロー: 10 Sales Data Cloud Storage
Sales Data BigQuery Sales Summary BigQuery
INPUT と OUTPUT 11 sales.csv sales_summary
Cloud Composer 12
コンソールから環境を作成 環境の作成 13 …
DAG のフォルダも作成された 約20分で環境できあがり 環境の作成 14
タスクの依存関係を明⽰的に定義 DAG名:sample_dag スケジュール:毎⽇実⾏(@daily) DAGファイルの作成 15 タスク①:CSVデータのロード • 機能:GCS から BigQuery
へのデータ転送 • 使⽤オペレーター:GCSToBigQueryOpeartor タスク②:集計テーブルの作成と更新 • 機能:集計テーブルの作成と集計データの挿⼊ • 使⽤オペレーター :BigQueryExecuteQueryOperator タスクの依存関係:タスク① >> タスク②
DAG ファイルをアップロードする DAGのデプロイ 16
Airflow ウェブサーバーのDAGリストに反映された DAGのデプロイ 17
スケジュール実⾏ DAGの実⾏ 18
⼿動実⾏ DAGの実⾏ 19
Workflows 20
コンソールからワークフローを作成 ワークフローの作成 21
ワークフローエディタにコードを⼊⼒ ワークフローの作成 22
ワークフローの作成 23 ステップを順序⽴てて定義 ステップ②:CSVデータのロード • 機能:GCS から BigQuery へのデータ転送 •
使⽤API:googleapis.bigquery.v2.jobs.insert ステップ③:集計テーブルの作成と更新 • 機能:集計テーブルの作成と集計データの挿⼊ • 使⽤API:googleapis.bigquery.v2.jobs.insert ステップ④:結果の返却 • 機能:処理完了メッセージの返却 ステップ①:初期化 • 機能:変数に値を割り当て
可視化されたワークフローを確認してデプロイ ワークフローのデプロイ 24
正常にデプロイされると、ワークフローを実⾏できる ワークフローのデプロイ 25
実⾏時に JSON 形式で引数を渡すこともできる ワークフローの実⾏ 26
出⼒ペインにワークフローの結果が表⽰された ワークフローの実⾏ 27
まとめ 28
サービス⽐較 29 Cloud Composer Workflows 基盤技術 Apache Airflow Google 独⾃
⾔語サポート Python(Airflow DAGs) YAML または JSON ワークフロー タスクの依存関係を明⽰的に定義 ステップを順序⽴てて定義 スケジューリング 内蔵 外部トリガー必要 複雑性 ⾼(柔軟性⼤) 低(シンプル) 統合サービス 豊富 Google Cloud 中⼼ スケーラビリティ ⼤規模向け 中⼩規模向け コスト ⾼ 低(サーバーレス)
サービス選択ガイドライン 30 Cloud Composer • 複雑な依存関係を持つワークフロー • ⻑時間実⾏のバッチ処理 • 豊富なカスタマイズが必要な場合
Workflows • シンプルで直感的なワークフロー • HTTPベースのサービス連携 • 低コストで⾼速な実⾏が必要な場合
• エラーハンドリングの実装 ◦ 予期せぬ問題に対処し、システムの回復性を⾼める • モニタリングとログの活⽤ ◦ 運⽤効率の向上と問題の早期発⾒に不可⽋ • IaCアプローチの採⽤
◦ 環境の⼀貫性を保ち、デプロイメントを⾃動化 ベストプラクティス 31
32