Store vector embeddings

Select a documentation version:

This page shows you how to use AlloyDB Omni as a vector database with the vector extension that includes pgvector functions and operators. These functions and operators let you store embeddings as vector values.

Required database extension

Use the vector extension, version 0.8.2.google-1 or later, which includes pgvector functions and operators, to store generated embeddings as vector values. This is a version of pgvector that Google has extended with optimizations specific to AlloyDB Omni.

CREATE EXTENSION IF NOT EXISTS vector;

Store generated embeddings

Ensure that you have already created a table in your AlloyDB Omni database.

To store vector embeddings, follow these steps:

  1. Create a vector[] column in your table to store your embeddings:

    ALTER TABLE TABLE_NAME ADD COLUMN EMBEDDING_COLUMN vector(DIMENSIONS);
    

    Replace the following:

    • TABLE_NAME: the name of the table.

    • EMBEDDING_COLUMN: the name of the new embedding column.

    • DIMENSIONS: the number of dimensions that the model supports.

      For example, if you use an English model like text-embedding-005 with Vertex AI, specify 768.

  2. Copy the vectors to the vector column. The following example assumes that your embeddings are available in a CSV file:

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

    Replace the following:

    • PATH_TO_VECTOR_CSV: the full path of where you stored your CSV file.

After you store the embeddings, you can use the vector extension or the alloydb_scann extension to create indexes for faster query performance.

What's next