Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
データパイプラインの指揮者たち
Search
enokawa.hayato
July 13, 2024
950
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
データパイプラインの指揮者たち
enokawa.hayato
July 13, 2024
More Decks by enokawa.hayato
See All by enokawa.hayato
Obsidian × AIで始める「第二の脳」
enokawahayato
2
780
技術コミュニティ運営のススメ
enokawahayato
0
560
クラウドデータ基盤で切り拓く沖縄DXの可能性
enokawahayato
0
760
BigQuery を使った小規模データ分析デモ
enokawahayato
0
490
Featured
See All Featured
The agentic SEO stack - context over prompts
schlessera
0
970
Odyssey Design
rkendrick25
PRO
2
880
Documentation Writing (for coders)
carmenintech
77
5.6k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
31k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
2
2k
How to build a perfect <img>
jonoalderson
1
6.1k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
460
So, you think you're a good person
axbom
PRO
2
2.2k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.4k
Reflections from 52 weeks, 52 projects
jeffersonlam
356
22k
Believing is Seeing
oripsolob
1
250
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
2
480
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