AlloyDB AI ist eine erweiterte Version von AlloyDB for PostgreSQL, die für die Integration einer leistungsstarken Vektorverarbeitung direkt in die relationale Datenbank für Unternehmen entwickelt wurde. Damit können Entwickler anspruchsvolle, intelligente Anwendungen erstellen, die die semantische Bedeutung von Daten in strukturierten und unstrukturierten Formaten verstehen. Durch die Vereinheitlichung von SQL-Funktionen mit modernster Vektorsuchtechnologie bietet AlloyDB AI eine einheitliche, KI-fähige Plattform für die Datenverwaltung und RAG-Workflows (Retrieval-Augmented Generation). Dadurch ist es nicht mehr erforderlich, eine separate Vektordatenbank bereitzustellen und zu verwalten.
Grundlegende Architektur und Leistung
AlloyDB verwendet die pgvector-Erweiterung von PostgreSQL für Vektorfunktionen. Sie unterstützt den beliebten HNSW-Index sowie den ScaNN-Index (Scalable Nearest Neighbors), einen hochmodernen Vektorsuchalgorithmus, der auf jahrelanger Forschung im Bereich der Google Suche basiert. Diese enge Einbindung in die PostgreSQL-Umgebung ermöglicht schnelle, mit pgvector kompatible Vorgänge und erweiterte semantische Abfragen.
ScaNN-Indexleistung
Der ScaNN-Index bietet erhebliche Geschwindigkeitsvorteile gegenüber dem Standard-HNSW-Index (Hierarchical Navigable Small Worlds) von PostgreSQL und ermöglicht schnelle Vektoroperationen, die für anspruchsvolle KI-Arbeitslasten erforderlich sind:
| Vorgang | Leistungssteigerung (im Vergleich zum standardmäßigen PostgreSQL-HNSW-Index) | Features |
|---|---|---|
| Index erstellen | Bis zu 10-mal schneller | Paralleles Erstellen von Indexen |
| Vektorsuchanfragen | Bis zu 4-mal schneller | Automatische Indexwartung |
| Gefilterte Vektorsuchanfragen | Bis zu 10-mal schneller | Beobachtbarkeit auf Unternehmensniveau |
Adaptives Filtern und Abfrageoptimierung
Der ScaNN-Index ist eng in den PostgreSQL-Abfrageplaner eingebunden, um eine optimale Leistung bei hybriden Abfragen zu gewährleisten, die sowohl Vektorähnlichkeit als auch standardmäßige strukturierte Metadatenfilter umfassen.
- Adaptives Filtern:Dieser Mechanismus sorgt für eine optimale Leistung, wenn Filter, Joins und Vektorindexe gleichzeitig verwendet werden. Dazu werden Statistiken zur Abfrageausführung zur Laufzeit beobachtet, die Selektivität von Filtern wird ermittelt und der Ausführungsplan wird adaptiv angepasst, um die effizienteste Reihenfolge für die Anwendung von Filtern und die Vektorsuche zu bestimmen.
- Inline-Filterung:Die Inline-Filterung ist eine Optimierungsstrategie, die speziell für den ScaNN-Algorithmus entwickelt wurde. Dabei werden die Vektorsuche und die Auswertung von Metadatenfiltern gleichzeitig ausgeführt. Dabei werden sekundäre PostgreSQL-Indexe (z. B. B-Bäume, GIN oder GiST) verwendet, um eine Shortlist (Bitmap) von Zeilen zu erstellen, die die Filterkriterien erfüllen. Beim nachfolgenden Vektorscan werden nur Distanzen für Vektoren berechnet, die in dieser vorab gefilterten Menge enthalten sind. Dadurch wird der Rechenaufwand erheblich reduziert, insbesondere wenn Filter mäßig selektiv sind.
Nahtlose Einbindung in Vertex AI
AlloyDB AI ist für die integrierte Einbindung in das Vertex AI-Ökosystem konzipiert. So können Daten direkt in der Datenbank mit SQL transformiert und angereichert werden.
Automatisierte Erstellung von Einbettungen
Die Plattform unterstützt die automatische Einbettungserstellung mit der Erweiterung „google_ml_integration“. Mit dieser Funktion können Betriebsdaten (Text, Bilder und Videos) mithilfe von Vertex AI-Modellen wie text-embedding-005 in Vektoreinbettungen umgewandelt werden.
- Modellregistrierung:Vertex AI-Modelle (Embedding und generativ) werden mit der Prozedur
google_ml.create_modelin der Datenbank registriert. - Virtuelle Spalten:Mit der Funktion
embedding()können automatisch Einbettungen generiert und in einer generierten Spalte gespeichert werden. So bleiben die Vektordaten mit den Quelldatenspalten synchronisiert:
ALTER TABLE my_table
ADD COLUMN embedding vector(768)
GENERATED ALWAYS AS (embedding('text-embedding-005', source_column)) STORED;
Abfragen und Anreicherung mit generativer KI
Nachdem die Vektoreinbettungen gespeichert wurden, können Entwickler mit dem Vektorähnlichkeitsoperator (<=>) in Standard-SQL anspruchsvolle semantische Suchen durchführen. Außerdem können die Ergebnisse dieser Suchanfragen mithilfe von Funktionen wie google_ml.generate_content für die RAG-basierte Abfrageanreicherung und die nutzerfreundliche Ausgabeerstellung direkt an generative KI-Modelle wie gemini-2.0-flash-001 übergeben werden.