This page shows you how to use AlloyDB 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.5.0.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.
CREATE EXTENSION IF NOT EXISTS vector;
Store generated embeddings
Ensure that you have already created a table in your AlloyDB database.
To store vector embeddings, do the following:
Create a
vector[]column in your table to store your embeddings:ALTER TABLE TABLE ADD COLUMN EMBEDDING_COLUMN vector(DIMENSIONS);Replace the following:
TABLE: the table nameEMBEDDING_COLUMN: the name of the new embedding columnDIMENSIONS: the number of dimensions that the model supports.For example, if you are using one of the
text-embeddingEnglish models—for example,text-embedding-005with Vertex AI, specify768.
Copy the vectors to the vector column. The following example assumes 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 have stored your.CSVfile.
After you store the embeddings, you can use the vector extension or the alloydb_scann
extension to create indexes for faster query performance.