BigQuery Graph と Spanner Graph を使用する

このドキュメントでは、 BigQuery GraphSpanner Graph を比較して、使用するグラフ ソリューションを決定するのに役立ちます。

この比較は推奨事項であり、絶対的なものではありません。 BigQuery Graph と Spanner Graph には機能の重複が多いため、ユーザーはワークロードのニーズを特定して、使用する機能を決定する必要があります。

BigQuery Graph と Spanner Graph を使用する場合

BigQuery Graph と Spanner Graph は、さまざまなタイプのグラフ ワークロードに対応します。BigQuery Graph は大規模な詳細分析用で、Spanner Graph はリアルタイム オペレーション用です。

BigQuery Graph

BigQuery Graph は、大規模なグラフに対して複雑なクエリを実行するように最適化されています。グローバル パターンを分析し、過去の傾向を特定して、大規模なデータセットに隠された関係を明らかにできます。

技術的な特性としては、大規模な最適化されたパフォーマンス、並列処理、グラフの大部分に対する複雑なクエリ、集中的なコンピューティング、複雑な集計などがあります。

一般的なユースケースは次のとおりです。

  • オフライン不正検出: 顧客グラフ内の既知の不正行為者と接続されている他の不審なユーザーを、同じメール、電話番号、住所を共有する接続の範囲内で、ネットワーク全体で検出します。不正検出の チュートリアルについては、Spanner & BigQuery: リアルタイム不正防御 シールドをご覧ください。
  • サプライ チェーンの最適化: 最終製品とそのコンポーネント間の関係を表す部品表のグラフを作成して、在庫計画を行います。すべての製品ラインで最上位の製品からルート コンポーネントまで分析することで、製品の納期を計算し、材料の可用性を把握します。
  • 顧客 360 セグメンテーション: 顧客 360 グラフを作成して、製品のサブスクリプション、コンバージョン、離反に関する顧客ジャーニーを把握します。これを使用して、顧客が離反する理由を特定し、使用パターンを特定します。また、グラフを使用して、オーディエンス全体で顧客セグメンテーションとオーディエンス ターゲティングを行います。

Spanner Graph

Spanner Graph はリアルタイム オペレーション用です。少数のグラフ要素に瞬時にアクセスする k-hop クエリを実行し、ミリ秒単位で不正を検出し、ID と依存関係の検証のためにリネージ トレースを実行し、ライブ レコメンデーションを提供する必要があるアプリケーションに最適化されています。

技術的な特性としては、ジッターを最小限に抑えた予測可能なレイテンシ、Spanner ノード数に応じて直線的にスケーリングする秒間クエリ数(QPS)、ほぼ無制限のスケーラビリティなどがあります。また、ノードテーブルとエッジテーブルのインターリーブ、常時可用性、グローバル整合性、単一のグラフノードまたはグラフノードのセットから始まるポイント ルックアップとマルチホップ クエリを備えた組み込みのグラフ ストレージも備えています。

一般的なユースケースは次のとおりです。

  • リアルタイム不正検出: クレジット カードの不正使用を、既知の不正なデバイスとアカウントのグラフと照らし合わせてミリ秒単位で確認します。
  • 自律型ネットワーク オペレーション: リアルタイムのパフォーマンス モニタリングと最適化のために、ネットワークのデジタル ツインを構築します。
  • エンティティ解決: 異なる個人情報(メール、電話番号、Vemo ID)から、リンクされた ID のクラスタを信頼できる情報源として構築します。広告の配信前に ID ルックアップに正規プロファイルを使用し、リアルタイムの不正検出を実行して、特徴ストアをトレーニングします。

BigQuery Graph と Spanner Graph の連携方法

