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

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

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

生成されたエンベディングを vector 値として保存するには、pgvector 関数と演算子を含む vector 拡張機能のバージョン 0.5.0.google-1 以降を使用します。これは、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 でいずれかの text-embedding 英語モデル(text-embedding-005 など)を使用している場合は、768 を指定します。

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

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

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

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

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

次のステップ