Dataflow を使用した MongoDB Atlas と BigQuery のデータ パイプライン
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 に書き込むバッチ パイプラインです。
2. BigQuery to MongoDB テンプレート:
BigQuery to MongoDB テンプレートは、BigQuery からのテーブルを読み取り、MongoDB に書き込むのに使用できます。
3. MongoDB to BigQuery CDC テンプレート:
MongoDB to BigQuery CDC(変更データ キャプチャ)テンプレートは、MongoDB 変更ストリームと連携するストリーミング パイプラインです。パイプラインは、MongoDB 変更ストリームを介して Pub/Sub に push された JSON レコードを読み取り、BigQuery に書き込みます。
Google Cloud コンソールの Dataflow ページは、ジョブ作成の高速化を支援します。これにより、Java 環境のセットアップやその他の追加の依存関係が不要になります。ユーザーは、UI から URI、データベース名、コレクション名、BigQuery テーブル名などのパラメータを渡すことで、即座にジョブを作成できます。
以下の Dataflow ページで、これらの新しい MongoDB テンプレートをご確認いただけます。
以下は、MongoDB to BigQuery(バッチ)テンプレートのパラメータ構成画面です。必要なパラメータはお選びになるテンプレートによって異なります。
開始方法
これらのテンプレートの詳細については、Google 提供の Dataflow テンプレート ドキュメント ページをご参照ください。ご質問がございましたら、お気軽にお問い合わせいただくか、Google Cloud コミュニティ フォーラムをご利用ください。
リファレンス
謝辞: MongoDB の Paresh Saraf 氏と Google Cloud の Maruti C をはじめ、このコラボレーションとレビューに尽力してくれた Google Cloud および MongoDB チームの多くのメンバーに感謝します。
- MongoDB ソリューション アーキテクト Venkatesh Shanbhag 氏
- Google Cloud グループ プロダクト マネージャー Sachin Agarwal