BigQuery Graph と Spanner Graph を使用する
このドキュメントでは、BigQuery Graph と Spanner Graph を比較して、使用するグラフ ソリューションを決定するのに役立ちます。
この比較は推奨事項であり、絶対的なものではありません。BigQuery Graph と Spanner Graph には、機能の重複がかなりあります。ユーザーは、独自のワークロードのニーズを特定して、どちらの機能を使用するかを決定する必要があります。
BigQuery Graph と Spanner Graph の使い分け
BigQuery Graph と Spanner Graph は、異なるタイプのグラフ ワークロードに対応します。BigQuery Graph は大規模な詳細分析向け、Spanner Graph はリアルタイム オペレーション向けです。
BigQuery Graph
BigQuery Graph は、大規模なグラフに対して複雑なクエリを実行するように最適化されています。グローバル パターンを分析し、過去の傾向を特定して、大規模なデータセットに隠された関係を明らかにできます。
技術的な特徴としては、大規模なパフォーマンスの最適化、並列処理、グラフの大部分にわたる複雑なクエリ、集中的なコンピューティング、複雑な集計などがあります。
一般的なユースケースは次のとおりです。
- オフラインの不正行為検出: 顧客グラフで、ネットワーク全体で既知の不正行為者に関連付けられている他の不審なユーザーを、同じメール、電話、住所を共有する数段階の接続内で見つけます。不正行為の検出に関するチュートリアルについては、Spanner と BigQuery: Fraud Defense シールドをご覧ください。
- サプライ チェーンの最適化: 在庫計画のために、最終製品とそのコンポーネントの関係を表す部品構成表のグラフを作成します。すべての商品ラインにわたって、最上位の商品からルート コンポーネントまでを分析することで、商品の納期を計算し、資材の可用性を把握します。
- 顧客 360 セグメンテーション: 顧客 360 グラフを作成して、プロダクトのサブスクリプション、コンバージョン、チャーンのカスタマー ジャーニーを把握します。これを使用して、顧客が離脱する理由を特定し、使用パターンを特定します。また、グラフを使用して、オーディエンス全体で顧客セグメンテーションとオーディエンス ターゲティングを行います。
Spanner Graph
Spanner Graph はリアルタイム オペレーション向けです。これは、少数のグラフ要素に即座にアクセスする k ホップクエリの実行、ミリ秒単位での不正行為の検出、ID と依存関係の検証のためのリネージ トレースの実行、ライブ レコメンデーションの提供が必要なアプリケーション向けに最適化されています。
技術的な特徴としては、ジッターを最小限に抑えた予測可能なレイテンシ、Spanner ノード数に比例してスケーリングする秒間クエリ数(QPS)、事実上無制限のスケーリングなどがあります。また、ノードとエッジテーブルのインターリーブ、常時稼働、グローバルな整合性、単一のグラフノードまたはグラフノードのセットから始まるポイント ルックアップとマルチホップ クエリを備えた組み込みのグラフ ストレージも備えています。
一般的なユースケースは次のとおりです。
- リアルタイムの不正行為検出: クレジット カードのスワイプを、既知の不正なデバイスとアカウントのグラフとミリ秒単位で照合します。
- 自律型ネットワーク運用: ネットワークのデジタルツインを構築して、リアルタイムのパフォーマンス モニタリングと最適化を実現します。
- エンティティ解決: さまざまな PII(メール、電話、Venmo ID)から、信頼できる情報源としてリンクされた ID のクラスタを構築します。広告を配信する前に、正規プロファイルを使用して ID 検索を行い、リアルタイムの不正行為検出を実行して、Feature Store をトレーニングします。
BigQuery Graph と Spanner Graph の連携
BigQuery Graph と Spanner Graph は連携して、包括的なソリューションを提供します。たとえば、顧客 360 のユースケースでは、
- リアルタイムの分析情報: カスタマー サービス エージェントは、Spanner Graph を使用して、リアルタイムの購入と配送の統計情報に基づいて、間違った商品の配送に関するユーザーの苦情に対応します。
- 複製またはクエリ: 複雑な抽出、変換、読み込み(ETL)を行わずに、Spanner 変更ストリームを使用して Spanner から BigQuery にデータを複製できます。また、BigQuery 連携クエリを使用して、BigQuery から Spanner データを直接クエリすることもできます。
- パターンを分析する: データ サイエンティストは、BigQuery Graph を使用して、同じデータで「解約ホットスポット」を特定し、顧客に「リスクあり」というラベルを付けます。
- フィードバック ループ: 「リスクあり」ラベルは、リバース抽出、変換、読み込み(ETL)のサポートにより Spanner Graph に push され、この顧客のクーポンコードを生成してチャーンを防止します。
BigQuery Graph と Spanner Graph 間でデータを移動する
ワークロードの要件に合わせて、Spanner Graph と BigQuery Graph の間でデータを移動できます。
フォワード ETL: 分析クエリのために Spanner から BigQuery にデータを移動するには、Dataflow テンプレートを使用します。
リバース ETL: BigQuery Graph から Spanner データを直接クエリできますが、BigQuery データを Spanner Graph に取り込む必要があるシナリオもあります。
EXPORT DATASQL ステートメントを使用します。詳細については、リバース ETL パイプラインについてをご覧ください。
機能の比較
次の表に、最も最適化されているプロダクト別の機能の詳細を示します。
| 機能 | BigQuery Graph(オフライン/バッチ) | Spanner Graph(オンライン/リアルタイム) |
|---|---|---|
| グラフモデル、クエリ、可視化 | 統合されたグラフ モデリングとグラフクエリ言語。すべてで、ISO SQL 標準の一部である GoogleSQL を利用。グラフの可視化に同じインターフェースを使用。 | 統合されたグラフ モデリングとグラフクエリ言語。すべてで、ISO SQL 標準の一部である GoogleSQL を利用。グラフの可視化に同じインターフェースを使用。 |
| 主なワークロード | オフライン(バッチ): 大規模なデータセットに対する集計。 | オンライン(リアルタイム): 低レイテンシの読み取り/書き込みの大量実行。 |
| クエリのレイテンシ | 数秒から数時間。テラバイト/ペタバイト規模のスキャンに最適化。 | 数ミリ秒から数秒。ユーザー向けアプリに不可欠。 |
| クエリパターン | グローバルまたはグラフ全体: 「ネットワーク リーチが 5,000 人を超えるのは誰?」 | ローカルまたは近隣: 「私の友だちの友だちで、私の直接の知り合いではない人は誰?」 |
| スケーリング | ペタバイト規模、実質的に無制限、大規模な過去のデータに最適化。 | 水平方向にスケーラブル、実質的に無制限のスケーリング、ホットデータに最適化。 |
| データの鮮度 | 準リアルタイムまたはバッチ。さまざまなソースからデータにアクセスできる(たとえば、Data Boost for Spanner、Bigtable、Cloud Storage、Amazon S3 を使用して Spanner Graph のデータにアクセスできる)。 | リアルタイム、強整合性。 |
| データ入力 | データレイク、履歴ログ、アーカイブされたトランザクション データ。 | ライブ アプリケーション ストリーム、ユーザー インタラクション。 |
| データの移動 |
Spanner から BigQuery(フォワード抽出、変換、読み込み(ETL))。事前構築済みのテンプレート(バッチ、ストリーミング)を使用。EXPORT_DATA を使用した BigQuery から Spanner(リバース ETL)。クエリ連携(ゼロ ETL)。外部スキーマを使用。 |
Spanner から BigQuery(フォワード抽出、変換、読み込み(ETL))。事前構築済みのテンプレート(バッチ、ストリーミング)を使用。EXPORT_DATA を使用した BigQuery から Spanner(リバース ETL)。クエリ連携(ゼロ ETL)。外部スキーマを使用。 |
次のステップ
- BigQuery Graph の詳細を確認する。
- Spanner Graph の詳細を確認する。