AlloyDB AI は、AlloyDB for PostgreSQL の高度な拡張機能であり、高性能ベクトル処理をエンタープライズ グレードのリレーショナル データベースに直接統合するように設計されています。これにより、デベロッパーは構造化形式と非構造化形式の両方でデータのセマンティックな意味を理解する、高度でインテリジェントなアプリケーションを構築できます。AlloyDB AI は、SQL 機能と最先端のベクトル検索テクノロジーを統合することで、データ マネジメントと検索拡張生成(RAG)ワークフローのための単一の AI 対応プラットフォームを提供します。これにより、個別のベクトル データベースをデプロイして管理する必要がなくなります。
コア アーキテクチャとパフォーマンス
AlloyDB は、ベクトル機能に PostgreSQL の pgvector 拡張機能を使用します。一般的な HNSW インデックスと、Google 検索の研究から生まれた最先端のベクトル検索アルゴリズムである Scalable Nearest Neighbors(ScaNN)インデックスをサポートしています。PostgreSQL 環境へのこの深い統合により、高速で pgvector 互換のオペレーションと高度なセマンティック クエリが可能になります。
ScaNN インデックスのパフォーマンス
ScaNN インデックスは、標準の PostgreSQL HNSW(Hierarchical Navigable Small Worlds)インデックスよりも大幅に高速で、要求の厳しい AI ワークロードに必要な高速ベクトル オペレーションを提供します。
| オペレーション | パフォーマンスの向上(標準の PostgreSQL HNSW インデックスとの比較) | 機能 |
|---|---|---|
| インデックスの作成 | 最大 10 倍高速 | 並列インデックスの構築 |
| ベクトル検索クエリ | 最大 4 倍高速 | インデックスの自動メンテナンス |
| フィルタ付きベクトル検索クエリ | 最大 10 倍高速 | エンタープライズ クラスのオブザーバビリティ |
適応型フィルタリングとクエリの最適化
ScaNN インデックスは PostgreSQL クエリ プランナーと緊密に統合されており、ベクトル類似性と標準の構造化メタデータ フィルタの両方を含むハイブリッド クエリで最適なパフォーマンスを確保します。
- 適応型フィルタリング: このメカニズムにより、フィルタ、結合、ベクトル インデックスを同時に使用する際に最適なパフォーマンスが確保されます。これは、実行時にクエリ実行統計情報をモニタリングし、フィルタの選択性を学習し、実行プランを適応的に調整して、フィルタ適用とベクトル検索の最も効率的な順序を決定することで機能します。
- インライン フィルタリング: ScaNN アルゴリズムに固有のインライン フィルタリングは、ベクトル検索とメタデータ フィルタ評価を同時に実行する最適化戦略です。セカンダリ PostgreSQL インデックス(B-tree、GIN、GiST など)を活用して、フィルタ条件を満たす行のショートリスト(ビットマップ)を作成します。後続のベクトル スキャンでは、事前フィルタリングされたセットに含まれるベクトルの距離のみが計算されるため、特にフィルタの選択性が中程度の場合に、計算オーバーヘッドが大幅に削減されます。
Vertex AI とのシームレスな統合
AlloyDB AI は、Vertex AI エコシステムとの組み込み統合用に設計されており、SQL を使用してデータベース内でデータを直接変換して拡充できます。
エンベディングの自動生成
このプラットフォームは、google_ml_integration 拡張機能を使用した埋め込みの自動生成をサポートしています。この機能により、運用データ(テキスト、画像、動画)を text-embedding-005 などの Vertex AI モデルを使用してベクトル エンベディングに変換できます。
- モデル登録: Vertex AI モデル(エンベディングと生成)は、
google_ml.create_modelプロシージャを使用してデータベース内に登録されます。 - 仮想列:
embedding()関数を使用して、エンベディングを自動的に生成し、生成された列に保持できます。これにより、ベクトルデータがソース列データと同期された状態を維持できます。
ALTER TABLE my_table
ADD COLUMN embedding vector(768)
GENERATED ALWAYS AS (embedding('text-embedding-005', source_column)) STORED;
クエリと生成 AI によるエンリッチメント
ベクトル エンベディングが保存されると、デベロッパーは標準 SQL のベクトル類似性演算子(<=>)を使用して高度なセマンティック検索を実行できます。さらに、これらの検索の結果は、RAG ベースのクエリ拡張やユーザーフレンドリーな出力生成のために google_ml.generate_content などの関数を使用して、gemini-2.0-flash-001 などの生成 AI モデルに直接渡すことができます。