リアルタイム分析のアーキテクチャやデザインパターンを徹底解説!
- BigQuery
- Cloud
- Dataflow
- アーキテクチャ
本記事は、2022年4月19日に開催された Google の公式イベント「 Google Cloud Day : Digital ’22」において、 Google Cloud Japan のデータアナリティクススペシャリストである西村哲徳氏が講演された「 Google Cloud ではじめるリアルタイム分析〜ユースケースに合ったアーキテクチャやデザインパターンの解説〜」のレポート記事となります。
今回は、 Google Cloud (GCP)でリアルタイム分析を実現する上で、どのようなアーキテクチャや特徴があるのか?という点について、具体的なユースケースを踏まえたデザインパターンをご紹介します。
なお、本記事内で使用している画像に関しては、 Google Cloud Day : Digital ’22の「 Google Cloud ではじめるリアルタイム分析〜ユースケースに合ったアーキテクチャやデザインパターンの解説〜」を出典元として参照しております。
それでは、早速内容を見ていきましょう。
目次
リアルタイム分析の必要性
昨今、リアルタイム分析の必要性が高まっています。自社の保有データやアプリケーションから取得した情報などをリアルタイムに分析することで、変化への柔軟な対応や競争優位性に直結し、機会損失の防止を実現できます。また、データドリブンな意思決定により誤った判断を防いだり、タイムラグによる選択肢の減少を防いだりできます。
情報のビッグデータ化が進む現代においては、業種や規模を問わずに様々な会社がリアルタイム分析の技術を活用しています。ヘルスケアや金融、小売など、あらゆるビジネスシーンでリアルタイムにデータが分析され、企業活動の中で役立てられています。
リアルタイム分析の課題
従来のプラットフォームにおいて、リアルタイム分析には様々な課題が顕在化していました。例えば、増加するデータソースの取り込みやデータ処理における拡張性・柔軟性の不足などが挙げられます。
リアルタイム分析では、無制限なデータに対して処理を実行します。無制限に生成されるデータは絶え間なく流れてくるため、それらを集計する際の期間の切り方やダウンロードのタイミング、ウインドウの種類、イベント発生時間と処理時間との違いなど、考慮すべきポイントが多数存在します。
下図の例では、8時に発生したイベントが2つありますが、ネットワークなどの問題でパイプラインに到着する時間がずれると、処理時間が別々になってしまいます。これにより、一元的にデータを集計することが困難になり、分析にかかる工数が大きくなります。
このように、従来のプラットフォームにおけるリアルタイム分析には課題が存在し、これらが原因でデータ活用が進まない企業も一定数存在します。
Google Cloud (GCP)が提供するリアルタイム分析ソリューションとアーキテクチャ
Google Cloud (GCP)には、リアルタイム分析に活用できるソリューションがいくつか用意されており、データ収集サービスや分析ツールなど、多種多様なソリューションが揃っています。
また、アーキテクチャの観点では、
- 収集
- 処理
- 格納・分析
のように、カテゴリごとに最適なソリューションが搭載されています。例えば、収集であれば Pub/Sub や GCS 、処理であれば Dataflow 、格納・分析であれば Vertex AI や BigQuery 、 Cloud Bigtable などが該当します。
ここからは、 Pub/Sub と Dataflow の2つのサービスに注目して、それぞれの概要や特徴をご説明します。
Pub/Sub
Pub/Sub は、リアルタイムデータやイベントデータの取り込みを行うためのメッセージングサービスです。サーバーレスで提供されているため、ユーザーはサーバー構成を気にすることなく、すぐに利用することができます。
Pub/Sub の仕組みは「 Gmail 」「 Google 検索」「 Google 広告」などの各種 Google サービスでも採用されており、日々大量のデータを処理していることから、セキュリティ面で信頼できるツールであることが伺えます。
Pub/Sub に関心のある方は以下の記事がオススメです。
Google のメッセージングサービス Cloud Pub/Sub とは?特徴やユースケース、料金体系まで徹底解説!
Dataflow
Dataflow は Google Cloud (GCP)に内包されている ETL ツールであり、サーバーレスかつフルマネージドのデータ処理サービスです。なお、 ETL とは「 Extract (抽出)、 Transform (変換)、 Load (書き出し)」の略であり、企業内のあらゆるシステムからデータを抽出し、共有する機能を搭載したツールのことです。
ETL や BIツール 、 DWH などの違いについて理解を深めたい方は以下の記事も合わせてご覧ください。
データの活用で生産性向上!「BIツール」と「DWH」や「ETL」との違いとは?
Dataflow は Java や Python で処理を作り込むことができるのはもちろん、標準で提供されているテンプレートを使うことも可能です。また、クラウドストレージにアップロードした JDBC ドライバーを使用して、 Netezza や Exadata に接続できるテンプレートも用意されています。
リアルタイム分析においては、ウインドウ集計が一つの課題であると前述しましたが、 Dataflow では様々なウインドウの概念がプログラミングモデルとして提供されています。そのため、自社の状況に合わせて、最適なものを選択することができます。
また、リアルタイム分析におけるイベント時間と処理時間の違いに関して、 Dataflow では「ウォーターマーク」の活用によって、この課題を解決しています。ウォーターマークとは、ウインドウ内のデータがパイプラインに到着する時間をシステム的に自動予想するものです。
さらに、ウォーターマークを超えて到着した遅延データに関しても、制御を行うことが可能になります。このように、 Dataflow はリアルタイム分析を実行する上で、とても有効なソリューションであると言えるでしょう。
ユースケース別のデザインパターンとアーキテクチャ
ここからは、リアルタイム分析を実現するための Google Cloud (GCP)のデザインパターンをユースケース別にご紹介します。
今回ご紹介するユースケースは、
- クレジットカード不正利用のリアルタイム検出
- リアルタイムのクリックストリーム分析
- 動画クリップ内のオブジェクトの検出
- 個人情報の匿名化と再識別
の4つです。以下、順番に見ていきましょう。
アーキテクチャ1:クレジットカード不正利用のリアルタイム検出
1つ目のユースケースはクレジットカード不正利用のリアルタイム検出です。
新しいトランザクションが発生した場合、まずは Pub/Sub でリアルタイムにデータを収集し、その情報を Dataflow が読み込みます。その後、 Dataflow が Vertex AI に存在する不正検出のモデルに対してオンラインのリクエストを送り、その予測結果を BigQuery に保存し、 Looker で分析を行います。
なお、不正検出モデルは Vertex AI で設計可能ですが、 BigQuery にも BigQuery ML と呼ばれる機械学習の仕組みが備わっており、この BigQuery ML を使ってモデルを作ることもできます。ただし、これだけではオンライン予測には使えないため、一旦 BigQuery からモデルをエクスポートして、 Vertex AI にデプロイする必要があります。
アーキテクチャ2:リアルタイムのクリックストリーム分析
2つ目のユースケースはリアルタイムのクリックストリーム分析です。
例えば、自社のデータベースから購買データや在庫データなどをリアルタイムに取り込み、それらを店舗ごとに集計してわかりやすく見える化するような使い方が考えられます。さらに、取り込んだデータをクレンジングして BigQuery に格納することも可能です。
流れとしては、はじめに Dataflow で複数ソースからの読み込みを行い、複数の宛先に書き込みを実行します。その後、 Looker を活用することで各種データを可視化します。
データクレンジングについて理解を深めたい方は以下の記事がオススメです。
データ活用に欠かせないデータクレンジングとは?具体的な方法を4ステップで解説!
データクレンジングサービスについて理解を深めたい方は以下の記事も合わせてご覧ください。
効率的なデータクレンジングを実現する Cloud Dataprep とは?メリットや活用事例まで一挙に紹介!
アーキテクチャ3:動画クリップ内のオブジェクトの検出
3つ目のユースケースは動画クリップ内のオブジェクトの検出です。
このユースケースは「パターン認識」と呼ばれる手法を採用しており、動画クリップ内のオブジェクトをリアルタイムに検出します。今回はデータソースが GCS になっていますので、ファイルベースのリアルタイム分析になります。
GCS に動画ファイルが届くと、その通知が Pub/Sub に送信され、その送信情報が Dataflow に転送されてデータファイルを取り込みます。その後、ファイル内のコンテンツを Cloud Video Intelligence API で検出し、 BigQuery でクエリを実行して分析する、という流れです。
なお、 Cloud Video Intelligence API は Google が事前トレーニングしたモデルを提供しており、この API を活用することで簡単にオブジェクトの検出を行うことができます。また、クライアントライブラリや Micro Batching が搭載されているため、より処理効率の高い形で Cloud Video Intelligence API をコール可能になります。
アーキテクチャ4:個人情報の匿名化と再識別
4つ目のユースケースは個人情報の匿名化と再識別です。
このユースケースもファイルベース関連のリアルタイム分析となっていますが、今回は Pub/Sub に通知を送るのではなく、 Dataflow が一定間隔で GCS に対してコーリングを行うことで、必要なデータを GCS に取り込みます。
そして、取り込まれたデータを Cloud DLP で匿名化し、そのデータを Dataflow で受け取り、 BigQuery へ格納します。これにより、データが匿名化された状態で、安心して分析作業を進めることができます。
また、 Cloud DLP は機密性の高いデータを検出することも可能です。例えば、ファイルの中身を読み込んでクレジットカード情報などの個人情報を特定し、これらのデータを検出した上でマスキングや暗号化によって匿名化するような使い方ができます。
さらに、 Cloud DLP を呼ぶ場合は1件ずつコールするのではなく、 Dataflow 側でまとめてリクエストを送信することでスループットを最大化することが可能です。
ここまで、計4つのアーキテクチャをご紹介しましたが、全てにおいて BigQuery が登場していることがわかります。 BigQuery は難しいコードを記述する必要はなく、専門知識を持たない方でもクエリを実行するだけで様々な処理を簡単に実行できる便利なソリューションです。
以下の記事でトランザクション系のデータベースと BigQuery を組み合わせたリアルタイム分析のやり方を詳しく解説していますので、関心のある方はぜひご覧ください。
効率的なリアルタイム分析を実現! BigQuery を活用したレプリケーションのやり方とは?
リアルタイム分析ソリューションに関する Q&A
Q.Pub/Sub をバッチで使いたいのですがサンプルはありますか?
A.Pub/Sub をバッチで使う場合、ウインドウサイズでコントロールを行うなど、自社にとって使いやすい形のサンプルモデルを構築するのが良いと思います。
Q.動画クリップ内のオブジェクト検出の例ではどのような結果が BigQuery に格納されるイメージになりますか?また、どの程度のリアルタイム性が得られるでしょうか?
A.今回の例では、「この時間からこの時間に対象オブジェクトが映っている」といった見え方になります。また、リアルタイム性は非常に高く、数十秒単位で該当データが反映されます。
まとめ
本記事では、 Google Cloud (GCP)でリアルタイム分析を実現する上で、どのようなアーキテクチャや特徴があるのか?という点について、具体的なユースケースを踏まえたデザインパターンをご紹介しました。
リアルタイム分析を活用することで、
- 機会損失を防ぐ
- 打ち手を増やす
- 意思決定の精度を上げる
など、自社の競争優位性を高めることができるため、企業にとっては非常に魅力的な分析手法であると言えます。
本来、リアルタイム分析を実装するためには様々なハードルが存在しますが、 Google Cloud (GCP)の様々なソリューションを活用することで、一連のプロセスを手間なくワンストップで進めることが可能です。難しいコードを記述してゼロベースで開発する必要はなく、専門知識を持たない人でも簡単にリアルタイム分析を実現できます。
本記事でご紹介したように、スケーラブルかつオープンでインテリジェントな統合されたソリューションを利用できる点は Google Cloud (GCP)の大きな魅力だと言えるでしょう。また、 Google Cloud (GCP)は 100% クラウドで提供されているため、運用の手間がかからない点も嬉しいポイントです。
さらに、 Google Cloud (GCP)はシンプルなアーキテクチャで数多くのユースケースをサポートしているため、一度経験すれば新しい場面でも過去のアーキテクチャを応用して対応でき、様々なデータ分析の設計パターンを手間なく実装できます。
まずは気軽にスモールスタートすることも可能なため、本記事を参考にして Google Cloud (GCP)の導入およびリアルタイム分析の活用を検討してみてはいかがでしょうか?
弊社トップゲートでは、Google Cloud (GCP) 利用料3%OFFや支払代行手数料無料、請求書払い可能などGoogle Cloud (GCP)をお得に便利に利用できます。さらに専門的な知見を活かし、あなたのビジネスを加速させるためにサポートをワンストップで対応することが可能です。
Google Workspace(旧G Suite)に関しても、実績に裏付けられた技術力やさまざまな導入支援実績があります。あなたの状況に最適な利用方法の提案から運用のサポートまでのあなたに寄り添ったサポートを実現します!
Google Cloud (GCP)、またはGoogle Workspace(旧G Suite)の導入をご検討をされている方はお気軽にお問い合わせください。
メール登録者数3万件!TOPGATE MAGAZINE大好評配信中!
Google Cloud(GCP)、Google Workspace(旧G Suite) 、TOPGATEの最新情報が満載!