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
590
データパイプラインの指揮者たち
enokawa.hayato
July 13, 2024
Tweet
Share
More Decks by enokawa.hayato
See All by enokawa.hayato
BigQuery を使った小規模データ分析デモ
enokawahayato
0
81
Featured
See All Featured
Rebuilding a faster, lazier Slack
samanthasiow
79
8.8k
Fantastic passwords and where to find them - at NoRuKo
philnash
51
3k
Practical Orchestrator
shlominoach
186
10k
Site-Speed That Sticks
csswizardry
3
370
Understanding Cognitive Biases in Performance Measurement
bluesmoon
27
1.5k
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.6k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
232
17k
Building a Modern Day E-commerce SEO Strategy
aleyda
38
7.1k
How to train your dragon (web standard)
notwaldorf
90
5.8k
Building Better People: How to give real-time feedback that sticks.
wjessup
366
19k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
31
2.1k
Embracing the Ebb and Flow
colly
84
4.6k
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