pgvector 関数と演算子を含む vector 拡張機能を使用して、AlloyDB をベクトル データベースとして使用する方法について説明します。これらの関数と演算子を使用すると、エンベディングをベクトル値として保存できます。
必要なデータベース拡張機能
生成されたエンベディングを vector 値として保存するには、pgvector 関数と演算子を含む vector 拡張機能のバージョン 0.5.0.google-1 以降を使用します。これは、AlloyDB 固有の最適化によって拡張された pgvector のバージョンです。
CREATE EXTENSION IF NOT EXISTS vector;
生成されたエンベディングを保存する
AlloyDB データベースにテーブルを作成済みであることを確認します。
ベクトル エンベディングを保存する手順は次のとおりです。
- エンベディングを格納する - vector[]列をテーブルに作成します。- ALTER TABLE TABLE ADD COLUMN EMBEDDING_COLUMN vector(DIMENSIONS);- 次のように置き換えます。 - TABLE: テーブル名。
- EMBEDDING_COLUMN: 新しいエンベディング列の名前
- DIMENSIONS: モデルがサポートするディメンションの数。- たとえば、Vertex AI で - text-embedding英語モデル(- text-embedding-005など)を使用している場合は、- 768を指定します。
 
- ベクトルをベクトル列にコピーします。次の例では、エンベディングが CSV ファイルで使用可能であることを前提としています。 - COPY TABLE (EMBEDDING_COLUMN) FROM 'PATH_TO_VECTOR_CSV (FORMAT CSV);- 次のように置き換えます。 - PATH_TO_VECTOR_CSV: CSV ファイルを保存した場所のフルパス。
 
エンベディングを保存したら、vector 拡張機能または alloydb_scann 拡張機能を使用してインデックスを作成することで、クエリのパフォーマンスを高められます。