開発エンジニアのRYUHEI.Tです。
昨今、企業や組織では、蓄積した大量のデータを活用して意思決定や業務改善に役立てる取り組みが急速に進んでいます。こうした動きの中で注目されているのが、ETLツールの活用です。
ETLとは、データの抽出(Extract)・変換(Transform)・書き出し(Load)という一連の処理を通じて、複数のソースから得られたデータを統合・加工し、分析や活用可能な形に整えるプロセスを指します。
Google Cloudが提供する Dataflow は、そうしたETL処理を柔軟かつ高速に実行できるマネージドサービスであり、リアルタイムおよびバッチ処理の両方に対応している点が大きな特長です。
本記事では、Dataflowの基本的な概要や活用例をご紹介します。
Dataflow とは
Google Cloud Dataflow は、Google Cloudが提供するマネージド型のデータ処理サービスです。主に、ETL処理や、リアルタイムストリーミング処理、バッチ処理など、大量のデータを効率的かつスケーラブルに処理するために利用されます。
Dataflowの基盤となっているのは、Apache Beam というオープンソースのデータ処理フレームワークです。開発者はApache Beamのパイプラインを記述することで、処理の実行内容を定義します。Dataflowはその実行環境として、インフラ管理を意識せずに済むようなフルマネージドな実行基盤を提供しています。
※Apache Beamで記述されたジョブは他の実行エンジンでも実行できます。
Cloud Dataflowを利用する特長・メリット
-
Google Cloudサービスとの連携
SDKを利用することでGCPの各サービスと連携が可能。
以下サービス例
-Big Query
-Cloud Storage
-Cloud Bigtable
-Cloud Pub/Sub
-Cloud Spanner
-
環境構築が不要
サーバーレスアーキテクチャを採用しているため、ユーザーはインフラの構築や管理から解放され、データ処理ロジックの実装に専念できる。
-
自動でのジョブ実行最適化
Dataflowはユーザーが定義したデータ処理パイプラインの実行を自動的に最適化する。並列処理、データの分散、動的なリソース管理などを自動で行うことで、高速かつスケーラブルなデータ処理を実現し、複雑な最適化作業をユーザーが行う必要がない。
Dataflowを用いたユースケース例
- BigQuery などのデータ ウェアハウスにデータを取り込む ETLワークフロー
- データの移動: データの取り込みやサブシステム間でのデータの複製
- 機械学習との連携: ストリーミングデータに対し、事前に学習済みの ML モデルを適用して即時判断
Dataflow の構築方法
以下ではDataflowを構築する2つの主要な方法を紹介し、それぞれの特長や向いているユースケースを解説します。
① Google提供のテンプレートを使う方法
Google Cloud コンソール から簡単に設定・実行できるのが 「Dataflowテンプレート」 を使う方法です。テンプレートを利用することで、コードを書かずにGUI上でパラメータを入力するだけで、ETL処理やファイル転送などの一般的なデータパイプラインを実行できます。
主な特長:
・コードを書かずに処理を定義できるため、非エンジニアでも扱いやすい
・設定項目(パラメータ)をGUIから入力し、すぐにジョブを実行可能
・Cloud Storage → BigQuery、Pub/Sub → BigQuery など、よくあるユースケースは
テンプレート化済み(参考)
向いているケース:
・標準的な処理を手早く始めたい場合
・定型的なETLパイプラインをGUIから管理したい場合
・開発リソースが限られているが、データ連携が必要な場合
② コードを書いて構築する方法(Apache Beamを使った柔軟な開発)
もう一つの方法は、Apache Beam SDK(PythonやJava)を使ってパイプラインをプログラムとして定義する方法です。この方法では、データの流れや処理内容をすべて細かく制御できるため、複雑なロジックやカスタム処理にも対応できます。
主な特長:
・処理フローについて、自由度の高い設計が可能
・複雑な条件分岐や、API連携なども実装可能
向いているケース:
・ビジネス固有の複雑なデータ処理が必要な場合
・パイプラインの振る舞いを細かく制御したい場合
今回は②の方法でパイプラインを自作してみましたので、以下でご紹介します。
ドライブのファイルに含まれる社名を抽出するパイプラインの構築
実装方法
今回は、Googleドライブのファイルに含まれる社名を取得し、BigQueryへ登録するパイプラインを構築しました。
社名の取得には、Natural Language APIを利用しており、ジョブの中で呼び出すことが可能です。
アーキテクチャ及び処理フローは以下になります。
処理フロー
①,②:パイプライン実行時にドライブIDを指定し、ファイルの情報をBQへ登録
↓
③:Driveのファイルをテキストデータに変換し、Cloud Storageへ保存する
↓
④:③に対してNatural Language APIのエンティティ分析を実行
↓
⑤:レスポンスをJSONファイルとしてGCSへ保存する
↓
⑥:結果をBigQueryへ登録する
詳細は割愛しますが、パイプラインの作成にはカスタムテンプレートというものを利用しました。これは、あらかじめ定義した処理ロジックをテンプレート化し、実行時にはパラメータを指定するだけで同じパイプラインを繰り返し実行できる仕組みです。
これにより、Google Cloudコンソールから処理対象のGoogle ドライブを指定して実行をすることが可能になります。
BigQueryへ連携するパイプラインの実行方法
- Google Cloudコンソールから、Dataflow>該当のパイプラインにアクセスし、「編集」を押下
- 「解析対象フォルダID」から、取得先のGoogleドライブのフォルダIDを設定
- 「実行」を押下
- 「ジョブ」ページに結果が追加される
- 該当のジョブ名を押下することで、実行結果を確認できる
実行後、BigQueryには以下のようなデータが格納されます。
このようにBigQueryにデータを格納しておくことで、Looker StudioなどのBIツールから集計などを行い分析することが可能になります。
まとめ
今回の記事では、Dataflowの概要や、実際に構築してみたパイプラインについてご紹介しました。
Dataflowは、完全マネージドなサーバーレス環境を提供することでインフラ管理の手間を省き、データ処理プロセス全体の効率化とスケーラビリティ向上に貢献する非常に有用なサービスです。
また、今回のようにApache Beamを用いて独自のパイプラインを構築することで、非構造化データの分析や外部APIとの連携も柔軟に実現可能となるため、ビジネスにおけるデータ利活用の加速にもつながります。
データ分析基盤の構築をお考えの際は、ぜひDataflowの活用をご検討ください。
このように当社ではGoogle関連のサービスを活用したアプリケーション開発を行い、Google Cloud・Google Workspaceをより便利にご利用いただけるようなお手伝いをしています。Google プロダクトを利用する上でのお困りごとがあればお気軽にご相談ください。
※本記事の情報および画像は 2026/4/6 時点での仕様のものです。