このページでは、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: モデルがサポートする次元の数。たとえば、
text-embeddingの英語モデル(Vertex AI でのtext-embedding-005など)を使用している場合は、768を指定します。
ベクトルをベクトル列にコピーします。次の例では、エンベディングが CSV ファイルで使用可能であることを前提としています。
COPY TABLE (EMBEDDING_COLUMN) FROM 'PATH_TO_VECTOR_CSV (FORMAT CSV);次のように置き換えます。
PATH_TO_VECTOR_CSV:.CSVファイルを保存した場所のフルパス。
エンベディングを保存したら、vector 拡張機能または alloydb_scann 拡張機能を使用してインデックスを作成することで、クエリのパフォーマンスを高められます。