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
拡張機能を使用してインデックスを作成することで、クエリのパフォーマンスを高められます。