MongoDB vs ClickHouse: scegliere il database giusto per le applicazioni GenAI
Con l’evoluzione delle applicazioni guidate dall’IA, l’importanza delle funzionalità di ricerca vettoriale nel supportare questi progressi non può essere sottovalutata. Questo post del blog parlerà di due database importanti con funzionalità di ricerca vettoriale: MongoDB e ClickHouse. Ciascuno offre 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.
Cos’è un database vettoriale?
Prima di confrontare MongoDB vs ClickHosue, 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 di 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 nell’e-commerce, piattaforme di scoperta di contenuti, rilevamento di anomalie nella cybersecurity, 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 large language models (LLM) fornendo conoscenza esterna per ridurre problemi come le allucinazioni dell’IA.
Esistono molti tipi di database vettoriali disponibili sul mercato, tra cui:
- Database vettoriali purpose-built 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 di ricerca vettoriale capaci di eseguire ricerche vettoriali su piccola scala.
MongoDB è un database NoSQL che archivia i dati in documenti simili a JSON e ClickHouse è un database open-source orientato alle colonne. Entrambi dispongono di funzionalità di ricerca vettoriale come componente aggiuntivo. Questo post ne confronta le funzionalità 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 privilegiano l’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 dei documenti, così puoi 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 consente di combinare ricerche di 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 IA popolari, così puoi utilizzarla 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 offrono un’infrastruttura dedicata per i carichi di lavoro di Atlas Search e Vector Search. Questo ti consente di disporre di risorse di calcolo ottimizzate e di 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 sull’IA, sistemi di raccomandazione o funzionalità di ricerca avanzate. Non c’è bisogno di un database vettoriale separato: puoi usare la scalabilità e le ricche funzionalità di MongoDB insieme alla ricerca vettoriale.
ClickHouse: Le basi
ClickHouse è un database OLAP open-source per analisi in tempo reale con pieno supporto SQL ed elaborazione rapida delle query. È ottimo per le query analitiche grazie alla pipeline di query completamente parallelizzata e può eseguire velocemente la ricerca vettoriale. Ha un’elevata compressione (personalizzabile tramite codec), quindi può archiviare e interrogare grandi dataset. Uno dei suoi principali vantaggi è che può gestire dataset multi-TB senza essere vincolato dalla memoria, quindi è un ottimo strumento per utenti con grandi quantità di dati vettoriali. Supporta anche il filtraggio e l’aggregazione sui metadati, così puoi interrogare i vettori e i loro metadati.
ClickHouse dispone di funzionalità di ricerca vettoriale tramite SQL, dove le operazioni di distanza vettoriale sono proprio come qualsiasi altra funzione SQL. Quindi puoi combinarla con il filtraggio e l’aggregazione tradizionali. È ottimo per casi d’uso in cui devi interrogare dati vettoriali insieme a metadati o altre informazioni. Ha anche indici sperimentali Approximate Nearest Neighbour (ANN) per corrispondenze più rapide (ma approssimative). E corrispondenza esatta tramite scansione lineare delle righe con elaborazione parallela per velocità ed efficienza.
ClickHouse è ottimo per la ricerca vettoriale quando devi combinare la corrispondenza vettoriale con il filtraggio o l’aggregazione dei metadati. Soprattutto per dataset vettoriali molto grandi che devono essere elaborati in parallelo su più core CPU. ClickHouse è anche una buona scelta quando hai bisogno del supporto SQL e il tuo dataset vettoriale è troppo grande per stare in indici solo in memoria. Inoltre, se hai già dati correlati in ClickHouse o non vuoi imparare un altro strumento per gestire milioni di vettori, ClickHouse può farti risparmiare tempo e risorse. La corrispondenza esatta rapida e parallelizzata e la gestione di grandi dataset sono ciò in cui ClickHouse eccelle, quindi è pensato per utenti avanzati della ricerca.
ClickHouse è una piattaforma general purpose per la ricerca vettoriale, soprattutto per grandi dataset che richiedono elaborazione parallela e quando combini la ricerca vettoriale con filtraggio e aggregazione basati su SQL. Non è efficace quanto i database vettoriali specializzati per piccoli dataset vincolati alla memoria o scenari ad alto QPS, ma può gestire query complesse inclusi i metadati, quindi è ottimo per sviluppatori che conoscono SQL e hanno bisogno di una ricerca vettoriale veloce.
Differenze chiave
MongoDB Atlas Vector Search e ClickHouse hanno approcci diversi alla ricerca vettoriale, ciascuno con i propri punti di forza. Confrontiamoli per aiutarti a decidere quale sia quello giusto per te.
Metodologia di ricerca
MongoDB Atlas Vector Search utilizza l'algoritmo Hierarchical Navigable Small World (HNSW) per l'indicizzazione e la ricerca di dati vettoriali. Crea un grafo multilivello dello spazio vettoriale per ricerche Approximate Nearest Neighbor (ANN). Bilancia velocità e accuratezza per la ricerca vettoriale su larga scala. Atlas Vector Search supporta anche ricerche Exact Nearest Neighbors (ENN) per query fino a 10.000 documenti, prestazioni rispetto all'accuratezza.
ClickHouse, d'altra parte, utilizza principalmente operazioni di distanza vettoriale basate su SQL. Supporta la corrispondenza esatta tramite scansione lineare sulle righe con elaborazione parallela. ClickHouse offre anche indici vettoriali sperimentali per ricerche ANN più rapide.
Gestione dei dati
MongoDB è ottimo per gestire dati flessibili basati su documenti. Puoi archiviare embedding vettoriali insieme ad altri dati del documento, così puoi effettuare ricerche più contestuali e precise. Questa flessibilità ti consente di combinare ricerche di similarità vettoriale con il filtraggio dei documenti.
ClickHouse è progettato per query analitiche su dati strutturati. Supporta la ricerca vettoriale tramite SQL, dove le operazioni di distanza vettoriale sono trattate come qualsiasi altra funzione SQL. Quindi puoi combinare facilmente query vettoriali con filtraggio e aggregazione.
Scalabilità e prestazioni
MongoDB Atlas dispone di Search Nodes che forniscono un'infrastruttura dedicata per i carichi di lavoro Atlas Search e Vector Search. Ciò consente risorse di calcolo ottimizzate e il ridimensionamento indipendente delle esigenze di ricerca, così ottieni migliori prestazioni su larga scala.
ClickHouse è ottimo per gestire dataset multi-TB senza essere vincolato dalla memoria. Ha una pipeline di query completamente parallelizzata, quindi è efficiente per grandi dataset vettoriali che devono essere elaborati su più core CPU.
Flessibilità e personalizzazione
Il modello documentale flessibile di MongoDB ti consente di archiviare ed eseguire query su diversi tipi di dati, inclusi embedding vettoriali fino a 4096 dimensioni. Puoi combinare facilmente ricerche di similarità vettoriale con altri filtri sui documenti.
ClickHouse offre flessibilità tramite la sua interfaccia SQL, dove puoi combinare operazioni vettoriali con query SQL standard. Ha anche opzioni di compressione personalizzabili tramite codec, così puoi archiviare grandi dataset in modo efficiente.
Integrazione ed ecosistema
MongoDB Atlas Vector Search si integra con servizi e strumenti AI popolari. Supporta modelli di embedding di OpenAI e VoyageAI e funziona con framework open-source come LangChain e LlamaIndex per creare applicazioni con Large Language Models (LLMs).
ClickHouse, essendo un database analitico generico, potrebbe richiedere ulteriore lavoro di integrazione per strumenti AI specifici. Ma la sua interfaccia SQL è familiare a molti sviluppatori e analisti di dati.
Facilità d'uso
MongoDB Atlas è un servizio gestito che può semplificare configurazione e manutenzione. La sua integrazione con l'ecosistema MongoDB più ampio lo rende più semplice per i team che hanno già familiarità con MongoDB.
ClickHouse ha una curva di apprendimento più ripida per chi non ha familiarità con i database OLAP o SQL. Ma per gli sviluppatori esperti in SQL, la sua ricerca vettoriale è accessibile tramite una sintassi di query familiare.
Considerazioni sui costi
MongoDB Atlas è un servizio completamente gestito che può comportare costi operativi più elevati ma minori oneri di manutenzione.
ClickHouse, essendo open-source, ha costi iniziali inferiori ma può richiedere maggiore competenza interna per la distribuzione e la gestione.
Funzionalità di sicurezza
Sia MongoDB Atlas sia ClickHouse hanno solide funzionalità di sicurezza. MongoDB Atlas offre crittografia end-to-end, controllo degli accessi basato sui ruoli e isolamento della rete. ClickHouse offre crittografia dei dati, controllo degli accessi e meccanismi di autenticazione.
Quando scegliere ciascuno
MongoDB Atlas Vector Search è la scelta migliore quando si lavora con strutture dati flessibili e basate su documenti e si ha bisogno di combinare la ricerca vettoriale con le tradizionali query sui documenti. È particolarmente adatto per applicazioni che richiedono un’integrazione fluida con servizi e strumenti di AI, come sistemi di raccomandazione, motori di ricerca semantica o analisi dei contenuti basata sull’AI. Se stai già usando MongoDB o hai bisogno di un servizio gestito in grado di gestire sia le normali operazioni di database sia le esigenze di ricerca vettoriale, MongoDB Atlas Vector Search è una soluzione unica che può semplificare il tuo stack tecnologico e ridurre il carico operativo.
ClickHouse è la scelta migliore quando hai dataset enormi che richiedono query complesse che combinano ricerca vettoriale con filtri e aggregazioni SQL. È la scelta ideale per scenari in cui hai dataset vettoriali di molti TB, troppo grandi per indici solo in memoria, specialmente quando hai bisogno di matching esatto rapido e parallelizzato. ClickHouse è ottimo per casi d’uso di ricerca avanzata nell’analisi dei dati, in cui devi interrogare dati vettoriali insieme a metadati o ad altre informazioni strutturate. Se il tuo team ha familiarità con SQL e stai cercando una potente soluzione open source in grado di gestire sia la ricerca vettoriale sia i workload OLAP tradizionali, ClickHouse è la risposta.
Riepilogo
MongoDB Atlas Vector Search è ideale per flessibilità, integrazione con l’AI e facilità d’uso all’interno dell’ecosistema MongoDB, un servizio gestito che combina database documentale e ricerca vettoriale. ClickHouse è ideale per gestire dataset enormi, potenti operazioni vettoriali basate su SQL e query analitiche ad alte prestazioni. La scelta tra questi due dovrebbe essere guidata dal tuo caso d’uso, dai tipi di dati e dai requisiti di performance. Scegli MongoDB Atlas se hai bisogno di una soluzione flessibile pronta per l’AI con servizi gestiti, e ClickHouse se hai dataset molto grandi che richiedono query complesse che combinano ricerca vettoriale con SQL. In definitiva, si tratta di allineare i punti di forza della tecnologia alle esigenze del tuo progetto e alle competenze del tuo team.
Leggi questo per ottenere una panoramica di MongoDB e ClickHouse, 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 i tuoi 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 i database vettoriali autonomamente
VectorDBBench è uno strumento di benchmarking open-source per utenti che hanno bisogno di sistemi di archiviazione e recupero 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 di trovare quello più adatto ai loro casi d’uso. Con VectorDBBench, gli utenti possono prendere decisioni basate sulle effettive prestazioni dei database vettoriali anziché su affermazioni di marketing o voci di corridoio.
VectorDBBench è scritto in Python e concesso in licenza 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 impegnata a migliorarne le funzionalità e le prestazioni.
Scarica VectorDBBench dal suo repository GitHub per riprodurre i nostri risultati di benchmark o ottenere risultati di performance sui tuoi dataset.
Dai una rapida occhiata alle prestazioni dei principali database vettoriali nella classifica di VectorDBBench.
Leggi i seguenti blog per saperne di più sulla valutazione dei database vettoriali.
Ulteriori risorse su VectorDB, GenAI e ML
Continua a leggere
Stop Building AI Data Infra for the Wrong Stage
Learn how AI data infrastructure should evolve from prototype to enterprise scale, and when Vector Lakebase becomes the right architecture for AI apps.

Vector Databases vs. Key-Value Databases
Use a vector database for AI-powered similarity search; use a key-value database for high-throughput, low-latency simple data lookups.

Vector Databases vs. Graph Databases
Use a vector database for AI-powered similarity search; use a graph database for complex relationship-based queries and network analysis.
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.


