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

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

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

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

CREATE EXTENSION IF NOT EXISTS vector;

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

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

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

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

    ALTER TABLE TABLE ADD COLUMN EMBEDDING_COLUMN vector(DIMENSIONS);
    

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

    • TABLE: テーブル名

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

    • DIMENSIONS: モデルがサポートする次元の数。

      たとえば、text-embedding の英語モデル(Vertex AI での 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 拡張機能を使用してインデックスを作成し、クエリのパフォーマンスを高速化できます。

次のステップ