このページでは、pgvector
関数と演算子を含む vector
拡張機能を使用して、AlloyDB をベクトル データベースとして使用する方法について説明します。これらの関数と演算子を使用すると、エンベディングをベクトル値として保存できます。
必要なデータベース拡張機能
pgvector
関数と演算子を含む vector
拡張機能(バージョン 0.5.0.google-1
以降)を使用して、生成されたエンベディングを vector
値として保存します。これは、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 で
textembedding-gecko
英語モデル(textembedding-gecko@003
など)を使用している場合は、768
を指定します。
ベクトルをベクトル列にコピーします。次の例では、エンベディングが
CSV
ファイルで使用可能であると想定しています。COPY TABLE (EMBEDDING_COLUMN) FROM 'PATH_TO_VECTOR_CSV (FORMAT CSV);
次のように置き換えます。
PATH_TO_VECTOR_CSV
:CSV
ファイルを保存した場所のフルパス。
エンベディングを保存したら、vector
拡張機能または alloydb_scann
拡張機能を使用してインデックスを作成して、クエリのパフォーマンスを向上させることができます。