コンテンツに移動
データ分析

Dataflow を使用した MongoDB Atlas と BigQuery のデータ パイプライン

2022年10月15日
Google Cloud Japan Team

※この投稿は米国時間 2022 年 10 月 1 日に、Google Cloud blog に投稿されたものの抄訳です。

包括的な分析戦略の構築と運用のために、データはどの組織にとっても不可欠です。たとえば、BFSI(バンキング、金融、サービス、保険)セクターの各取引でデータが生成されています。製造業では、センサーデータが膨大で異質なものになる可能性があります。ほとんどの組織では数多くの異なるシステムを保持しており、各組織にそれらのシステムに含まれるデータを扱うための独自のルールやプロセスがあります。

Google Cloud は、BigQuery を始めとするデータの保存、管理、処理、有効活用を実現するエンドツーエンドのデータクラウド ソリューションを提供しています。BigQuery はあらゆる規模の分析処理(OLAP)を実行するために設計されたフルマネージドのデータ ウェアハウスです。BigQuery には、機械学習、地理空間分析、データ共有、ログ分析、ビジネス インテリジェンスなどの機能が組み込まれています。MongoDB はドキュメントベースのデータベースで、数千もの同時セッションを実行するリアルタイムのオペレーショナル アプリケーションをミリ秒の応答時間で処理します。多くの場合、MongoDB からキュレートされたデータのサブセットは、集計や複雑な分析のために BigQuery に複製され、運用データとエンドカスタマー エクスペリエンスをさらに充実させます。この説明からわかるように、MongoDB Atlas と Google Cloud BigQuery は相互補完的なテクノロジーです。

Google Cloud Dataflow の概要

Dataflow はサーバーレスで高速かつ費用対効果の高い、真にストリームが統合されるバッチデータ処理システムです。Dataflow のサーバーレス アプローチにより、データ エンジニアリングのワークロードから運用上のオーバーヘッドが取り除かれるため、Dataflow を使用することでチームはサーバー クラスタの管理ではなく、プログラミングに専念できます。Dataflow はストリーミング変換を非常に効率的に実装できるため、必要なデータモデルの変更を含めて、あるプラットフォームから別のプラットフォームへデータを移行させるのに最適です。Dataflow によるデータ移行の一環として、不正取引の特定やリアルタイムのレコメンデーションなど、その他のユースケースの実装も可能です。

MongoDB Atlas と BigQuery 向けの新しい Dataflow テンプレートを発表

Atlas から BigQuery へ、あるいはその逆方向に、データの移行と変換を行うために Dataflow は広く使用されてきました。そのために、お客様は Apache Beam ライブラリを使用してカスタムコードを記述し、Dataflow ランタイム上にデプロイしてきました。

Atlas と BigQuery 間のデータ移行と変換を簡単にするために、MongoDB と Google チームは連携して同じテンプレートを構築し、Google Cloud コンソールの Dataflow ページの一部として利用できるようにしました。Dataflow テンプレートを使用すると、Dataflow パイプラインをデプロイ用にパッケージ化できます。テンプレートには、パイプラインを Dataflow に直接デプロイする場合と比べて、いくつかのメリットがあります。Dataflow テンプレートと Dataflow ページにより、ソース、ターゲット、変換、データに適用するその他のロジックを定義することが簡単になります。Dataflow ページからすべての接続パラメータを入力すると、クリック一つで Dataflow ジョブがトリガーされ、データが移行されます。

まず始めに、3 つのテンプレートをご用意しました。これらのテンプレートのうちの 2 つは、MongoDB から BigQuery へ、またその反対の読み取りと書き込みを行うバッチ テンプレートです。3 つ目は、Pub/Sub で push された変更ストリーム データを読み取って、BigQuery に書き込みます。以下は、現在利用できる MongoDB と Google Cloud ネイティブのサービスを連携させるためのテンプレートです。

1. MongoDB to BigQuery テンプレート:

MongoDB to BigQuery テンプレートは、MongoDB からドキュメントを読み取り、BigQuery に書き込むバッチ パイプラインです。

https://storage.googleapis.com/gweb-cloudblog-publish/images/1_MDBtoBQ.max-900x900.jpg

2. BigQuery to MongoDB テンプレート:

BigQuery to MongoDB テンプレートは、BigQuery からのテーブルを読み取り、MongoDB に書き込むのに使用できます。

https://storage.googleapis.com/gweb-cloudblog-publish/images/2_BQtoMDB.max-1000x1000.jpg

3. MongoDB to BigQuery CDC テンプレート:

MongoDB to BigQuery CDC(変更データ キャプチャ)テンプレートは、MongoDB 変更ストリームと連携するストリーミング パイプラインです。パイプラインは、MongoDB 変更ストリームを介して Pub/Sub に push された JSON レコードを読み取り、BigQuery に書き込みます。

https://storage.googleapis.com/gweb-cloudblog-publish/images/3_MDBtoBQCDC.max-1800x1800.jpg

Google Cloud コンソールの Dataflow ページは、ジョブ作成の高速化を支援します。これにより、Java 環境のセットアップやその他の追加の依存関係が不要になります。ユーザーは、UI から URI、データベース名、コレクション名、BigQuery テーブル名などのパラメータを渡すことで、即座にジョブを作成できます。

以下の Dataflow ページで、これらの新しい MongoDB テンプレートをご確認いただけます。

https://storage.googleapis.com/gweb-cloudblog-publish/images/4_MDBtoBQCDC.max-1800x1800.jpg

以下は、MongoDB to BigQuery(バッチ)テンプレートのパラメータ構成画面です。必要なパラメータはお選びになるテンプレートによって異なります。

https://storage.googleapis.com/gweb-cloudblog-publish/images/5_MDBtoBQCDC.max-2000x2000.jpg

開始方法

これらのテンプレートの詳細については、Google 提供の Dataflow テンプレート ドキュメント ページをご参照ください。ご質問がございましたら、お気軽にお問い合わせいただくか、Google Cloud コミュニティ フォーラムをご利用ください。

リファレンス

  1. Apache Beam I/O コネクタ


謝辞: MongoDB の Paresh Saraf 氏と Google Cloud の Maruti C をはじめ、このコラボレーションとレビューに尽力してくれた Google Cloud および MongoDB チームの多くのメンバーに感謝します。


- MongoDB ソリューション アーキテクト Venkatesh Shanbhag 氏
Google Cloud グループ プロダクト マネージャー Sachin Agarwal
投稿先