ベクトル エンベディングを保存する

このページでは、pgvector 関数と演算子を含む vector 拡張機能を使用して、AlloyDB をベクトル データベースとして使用する方法について説明します。これらの関数と演算子を使用すると、エンベディングをベクトル値として保存できます。

必要なデータベース拡張機能

pgvector 関数と演算子を含む vector 拡張機能(バージョン 0.5.0.google-1 以降)を使用して、生成されたエンベディングを vector 値として保存します。これは、AlloyDB 固有の最適化によって拡張された pgvector のバージョンです。

CREATE EXTENSION IF NOT EXISTS vector;

生成されたエンベディングを保存する

AlloyDB データベースにテーブルが作成されていることを確認します。

ベクター エンベディングを保存する手順は次のとおりです。

  1. エンベディングを格納する vector[] 列をテーブルに作成します。

    ALTER TABLE TABLE ADD COLUMN EMBEDDING_COLUMN vector(DIMENSIONS);
    

    次のように置き換えます。

    • TABLE: テーブル名

    • EMBEDDING_COLUMN: 新しいエンベディング列の名前

    • DIMENSIONS: モデルがサポートするディメンションの数。

      たとえば、Vertex AI で textembedding-gecko 英語モデル(textembedding-gecko@003 など)を使用している場合は、768 を指定します。

  2. ベクトルをベクトル列にコピーします。次の例では、エンベディングが CSV ファイルで使用可能であると想定しています。

    COPY TABLE (EMBEDDING_COLUMN) FROM 'PATH_TO_VECTOR_CSV (FORMAT CSV);
    

    次のように置き換えます。

    • PATH_TO_VECTOR_CSV: CSV ファイルを保存した場所のフルパス。

エンベディングを保存したら、vector 拡張機能または alloydb_scann 拡張機能を使用してインデックスを作成して、クエリのパフォーマンスを向上させることができます。

次のステップ