AlloyDB AI è un'estensione avanzata di AlloyDB per PostgreSQL, progettata per integrare l'elaborazione vettoriale ad alte prestazioni direttamente nel database relazionale di livello aziendale. Consente agli sviluppatori di creare applicazioni intelligenti e sofisticate che comprendono il significato semantico dei dati in formati strutturati e non strutturati. Unificando le funzionalità SQL con la tecnologia di ricerca vettoriale all'avanguardia, AlloyDB AI fornisce una piattaforma singola e pronta per l'AI per i workflow di gestione dei dati e di Retrieval-Augmented Generation (RAG), eliminando la necessità di eseguire il deployment e gestire un database vettoriale separato.
Architettura e prestazioni di base
AlloyDB utilizza l'estensione pgvector di PostgreSQL per la funzionalità vettoriale. Supporta il popolare indice HNSW, nonché l'indice ScaNN (Scalable Nearest Neighbors), un algoritmo di ricerca vettoriale all'avanguardia derivato da anni di ricerca sulla Ricerca Google. Questa integrazione profonda nell'ambiente PostgreSQL consente operazioni ad alta velocità compatibili con pgvector e query semantiche avanzate.
Prestazioni dell'indice ScaNN
L'indice ScaNN offre notevoli vantaggi in termini di velocità rispetto all'indice HNSW (Hierarchical Navigable Small Worlds) di PostgreSQL standard, fornendo operazioni vettoriali rapide necessarie per i carichi di lavoro AI impegnativi:
| Operazione | Aumento delle prestazioni (rispetto all'indice HNSW di PostgreSQL standard) | Funzionalità |
|---|---|---|
| Creazione dell'indice | Fino a 10 volte più veloce | Creazione di indici paralleli |
| Query di ricerca vettoriale | Fino a 4 volte più veloce | Manutenzione automatica dell'indice |
| Query di ricerca vettoriale con filtro | Fino a 10 volte più veloce | Osservabilità di livello aziendale |
Filtri adattivi e ottimizzazione delle query
L'indice ScaNN è profondamente integrato con il pianificatore di query PostgreSQL per garantire prestazioni ottimali per le query ibride che coinvolgono sia la similarità vettoriale sia i filtri di metadati strutturati standard.
- Filtri adattivi: questo meccanismo garantisce prestazioni ottimali quando vengono utilizzati contemporaneamente filtri, join e indici vettoriali. Funziona osservando le statistiche di esecuzione delle query in fase di runtime, apprendendo la selettività dei filtri e regolando in modo adattivo il piano di esecuzione per determinare l'ordinamento più efficiente dell'applicazione dei filtri e della ricerca vettoriale.
- Filtri in linea: specifico per l'algoritmo ScaNN, il filtro in linea è una strategia di ottimizzazione che esegue in parallelo la ricerca vettoriale e la valutazione dei filtri di metadati. Utilizza indici PostgreSQL secondari (come B-tree, GIN o GiST) per creare un elenco breve (bitmap) di righe che soddisfano i criteri di filtro. La scansione vettoriale successiva calcola solo le distanze per i vettori contenuti nel set prefiltrato, riducendo drasticamente il sovraccarico computazionale, soprattutto quando i filtri sono moderatamente selettivi.
Integrazione perfetta con Gemini Enterprise Agent Platform
AlloyDB AI è progettato per l'integrazione integrata con l'ecosistema Agent Platform, consentendo la trasformazione e l'arricchimento dei dati direttamente all'interno del database utilizzando SQL.
Generazione automatica di embedding
La piattaforma supporta la generazione automatica di embedding utilizzando l'estensione google_ml_integration. Questa funzionalità consente di convertire i dati operativi (testo, immagini e video) in vector embedding utilizzando i modelli di Agent Platform, come text-embedding-005.
- Registrazione del modello: i modelli di Agent Platform (embedding e generativi) vengono registrati all'interno del database utilizzando la procedura
google_ml.create_model. - Colonne virtuali: gli embedding possono essere generati e mantenuti automaticamente in una colonna generata utilizzando la funzione
embedding(), assicurando che i dati vettoriali rimangano sincronizzati con i dati della colonna di origine:
ALTER TABLE my_table
ADD COLUMN embedding vector(768)
GENERATED ALWAYS AS (embedding('text-embedding-005', source_column)) STORED;
Query e arricchimento con l'AI generativa
Con i vector embedding archiviati, gli sviluppatori possono eseguire ricerche semantiche sofisticate utilizzando l'operatore di similarità vettoriale (<=>) in SQL standard. Inoltre, i risultati di queste ricerche possono essere passati direttamente ai modelli di AI generativa, come gemini-2.0-flash-001, utilizzando funzioni come google_ml.generate_content per l'arricchimento delle query basato su RAG e la generazione di output di facile utilizzo.