MongoDB vs Aerospike: scegliere il database giusto per le applicazioni GenAI
Con l’evoluzione delle applicazioni guidate dall’IA, l’importanza delle capacità di ricerca vettoriale nel supportare questi progressi non può essere sottovalutata. Questo post del blog discuterà due database importanti con capacità di ricerca vettoriale: MongoDB e Aerospike. Ciascuno fornisce solide capacità per gestire la ricerca vettoriale, una funzionalità essenziale per applicazioni come motori di raccomandazione, recupero di immagini e ricerca semantica. Il nostro obiettivo è fornire a sviluppatori e ingegneri un confronto chiaro, aiutandoli a decidere quale database si allinei meglio ai loro requisiti specifici.
Che cos’è un database vettoriale?
Prima di confrontare MongoDB vs Aerospike, esploriamo innanzitutto il concetto di database vettoriali.
Un database vettoriale è progettato specificamente per archiviare e interrogare vettori ad alta dimensionalità, che sono rappresentazioni numeriche di dati non strutturati. Questi vettori codificano informazioni complesse, come il significato semantico del testo, le caratteristiche visive delle immagini o gli attributi dei prodotti. Consentendo ricerche per similarità efficienti, i database vettoriali svolgono un ruolo fondamentale nelle applicazioni di IA, permettendo analisi e recupero dei dati più avanzati.
I casi d’uso comuni per i database vettoriali includono raccomandazioni di prodotti e-commerce, piattaforme di scoperta dei contenuti, rilevamento di anomalie nella cybersicurezza, analisi di immagini mediche e attività di elaborazione del linguaggio naturale (NLP). Svolgono inoltre un ruolo cruciale nella Retrieval Augmented Generation (RAG), una tecnica che migliora le prestazioni dei modelli linguistici di grandi dimensioni (LLM) fornendo conoscenza esterna per ridurre problemi come le allucinazioni dell’IA.
Sono disponibili sul mercato molti tipi di database vettoriali, tra cui:
- Database vettoriali appositamente progettati come Milvus, Zilliz Cloud (Milvus completamente gestito)
- Librerie di ricerca vettoriale come Faiss e Annoy.
- Database vettoriali leggeri come Chroma e Milvus Lite.
- Database tradizionali con componenti aggiuntivi per la ricerca vettoriale in grado di eseguire ricerche vettoriali su piccola scala.
MongoDB è un database NoSQL che archivia dati in documenti simili a JSON ****e Aerospike è un database NoSQL distribuito e scalabile. Entrambi dispongono di capacità di ricerca vettoriale come componente aggiuntivo. Questo post confronta le loro capacità di ricerca vettoriale.
MongoDB: le basi
MongoDB Atlas Vector Search è una funzionalità che consente di eseguire ricerche di similarità vettoriale sui dati archiviati in MongoDB Atlas. Puoi indicizzare e interrogare embedding vettoriali ad alta dimensionalità insieme ai dati dei tuoi documenti ed eseguire IA e machine learning direttamente nel database.
Alla base, Atlas Vector Search utilizza l’algoritmo Hierarchical Navigable Small World (HNSW) per indicizzare e cercare dati vettoriali. Questo crea un grafo multilivello dello spazio vettoriale, così puoi eseguire ricerche Approximate Nearest Neighbor (ANN). È un equilibrio tra velocità e accuratezza per la ricerca vettoriale su larga scala. Atlas Vector Search supporta anche ricerche Exact Nearest Neighbors (ENN), che danno priorità all’accuratezza rispetto alle prestazioni per query fino a 10.000 documenti.
Uno dei grandi vantaggi di Atlas Vector Search è la sua integrazione con il modello di documenti flessibile di MongoDB. Puoi archiviare gli embedding vettoriali insieme ad altri dati del documento, così da poter effettuare ricerche in modo più contestuale e preciso. Puoi interrogare qualsiasi tipo di dato che possa essere incorporato fino a 4096 dimensioni. Atlas Vector Search ti permette di combinare ricerche per similarità vettoriale con il filtraggio tradizionale dei documenti. Ad esempio, una ricerca semantica di prodotti potrebbe essere filtrata per categoria, fascia di prezzo o disponibilità.
Atlas Vector Search supporta anche la ricerca ibrida, combinando la ricerca vettoriale con la ricerca full text per risultati più granulari. Questo è diverso da Atlas Search, che è focalizzato sulla ricerca basata su parole chiave. La piattaforma si integra con servizi e strumenti di AI popolari, così puoi usarla con modelli di embedding di provider come OpenAI, VoyageAI e molti altri elencati su Hugging Face. Supporta anche framework open-source come LangChain e LlamaIndex per creare applicazioni che utilizzano Large Language Models (LLMs).
Per garantire scalabilità e prestazioni, MongoDB Atlas fornisce Search Nodes, che offre un’infrastruttura dedicata per i carichi di lavoro di Atlas Search e Vector Search. Questo ti permette di avere risorse di calcolo ottimizzate e una scalabilità indipendente delle esigenze di ricerca, così ottieni prestazioni migliori su larga scala.
Avendo queste capacità nell’ecosistema MongoDB, Atlas Vector Search è una soluzione completa per gli sviluppatori che creano applicazioni basate su AI, sistemi di raccomandazione o funzionalità di ricerca avanzate. Non c’è bisogno di un database vettoriale separato: puoi usare la scalabilità e le funzionalità avanzate di MongoDB insieme alla ricerca vettoriale.
Aerospike: Le basi
Aerospike è un database NoSQL per applicazioni in tempo reale ad alte prestazioni. Ha aggiunto il supporto per l’indicizzazione e la ricerca vettoriale, quindi è adatto ai casi d’uso dei database vettoriali. La funzionalità vettoriale si chiama Aerospike Vector Search (AVS) ed è in Preview. Puoi richiedere l’accesso anticipato ad Aerospike.
AVS supporta solo indici Hierarchical Navigable Small World (HNSW) per la ricerca vettoriale. Quando in AVS vengono effettuati aggiornamenti o inserimenti, i dati del record, incluso il vettore, vengono scritti nell’Aerospike Database (ASDB) e sono immediatamente visibili. Per l’indicizzazione, ogni record deve avere almeno un vettore nel campo vettoriale specificato di un indice. Puoi avere più vettori e indici per un singolo record, così puoi cercare gli stessi dati in modi diversi. Aerospike consiglia di assegnare i record inseriti o aggiornati tramite upsert a un set specifico, così puoi monitorarli e operarci sopra.
AVS ha un modo unico di costruire l’indice: è concorrente su tutti i nodi AVS. Mentre gli aggiornamenti dei record vettoriali vengono scritti direttamente in ASDB, i record dell’indice vengono elaborati in modo asincrono da una coda di indicizzazione. Questo viene fatto in batch e distribuito su tutti i nodi AVS, quindi utilizza tutti i core CPU nel cluster AVS ed è scalabile. Le prestazioni di ingestione dipendono fortemente dalla memoria dell’host e dalla configurazione del livello di storage.
Per ogni elemento nella coda di indicizzazione, AVS elabora il vettore per l’indicizzazione, costruisce i cluster per ciascun vettore e li committa in ASDB. Un record di indice contiene una copia del vettore stesso e i cluster per quel vettore a un determinato livello del grafo HNSW. L’indicizzazione utilizza estensioni vettoriali (AVX) per l’elaborazione parallela single instruction, multiple data.
AVS esegue query durante l’ingestione per “pre-idratare” la cache dell’indice, perché i record nei cluster sono interconnessi. Queste query non vengono conteggiate come richieste di query, ma appaiono come letture sul livello di storage. In questo modo, la cache viene popolata con dati rilevanti e può migliorare le prestazioni delle query. Questo mostra come AVS gestisce i dati vettoriali e costruisce indici per la ricerca di similarità, così da poter scalare per ricerche vettoriali ad alta dimensionalità.
Differenze chiave
Quando si parla di ricerca vettoriale, sia MongoDB sia Aerospike offrono buone opzioni. Come sviluppatore che desidera aggiungere la ricerca vettoriale alla propria applicazione, comprendere le differenze tra i due ti aiuterà a prendere una decisione. Confrontiamo MongoDB Atlas Vector Search e Aerospike Vector Search (AVS) su alcuni punti chiave.
Metodologia di ricerca
Sia MongoDB Atlas Vector Search sia Aerospike Vector Search utilizzano l’algoritmo Hierarchical Navigable Small World (HNSW) per indicizzare e cercare dati vettoriali. Questo algoritmo crea un grafo multilivello dello spazio vettoriale, così puoi eseguire ricerche Approximate Nearest Neighbor (ANN). MongoDB Atlas supporta anche ricerche Exact Nearest Neighbors (ENN) per query fino a 10.000 documenti. Questo offre agli utenti MongoDB maggiore flessibilità nel bilanciare velocità e precisione in base al loro caso d’uso.
Dati
Il modello documentale flessibile di MongoDB consente di archiviare gli embedding vettoriali insieme ad altri dati del documento. Questo permette ricerche più contestuali e precise, poiché puoi combinare ricerche di similarità vettoriale con il filtraggio tradizionale dei documenti. Ad esempio, puoi eseguire una ricerca semantica di prodotti e filtrare i risultati per categoria, fascia di prezzo o disponibilità.
Aerospike è principalmente un archivio chiave-valore e ha aggiunto funzionalità di indicizzazione e ricerca vettoriale. Consente più vettori e indici per un singolo record, quindi hai flessibilità nel modo in cui puoi cercare i tuoi dati. Tuttavia, il suo modello dati potrebbe non essere flessibile quanto l’approccio basato su documenti di MongoDB per gestire dati semi-strutturati o non strutturati.
Scalabilità e prestazioni
MongoDB Atlas dispone di Search Nodes che forniscono un’infrastruttura dedicata per i carichi di lavoro di Atlas Search e Vector Search. Ciò consente risorse di calcolo ottimizzate e una scalabilità indipendente delle esigenze di ricerca, così ottieni prestazioni migliori su larga scala.
L’approccio di Aerospike alla costruzione dell’indice è diverso. Elabora i record dell’indice da una coda di indicizzazione in modo asincrono su tutti i nodi AVS. Questo utilizza tutti i core CPU nel cluster AVS, quindi potrebbe essere più scalabile per la costruzione dell’indice. Aerospike utilizza anche una tecnica di “pre-hydration” durante l’ingestione per popolare la cache dell’indice con dati rilevanti, il che può migliorare le prestazioni delle query.
Flessibilità e personalizzazione
MongoDB Atlas Vector Search supporta più metriche di distanza per i calcoli di similarità e può funzionare con embedding di qualsiasi provider fino a 4096 dimensioni. Supporta anche la ricerca ibrida, combinando la ricerca vettoriale con la ricerca full-text per risultati più precisi.
Aerospike Vector Search, pur essendo limitato all’attuale anteprima, consente più vettori e indici per record. Questo può essere utile per cercare gli stessi dati in modi diversi.
Integrazione ed ecosistema
MongoDB Atlas si integra con servizi e strumenti AI popolari, funziona con modelli di embedding di OpenAI, VoyageAI e molti altri elencati su Hugging Face. Supporta anche l’integrazione con LangChain e LlamaIndex per creare applicazioni basate sull’AI.
Aerospike si integra anche con framework popolari come LangChain.
Facilità d’uso
MongoDB è noto per essere developer friendly, con molta documentazione e una grande community. Atlas come servizio gestito può semplificare configurazione e manutenzione.
Aerospike ha una curva di apprendimento più ripida se non hai familiarità con la sua architettura. La sua ricerca vettoriale è in anteprima, quindi potrebbe avere meno documentazione e supporto della community rispetto a opzioni più consolidate.
Costo
MongoDB Atlas ha un modello di prezzo a livelli; i costi variano in base al tuo utilizzo e alle funzionalità. Devi verificare se la ricerca vettoriale rientra nel tuo budget.
I prezzi di Aerospike non sono disponibili pubblicamente; devi contattarli per maggiori informazioni. Considera sia i costi del software sia i costi dell’infrastruttura per eseguire Aerospike.
Quando usare ciascuno
MongoDB Atlas Vector Search è ottimo per applicazioni che necessitano di un modello di dati flessibile e devono integrare la ricerca vettoriale con le normali query sui documenti. È perfetto per progetti che coinvolgono dati complessi e semi-strutturati e devono eseguire ricerche ibride che combinano la similarità vettoriale con la ricerca full-text. MongoDB è ideale quando devi archiviare e interrogare diversi tipi di dati insieme agli embedding vettoriali, come sistemi di raccomandazione dei contenuti, motori di ricerca semantica o piattaforme di analytics basate su AI che utilizzano grandi modelli linguistici. È ottimo anche per gli sviluppatori che creano applicazioni AI che devono operare sia su dati strutturati sia non strutturati e integrarsi con servizi e strumenti AI popolari.
Aerospike Vector Search è ottimo per applicazioni in tempo reale ad alte prestazioni che sono principalmente key-value ma necessitano della ricerca vettoriale. È perfetto per casi d’uso che richiedono latenza estremamente bassa e throughput elevato, come sistemi di real-time bidding, motori di rilevamento delle frodi o reti di distribuzione di contenuti personalizzati. L’approccio di Aerospike alla creazione degli indici e alla pre-idratazione della cache può offrire vantaggi prestazionali significativi in scenari in cui la velocità di ingestione dei dati e la velocità delle query sono critiche. Sebbene il suo modello di dati possa non essere flessibile quanto quello di MongoDB, Aerospike è la scelta migliore per applicazioni che privilegiano prestazioni pure e scalabilità rispetto a requisiti complessi di modellazione dei dati.
Riepilogo
MongoDB Atlas Vector Search è una soluzione completa che combina la flessibilità di un database documentale con funzionalità di ricerca vettoriale, ideale per applicazioni complesse guidate dall’AI che devono gestire dati eterogenei. Il suo punto di forza sta nell’integrazione della ricerca vettoriale con query normali, ricerche ibride e un ricco ecosistema di strumenti AI. Aerospike Vector Search è più specializzato ed eccelle in scenari in tempo reale ad alte prestazioni in cui bassa latenza e throughput elevato sono fondamentali. Il suo approccio all’indicizzazione e l’attenzione alle prestazioni lo rendono adatto a specifici casi d’uso che richiedono velocità e scalabilità. In definitiva, la scelta tra MongoDB e Aerospike per la ricerca vettoriale dovrebbe essere guidata dai requisiti della tua applicazione, dalla complessità dei dati, dalle esigenze di prestazioni e dalle richieste di scalabilità. Considera la tua infrastruttura esistente, la natura dei dati, i pattern di query, il livello di integrazione con strumenti e servizi AI quando prendi la tua decisione.
Leggi questo per avere una panoramica di MongoDB e Aerospike, ma per valutarli devi farlo in base al tuo caso d’uso. Uno strumento che può aiutare in questo è VectorDBBench, uno strumento di benchmarking open-source per il confronto di database vettoriali. Alla fine, un benchmarking approfondito con i tuoi dataset e pattern di query sarà fondamentale per prendere una decisione tra questi due approcci potenti ma diversi alla ricerca vettoriale nei sistemi di database distribuiti.
Usare VectorDBBench open-source per valutare e confrontare database vettoriali autonomamente
VectorDBBench è uno strumento di benchmarking open-source per utenti che necessitano di sistemi di archiviazione e recupero dei dati ad alte prestazioni, in particolare database vettoriali. Questo strumento consente agli utenti di testare e confrontare diversi sistemi di database vettoriali come Milvus e Zilliz Cloud (il Milvus gestito) usando i propri dataset e trovare quello più adatto ai loro casi d’uso. Con VectorDBBench, gli utenti possono prendere decisioni basate sulle prestazioni effettive dei database vettoriali anziché su affermazioni di marketing o voci di corridoio.
VectorDBBench è scritto in Python e distribuito con licenza open-source MIT, il che significa che chiunque può usarlo, modificarlo e distribuirlo liberamente. Lo strumento è mantenuto attivamente da una comunità di sviluppatori impegnati a migliorarne funzionalità e prestazioni.
Scarica VectorDBBench dal suo repository GitHub per riprodurre i nostri risultati di benchmark o ottenere risultati prestazionali sui tuoi dataset.
Dai una rapida occhiata alle prestazioni dei database vettoriali mainstream nella classifica VectorDBBench.
Leggi i seguenti blog per saperne di più sulla valutazione dei database vettoriali.
Ulteriori risorse su VectorDB, GenAI e ML
Continua a leggere

Notion's Vector Search Is Excellent. Their Next Problem Is Harder.
Notion solved vector search scaling in two years. The next bottleneck — offline context engineering, unified data, and the real-time/offline gap — is harder.

Smarter Autoscaling in Zilliz Cloud: Always Optimized for Every Workload
With the latest upgrade, Zilliz Cloud introduces smarter autoscaling—a fully automated, more streamlined, elastic resource management system.

VidTok: Rethinking Video Processing with Compact Tokenization
VidTok tokenizes videos to reduce redundancy while preserving spatial and temporal details for efficient processing.
The Definitive Guide to Choosing a Vector Database
Overwhelmed by all the options? Learn key features to look for & how to evaluate with your own data. Choose with confidence.