BigQuery Graph と Spanner Graph は連携して包括的なソリューションを提供します。たとえば、顧客 360 のユースケースでは、次のようになります。

  1. リアルタイムの分析情報: カスタマー サービス エージェントは、Spanner Graph を使用して、リアルタイムの購入と配送の統計情報に基づいて、誤った商品の配送に関するユーザーからの苦情に対応します。
  2. レプリケートまたはクエリ: Spanner Change Streams を使用すると、複雑な抽出、変換、読み込み(ETL)を行わずに Spanner から BigQuery にデータをレプリケートできます。また、BigQuery 連携クエリを使用して、BigQuery から Spanner データを直接クエリすることもできます。
  3. パターンの分析: データ サイエンティストは、BigQuery Graph を使用して、同じデータで「離反ホットスポット」を特定し、顧客に「リスクあり」のラベルを付けます。
  4. フィードバック ループ: 離反を防ぐために、この顧客のクーポン コードを生成するために、リバース抽出、変換、読み込み(ETL)のサポートを使用して、「リスクあり」のラベルが Spanner Graph にプッシュされます。

BigQuery Graph と Spanner Graph 間でデータを移動する

ワークロードの要件に合わせて、Spanner Graph と BigQuery Graph 間でデータを移動できます。

  • フォワード ETL: 分析クエリのために Spanner から BigQuery にデータを移動するには、Dataflow テンプレートを使用します。

  • リバース ETL: BigQuery Graph から Spanner データを直接クエリできますが、BigQuery データを Spanner Graph に取り込む必要がある場合があります。EXPORT DATA SQL ステートメントを使用します。詳細については、リバース ETL パイプラインについてをご覧ください。

機能の比較

次の表に、最も最適化されているプロダクト別の機能の内訳を示します。

機能 BigQuery Graph(オフライン/バッチ) Spanner Graph(オンライン/リアルタイム)
グラフモデル、クエリ、可視化 統合グラフ モデリングとグラフ クエリ言語。すべて ISO SQL 標準の一部である GoogleSQL を使用します。グラフの可視化には同じインターフェースを使用します。 統合グラフ モデリングとグラフ クエリ言語。すべて ISO SQL 標準の一部である GoogleSQL を使用します。グラフの可視化には同じインターフェースを使用します。
主なワークロード オフライン(バッチ): 大規模なデータセットに対する集計。 オンライン(リアルタイム): レイテンシの低い読み取り/書き込みの量が多い。
クエリのレイテンシ 数秒から数時間。テラバイト/ペタバイトのスキャンに最適化されています。 ミリ秒から秒。ユーザー向けアプリに不可欠です。
クエリパターン グローバルまたはグラフ全体: 「ネットワークのリーチが 5,000 人を超えるユーザーは誰ですか?」 ローカルまたは近隣: 「友だちの友だちで、自分の 直接のサークルにいないのは誰ですか?」
スケーリング ペタバイト規模、ほぼ無制限、大規模な履歴データに最適化されています。 データ。 水平方向にスケーラブル、ほぼ無制限のスケーラビリティ、ホットデータに最適化されています。
データの更新速度 準リアルタイムまたはバッチ。さまざまなソース(Spanner 用 Data Boost を使用した Spanner Graph データ、Bigtable、Cloud Storage、Amazon S3 など)からデータにアクセスできます。 リアルタイム、強整合性。
データ入力 データレイク、履歴ログ、アーカイブされたトランザクション データ。 ライブ アプリケーション ストリーム、ユーザー インタラクション。
データの移動 Spanner から BigQuery へのフォワード抽出、 変換、読み込み(ETL)と、事前構築済みテンプレート(バッチ、ストリーミング)。 BigQuery から Spanner への (リバース ETL) を EXPORT_DATA と共に使用。クエリ フェデレーション(ゼロ ETL) 外部スキーマを使用。 Spanner から BigQuery へのフォワード抽出、 変換、読み込み(ETL)と、事前構築済みテンプレート(バッチ、ストリーミング)。 BigQuery から Spanner への (リバース ETL) を EXPORT_DATA と共に使用。クエリ フェデレーション(ゼロ ETL) 外部スキーマを使用。

次のステップ