Easily deploy a pgvector-enabled PostgreSQL server to Azure
The pgvector extension was first released in 2021 but has shot up in popularity in the last year, as developers discover what is possible with vector embeddings, vector similarity, and vector search. Once we start storing embedding vectors in database rows, we can make queries like "which movies are more similar to each other, based on their synopsis?" and "which retail item's descriptions most closely match this user's query?"
What is pgvector?
The pgvector extension allows PostgreSQL users to store columns of a vector type, create an index (HNSW or IVF) to efficiently index the vector fields, and query using vector distance operators (cosine, Euclidean, or inner product). Or, to put that in SQL form:
Note: While the extension is typically referred to as "pgvector", the actual extension name is "vector", so that is what's used in the CREATE EXTENSION statement above.
Using pgvector on Azure PaaS
Azure now has multiple PaaS offerings for PostgreSQL that support the pgvector extension: PostgreSQL Flexible Server and Azure Cosmos DB PostgreSQL server.
If you already have an existing Azure PostgreSQL server, you can enable the extension manually in the Portal, as shown below and described in the linked tutorials.
A PostgreSQL flexible server with pgvector extension enabled.
An easy template for pgvector deployment
To make it even easier to get started with pgvector on PostgreSQL Flexible Server, we've created a template project that contains infrastructure-as-code (Bicep files) and support for the Azure Developer CLI (azd). Clone or download the project here:
https://github.com/Azure-Samples/azure-postgres-pgvector-python
With a few commands, you'll have a pgvector-enabled PostgreSQL server provisioned in your Azure account. We've also added keyless authentication to the template, so you can authenticate with your Azure credential instead of a secret.
The template project includes multiple Python scripts showing you how to connect to your PostgreSQL server and use the pgvector extension in the most common SQL packages: psycopg2, asyncpg, SQLAlchemy, and SQLModel.
For example, here's a selection of the code from a SQLAlchemy example for storing movie titles and their embeddings:
See the full code in the repository.
There are so many ways that you can use the pgvector extension once you've gotten started with it, both as a tool in building generative AI applications (especially RAG apps), but also in any situation where similarity is a heuristic, like recommendations, fraud detection, and more. Start bringing vectors into your apps today and let us know what you build!
Published on:
Learn moreRelated posts
Coding at the Speed of Innovation: AI and more with Azure SQL Database
As Build 2024 approaches, the Azure SQL Database team is preparing a great line-up of product announcements. Innovation continues to be a big ...
Azure Custom Policy- PostgreSQL Product - Compliance Report not Available- New Feature Request
If you try to create custom policy to add diagnostic settings for Azure Cosmos DB for PostgreSQL Cluster for log analytics and assign policy a...
Microsoft Causes Fuss Around Azure MFA Announcement
On May 14, Microsoft announced that they will require Azure MFA for connections to services starting in July 2024. No details about the implem...
PostgreSQL for your AI app's backend | Azure Database for PostgreSQL Flexible Server
Use Postgres as a managed service on Azure. As you build generative AI apps, explore advantages of Azure Database for Postgres Flexible Server...
Storage migration: Combine Azure Storage Mover and Azure Data Box
Migrating storage from on-premises can be challenging. That’s why we are on a mission to make your migrations as simple as possible. We've dev...
Loop DDoS Attacks: Understanding the Threat and Azure's Defense
In the realm of cybersecurity, Distributed Denial-of-Service (DDoS) attacks are a significant concern. The recent holiday season has unveiled ...
Azure Communication Services at Microsoft Build 2024
Join us in-person in Seattle or virtually for Microsoft Build 2024 from May 21 to 24. We're excited to share the latest updates from Azure Com...
Azure Developer CLI (azd) – May 2024 Release
This post announces the May release of the Azure Developer CLI (`azd`), which includes a new demo mode, various .NET Aspire enhancements, and ...
Join us at Build 2024: Get the latest on Azure Cosmos DB in Seattle or online!
Are you ready to dive into the future of AI and data innovation? Microsoft Build 2024 is just around the corner, taking place May 21–23 in Sea...