このページでは、pgvector
関数と演算子を含む vector
拡張機能を使用して、AlloyDB をベクトル データベースとして使用する方法について説明します。これらの関数と演算子を使用すると、エンベディングをベクトル値として保存できます。
必要なデータベース拡張機能
生成されたエンベディングを vector
値として保存するには、pgvector
関数と演算子を含む vector
拡張機能のバージョン 0.5.0.google-1
以降を使用します。これは、Google が 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
拡張機能を使用してインデックスを作成し、クエリのパフォーマンスを高速化できます。