Spanner Graph の紹介: グラフ データベースの刷新
Bei Li
Sr. Staff Software Engineer
Chris Taylor
Google Fellow
※この投稿は米国時間 2024 年 8 月 2 日に、Google Cloud blog に投稿されたものの抄訳です。
多くの企業が、よりインテリジェントなアプリケーションを構築するために、接続されたデータから分析情報を引き出す優れた手法を模索しています。グラフ データベースは複雑ではありつつも、そのための強力な手法になります。今回発表する Spanner Graph は、目的に特化したグラフ データベース機能と Spanner をひとつにまとめた画期的なサービスです。Google の Spanner は、常時稼働でグローバルな整合性を備えた、規模の制限が事実上存在しないデータベースです。
グラフは、データの関係性を自然に表すことができるメカニズムです。相互に接続されているデータの分析に適しており、それまで見えていなかったパターンを明らかにし、データ間のつながりを把握する必要があるアプリケーションを強化します。グラフは、不正検出、レコメンデーション エンジン、ネットワーク セキュリティ、ナレッジグラフ、Customer 360、ルート計画、データのカタログ化、データ系列のトレースなど、さまざまなユースケースに活用できます。
ただし、このようなユースケースにスタンドアロンのグラフ データベースで対応しようとすると、以下のような課題が生ずることがあります。
-
データの断片化と運用上のオーバーヘッド: 複数の異なるグラフ データベースを維持することは、データサイロ、複雑性の増大、データのコピー間の不整合の原因になり得ます。これは、効率的な分析や意思決定を阻害します。
-
拡張性と可用性のボトルネック: スタンドアロンのグラフ データベースでは、ミッションクリティカルなアプリケーションで要求される拡張性と可用性に対応することが困難であることが多々あります。データ ボリュームと複雑性の増大が主な原因ですが、それがビジネスの成長の妨げになっています。
-
エコシステムとの不和とスキルギャップ: 組織はこれまで、SQL の専門性強化とインフラストラクチャ構築のために多大な投資を行ってきており、それが斬新なグラフ パラダイムの導入を困難にしています。これを行うにはリソースの増大やトレーニングの強化が必要になりますが、そのために、重要なビジネスニーズにリソースが割り当てられなくなるおそれがあります。
Spanner Graph はグラフ データ マネジメントを刷新するものであり、グラフ、リレーショナル、検索、AI 機能とシームレスに統合される、一元化されたデータベースが導入されます。データベースの拡張性に対する制限は事実上存在しません。Spanner Graph により、以下のことが可能になります。
-
ネイティブなグラフ エクスペリエンス: ISO Graph Query Language(GQL)インターフェースは直感的で使いやすく、パターンのマッチングや関係の走査をオープンな標準に基づいて実行できます。
-
リレーショナル モデルとグラフモデルの統合: GQL と SQL との間の完全な相互運用性が確保されており、データサイロを解体できるとともに、デベロッパーがそれぞれのクエリに最適なツールを選択できるようになります。グラフとテーブルデータの緊密な統合により、運用上のオーバーヘッドを解消し、複雑で費用のかかるデータ移動を回避できます。
-
組み込みの検索機能: ベクトル検索と全文検索の豊富な機能が用意されており、意味論的意味とキーワードを使用してグラフデータを効率的に取得できます。
-
業界トップクラスの拡張性、可用性、整合性: 定評のある Spanner の拡張性、可用性、整合性により、信頼できるデータ基盤を構築できます。
-
AI を活用した分析情報: Vertex AI と緊密に統合されているため、AI モデルの強力なスイートを Spanner Graph 内で直接活用し、AI ワークフローを加速できます。
「Credit Karma では、1 億 3,000 万人以上のメンバーのデータの安全性を確保することが最優先事項です。当社のシステムで発生する不正行為に対抗して根絶するために、私たちは Google と提携して Spanner Graph データベースを実装し、不正行為の防止機能を強化しています。この最先端のプラットフォーム機能によって、不正行為が発生する前に潜在的な脅威を特定できるようになりました。Spanner Graph があれば、不正なトランザクションやアカウントの乗っ取りなどの不正行為を効果的に検出、防止できます。」- Credit Karma エンジニアリング チーム
Spanner Graph 独自の優れた機能
Spanner Graph のグラフ データベースは使いやすく、将来にわたって効果を発揮します。Spanner Graph は、グラフ データベースの新しい国際基準である ISO GQL に対応しています。グラフデータ内のパターンのマッチング、関係の走査、結果のフィルタリングを直感的かつ簡潔に行えるため、隠れた関係性や分析情報が容易に明らかになります。
以下の例では、GQL を使用して簡単なコラボレーション フィルタリング アルゴリズムを実装しています。このアルゴリズムは、特定の商品「TrailMaster All-Terrain Boots」と一緒に頻繁に購入されている商品を特定して提案するものであり、ユーザー間でよくみられる好みに基づいておすすめを表示させます。
Spanner Graph はリレーショナルとグラフを結びつけるものです。Spanner Graph は、SQL の確立された機能と GQL のグラフ パターン マッチングの表現力を組み合わせたものです。これら両方のパラダイムの強みを、単一の統合されたデータベースの中で活かすことができます。
以下のコードサンプルでは、上記のコードサンプルと同じように、まずグラフクエリを使用して商品のおすすめを生成します。その後、このコードサンプルがテーブルデータとシームレスに結合して対応する価格の履歴を取得し、おすすめの商品とその価格の傾向を表示する包括的なビューを生成します。
また、データを移動させることなく宣言的にテーブルをグラフにマッピングできるため、グラフの利点を表形式のデータセットで活かすことが可能です。この機能によってデータモデルの選択の遅延結合、つまり延期が可能になり、実行する各ジョブに最適なクエリ言語を使用できるようになります。
以下のコードサンプルは、スキーマを宣言的に使用して、User、Product、Purchase
のテーブルをグラフ RetailGraph
にマッピングする方法を示しています。スキーマが、エンティティに関するセマンティック情報と、エンティティ同士の関係をエンコードします。生成されたグラフには GQL を使用してアクセスすることが可能で、柔軟で直感的な手法でデータをクエリできます。また、基になるテーブルには引き続き SQL を使用してアクセスできます。このデュアルアクセスの手法であれば、実行するタスクや分析に応じて、最適なデータモデル(グラフまたは表形式)を選択できるようになります。
Spanner Graph では、ベクトル検索と全文検索をシームレスに活用できます。この組み合わせを活用し、GQL によってグラフ構造内の関係の走査を行うと同時に、検索を活用してグラフのコンテンツを特定できます。具体的には、意味論的意味に基づいたベクトル検索を使用したノードやエッジの検出、全文検索を使用した特定のキーワードを含むノードやエッジの特定を行えます。これらを開始点として、その後 GQL を使用してグラフの残りの箇所をシームレスに探索できます。このような補完的な手法を統合することにより、単一の手法では特定が難しかった隠れたつながりやパターン、そして分析情報が得られるようになります。
以下のコードサンプルでは 2 段階のプロセスが採用されています。最初に全文検索によって「waterproof hiking boots(防水ハイキング ブーツ)」に関連する商品を効率的に取得し、続いて GQL を適用して検索結果を分析し、商品のおすすめを生成します。
Spanner Graph は数兆単位の数のエッジに拡張可能であり、また業界をリードする可用性、整合性も備えています。拡張性の制限が事実上存在しないことや、業界をリードする可用性、グローバルな整合性といった Spanner の特徴は Spanner Graph に引き継がれています。Spanner Graph は、高度にミッションクリティカルなグラフ アプリケーションでも活用できる優れたソリューションです。特に、Spanner の透過的シャーディングはきわめて大規模なデータセットに対して弾力的に拡張できるため、ユーザーの介入なしで大規模な並列クエリ処理が可能になります。
Spanner Graph と Vertex AI との緊密な統合によって、AI ワークフローが加速します。Spanner Graph は、Google Cloud のフルマネージドの統合 AI 開発プラットフォームである Vertex AI と緊密に統合されています。Spanner Graph のスキーマとクエリを使用して Vertex AI の広範な予測モデルと生成モデルに直接アクセスし、AI ワークフローを合理化できます。たとえば、LLM を使用してグラフノードとエッジのテキスト エンベディングを生成し、その結果でグラフを拡充することで、その後ベクトル検索を使用してセマンティック空間のグラフからの取得を実行できます。
Spanner Graph によって高度にインテリジェントなアプリケーションを構築可能
拡張性の制限が事実上存在しない Spanner Graph には、グラフ、リレーショナル、検索、AI 機能がシームレスに組み込まれており、可能性が大きく広がります。
-
商品のおすすめ: Spanner Graph でユーザー、商品、好みの間の複雑な関係をモデル化して、コンテキスト情報に豊んだナレッジグラフを構築できます。高速のグラフ走査と全文検索を組み合わせることで、ユーザークエリ、購入履歴、好み、他のユーザーとの類似性に基づいて商品のおすすめを行えるようになります。
-
金融詐欺行為の検出: Spanner Graph では、口座、トランザクション、個人などの金融エンティティを自然に表せるため、不審なつながりを簡単に特定できるようになります。そしてベクトル検索によって、エンべディング空間内の類似のパターンや異常が明らかになります。これらのテクノロジーを組み合わせることで、金融機関は潜在的な脅威を迅速かつ正確に特定し、金銭的損失を最小限に抑えることができます。
-
ソーシャル ネットワーク: Spanner Graph では、最大規模のソーシャル ネットワークであっても、個人、グループ、関心、相互のやり取りを直感的にモデル化できます。共通の友人、共通の関心、グループ メンバーシップの重複などのパターンを効果的に検出して、一人一人に合わせたおすすめを表示させることが可能です。全文検索が統合されているため、ユーザーは自然言語によるクエリを使用して、他のユーザー、グループ、投稿、あるいは特定のトピックを簡単に見つけられるようになります。
-
ゲーム: ゲームの世界を、プレーヤー、キャラクター、アイテム、位置などのエンティティ、そしてそれらの関係として自然な形で表現できます。Spanner Graph では、経路検出、在庫管理、ソーシャルなやり取りなど、ゲームシステムに不可欠なつながりを効率的に走査できます。また、拡張性やグローバルな整合性を特徴とする Spanner Graph であれば、使用量がピークになる時間帯でも、全プレーヤーにシームレスで公正なエクスペリエンスを確実に提供できるようになります。
-
ネットワーク セキュリティ: デバイス、ユーザー、イベントの間の相互依存関係を時系列全体にわたって理解することは、パターンや異常を特定するために不可欠です。セキュリティ プロフェッショナルは Spanner Graph のリレーショナルとグラフの相互運用性を活用して、グラフ機能で攻撃の起点を特定し、セキュリティ侵害の影響を評価し、それらの調査結果を時間的傾向と関連付けることで、プロアクティブな脅威検出と低減が可能になります。
-
GraphRAG: Spanner Graph を活用し、基盤モデルをナレッジグラフでグラウンディングすることで、検索拡張生成(RAG)をいっそう強化できます。また Spanner Graph では、グラフと表形式データを融合させることで、一方だけでは表現できないコンテンツ情報で AI アプリケーションを拡充できるようになります。Spanner Graph は比類ない拡張性を備えており、最大規模のナレッジグラフにも対応できます。組み込みのベクトル検索と Vertex AI の統合によって、生成 AI のワークフローが合理化されます。
今すぐ Spanner Graph を始めましょう
このクイック セットアップ ガイドに沿って、さっそく Spanner Graph の機能を活用してください。セットアップやご利用に関してご質問がある場合は、コミュニティ フォーラムで「google-spanner-graph」のタグを付けるか、spanner-graph-feedback@google.com までメールでお問い合わせください。
-シニア スタッフ ソフトウェア エンジニア、Bei Li
-Google Fellow、Chris Taylor