MongoDB vs ClickHouse : choisir la bonne base de données pour les applications GenAI
À mesure que les applications pilotées par l’IA évoluent, l’importance des capacités de recherche vectorielle pour soutenir ces avancées ne saurait être surestimée. Cet article de blog abordera deux bases de données majeures dotées de capacités de recherche vectorielle : MongoDB et ClickHouse. Chacune offre des capacités robustes pour gérer la recherche vectorielle, une fonctionnalité essentielle pour des applications telles que les moteurs de recommandation, la recherche d’images et la recherche sémantique. Notre objectif est de fournir aux développeurs et aux ingénieurs une comparaison claire, afin de les aider à décider quelle base de données correspond le mieux à leurs exigences spécifiques.
Qu’est-ce qu’une base de données vectorielle ?
Avant de comparer MongoDB vs ClickHosue, explorons d’abord le concept de bases de données vectorielles.
Une base de données vectorielle est spécifiquement conçue pour stocker et interroger des vecteurs de grande dimension, qui sont des représentations numériques de données non structurées. Ces vecteurs encodent des informations complexes, telles que la signification sémantique du texte, les caractéristiques visuelles des images ou les attributs des produits. En permettant des recherches de similarité efficaces, les bases de données vectorielles jouent un rôle central dans les applications d’IA, permettant une analyse et une récupération des données plus avancées.
Les cas d’utilisation courants des bases de données vectorielles incluent les recommandations de produits en e-commerce, les plateformes de découverte de contenu, la détection d’anomalies en cybersécurité, l’analyse d’images médicales et les tâches de traitement automatique du langage naturel (NLP). Elles jouent également un rôle crucial dans la génération augmentée par récupération (RAG), une technique qui améliore les performances des grands modèles de langage (LLMs) en fournissant des connaissances externes afin de réduire des problèmes comme les hallucinations de l’IA.
Il existe de nombreux types de bases de données vectorielles disponibles sur le marché, notamment :
- Bases de données vectorielles spécialement conçues telles que Milvus, Zilliz Cloud (Milvus entièrement géré)
- Bibliothèques de recherche vectorielle telles que Faiss et Annoy.
- Bases de données vectorielles légères telles que Chroma et Milvus Lite.
- Bases de données traditionnelles avec des modules complémentaires de recherche vectorielle capables d’effectuer des recherches vectorielles à petite échelle.
MongoDB est une base de données NoSQL qui stocke les données dans des documents de type JSON, et ClickHouse est une base de données open source orientée colonnes. Toutes deux disposent de capacités de recherche vectorielle sous forme de module complémentaire. Cet article compare leurs capacités de recherche vectorielle.
MongoDB : les bases
MongoDB Atlas Vector Search est une fonctionnalité qui vous permet d’effectuer des recherches de similarité vectorielle sur des données stockées dans MongoDB Atlas. Vous pouvez indexer et interroger des embeddings vectoriels de grande dimension avec vos données documentaires et effectuer de l’IA et du machine learning directement dans la base de données.
À la base, Atlas Vector Search utilise l’algorithme Hierarchical Navigable Small World (HNSW) pour l’indexation et la recherche de données vectorielles. Cela crée un graphe multiniveau de l’espace vectoriel afin que vous puissiez effectuer des recherches Approximate Nearest Neighbor (ANN). C’est un équilibre entre vitesse et précision pour la recherche vectorielle à grande échelle. Atlas Vector Search prend également en charge les recherches Exact Nearest Neighbors (ENN), qui privilégient la précision par rapport aux performances pour les requêtes allant jusqu’à 10 000 documents.
L’un des grands avantages d’Atlas Vector Search est son intégration avec le modèle de documents flexible de MongoDB. Vous pouvez stocker des embeddings vectoriels avec d’autres données de documents afin de pouvoir effectuer des recherches de manière plus contextuelle et précise. Vous pouvez interroger tout type de données pouvant être intégrées jusqu’à 4096 dimensions. Atlas Vector Search vous permet de combiner des recherches par similarité vectorielle avec un filtrage traditionnel des documents. Par exemple, une recherche sémantique de produits pourrait être filtrée par catégorie, fourchette de prix ou disponibilité.
Atlas Vector Search prend également en charge la recherche hybride, combinant la recherche vectorielle avec la recherche en texte intégral pour des résultats plus granulaires. Cela diffère d’Atlas Search, qui est axé sur la recherche basée sur les mots-clés. La plateforme s’intègre avec des services et outils d’IA populaires afin que vous puissiez l’utiliser avec des modèles d’embedding de fournisseurs comme OpenAI, VoyageAI et de nombreux autres répertoriés sur Hugging Face. Elle prend également en charge des frameworks open source comme LangChain et LlamaIndex pour créer des applications qui utilisent des grands modèles de langage (LLMs).
Pour garantir l’évolutivité et les performances, MongoDB Atlas fournit des Search Nodes, qui offrent une infrastructure dédiée pour les charges de travail Atlas Search et Vector Search. Cela vous permet de disposer de ressources de calcul optimisées et d’une mise à l’échelle indépendante des besoins de recherche, afin d’obtenir de meilleures performances à grande échelle.
En réunissant ces capacités dans l’écosystème MongoDB, Atlas Vector Search est une solution complète pour les développeurs qui créent des applications alimentées par l’IA, des systèmes de recommandation ou des fonctionnalités de recherche avancées. Pas besoin d’une base de données vectorielle séparée, vous pouvez utiliser l’évolutivité et les riches fonctionnalités de MongoDB avec la recherche vectorielle.
ClickHouse : les bases
ClickHouse est une base de données OLAP open source pour l’analytique en temps réel, avec une prise en charge complète de SQL et un traitement rapide des requêtes. Elle est idéale pour les requêtes analytiques grâce à un pipeline de requêtes entièrement parallélisé et peut effectuer rapidement des recherches vectorielles. Elle offre une forte compression (personnalisable via des codecs), ce qui permet de stocker et d’interroger de grands jeux de données. L’un de ses principaux avantages est qu’elle peut gérer des jeux de données de plusieurs To sans être limitée par la mémoire, ce qui en fait un excellent outil pour les utilisateurs disposant de grandes quantités de données vectorielles. Elle prend également en charge le filtrage et l’agrégation sur les métadonnées, ce qui vous permet d’interroger des vecteurs et leurs métadonnées.
ClickHouse dispose de fonctionnalités de recherche vectorielle via SQL, où les opérations de distance vectorielle sont comme n’importe quelle autre fonction SQL. Vous pouvez donc les combiner avec le filtrage et l’agrégation traditionnels. C’est idéal pour les cas d’utilisation où vous devez interroger des données vectorielles avec des métadonnées ou d’autres informations. Elle dispose également d’indices expérimentaux Approximate Nearest Neighbour (ANN) pour une correspondance plus rapide (mais approximative). Et d’une correspondance exacte via un balayage linéaire des lignes avec traitement parallèle pour la rapidité et l’efficacité.
ClickHouse est excellente pour la recherche vectorielle lorsque vous devez combiner la correspondance vectorielle avec le filtrage ou l’agrégation de métadonnées. Surtout pour les très grands jeux de données vectorielles qui doivent être traités en parallèle sur plusieurs cœurs CPU. ClickHouse est également adaptée lorsque vous avez besoin de la prise en charge de SQL et que votre jeu de données vectorielles est trop volumineux pour tenir dans des indices uniquement en mémoire. De plus, si vous avez déjà des données liées dans ClickHouse ou si vous ne souhaitez pas apprendre un autre outil pour gérer des millions de vecteurs, ClickHouse peut vous faire gagner du temps et des ressources. La correspondance exacte rapide et parallélisée ainsi que la gestion de grands jeux de données sont les points forts de ClickHouse, elle s’adresse donc aux utilisateurs avancés de la recherche.
ClickHouse est une plateforme polyvalente pour la recherche vectorielle, en particulier pour les grands jeux de données nécessitant un traitement parallèle et lorsque vous combinez la recherche vectorielle avec le filtrage et l’agrégation basés sur SQL. Elle n’est pas aussi performante que les bases de données vectorielles spécialisées pour les petits jeux de données limités par la mémoire ou les scénarios à QPS élevé, mais elle peut gérer des requêtes complexes incluant des métadonnées, ce qui est idéal pour les développeurs qui connaissent SQL et ont besoin d’une recherche vectorielle rapide.
Principales différences
MongoDB Atlas Vector Search et ClickHouse ont des approches différentes de la recherche vectorielle, chacune avec ses propres forces. Comparons-les pour vous aider à décider laquelle vous convient.
Méthodologie de recherche
MongoDB Atlas Vector Search utilise l’algorithme Hierarchical Navigable Small World (HNSW) pour l’indexation et la recherche de données vectorielles. Il crée un graphe multiniveau de l’espace vectoriel pour les recherches Approximate Nearest Neighbor (ANN). Il équilibre vitesse et précision pour la recherche vectorielle à grande échelle. Atlas Vector Search prend également en charge les recherches Exact Nearest Neighbors (ENN) pour des requêtes allant jusqu’à 10 000 documents, en privilégiant la performance à la précision.
ClickHouse, en revanche, utilise principalement des opérations de distance vectorielle basées sur SQL. Il prend en charge la correspondance exacte grâce à un balayage linéaire des lignes avec traitement parallèle. ClickHouse propose également des indices vectoriels expérimentaux pour des recherches ANN plus rapides.
Gestion des données
MongoDB est excellent pour gérer des données flexibles, basées sur des documents. Vous pouvez stocker des embeddings vectoriels aux côtés d’autres données de document, afin d’effectuer des recherches plus contextuelles et précises. Cette flexibilité vous permet de combiner des recherches de similarité vectorielle avec le filtrage de documents.
ClickHouse est conçu pour les requêtes analytiques sur des données structurées. Il prend en charge la recherche vectorielle via SQL, où les opérations de distance vectorielle sont traitées comme n’importe quelle autre fonction SQL. Vous pouvez donc facilement combiner des requêtes vectorielles avec du filtrage et de l’agrégation.
Évolutivité et performances
MongoDB Atlas dispose de Search Nodes qui fournissent une infrastructure dédiée aux charges de travail Atlas Search et Vector Search. Cela permet d’optimiser les ressources de calcul et de faire évoluer indépendamment les besoins de recherche, afin d’obtenir de meilleures performances à grande échelle.
ClickHouse est excellent pour gérer des jeux de données de plusieurs To sans être limité par la mémoire. Il dispose d’un pipeline de requêtes entièrement parallélisé, ce qui le rend efficace pour les grands jeux de données vectorielles qui doivent être traités sur plusieurs cœurs CPU.
Flexibilité et personnalisation
Le modèle documentaire flexible de MongoDB vous permet de stocker et d’interroger différents types de données, y compris des embeddings vectoriels jusqu’à 4096 dimensions. Vous pouvez facilement combiner des recherches de similarité vectorielle avec d’autres filtres de documents.
ClickHouse offre de la flexibilité grâce à son interface SQL, qui vous permet de combiner des opérations vectorielles avec des requêtes SQL standard. Il dispose également d’options de compression personnalisables via des codecs, afin que vous puissiez stocker efficacement de grands jeux de données.
Intégration et écosystème
MongoDB Atlas Vector Search s’intègre à des services et outils d’IA populaires. Il prend en charge les modèles d’embedding d’OpenAI et de VoyageAI et fonctionne avec des frameworks open-source comme LangChain et LlamaIndex pour créer des applications avec des Large Language Models (LLMs).
ClickHouse, en tant que base de données analytique généraliste, peut nécessiter un travail d’intégration supplémentaire pour des outils d’IA spécifiques. Mais son interface SQL est familière à de nombreux développeurs et analystes de données.
Facilité d’utilisation
MongoDB Atlas est un service managé qui peut simplifier la configuration et la maintenance. Son intégration avec l’écosystème MongoDB plus large le rend plus facile à adopter pour les équipes déjà familières avec MongoDB.
ClickHouse présente une courbe d’apprentissage plus raide pour ceux qui ne sont pas familiers avec les bases de données OLAP ou SQL. Mais pour les développeurs maîtrisant SQL, sa recherche vectorielle est accessible via une syntaxe de requête familière.
Considérations de coût
MongoDB Atlas est un service entièrement managé qui peut entraîner des coûts opérationnels plus élevés, mais une charge de maintenance réduite.
ClickHouse, étant open-source, présente des coûts initiaux plus faibles, mais peut nécessiter davantage d’expertise interne pour le déploiement et la gestion.
Fonctionnalités de sécurité
MongoDB Atlas et ClickHouse disposent tous deux de fonctionnalités de sécurité robustes. MongoDB Atlas propose le chiffrement de bout en bout, le contrôle d’accès basé sur les rôles et l’isolation réseau. ClickHouse dispose du chiffrement des données, du contrôle d’accès et de mécanismes d’authentification.
Quand choisir chacun
MongoDB Atlas Vector Search est le meilleur choix lorsque vous travaillez avec des structures de données flexibles basées sur des documents et que vous devez combiner la recherche vectorielle avec les requêtes documentaires traditionnelles. Il est particulièrement adapté aux applications qui nécessitent une intégration transparente avec des services et outils d’IA, tels que les systèmes de recommandation, les moteurs de recherche sémantique ou l’analyse de contenu alimentée par l’IA. Si vous utilisez déjà MongoDB ou si vous avez besoin d’un service managé capable de gérer à la fois vos opérations de base de données classiques et vos besoins de recherche vectorielle, MongoDB Atlas Vector Search est une solution unique qui peut simplifier votre stack technologique et réduire la charge opérationnelle.
ClickHouse est le meilleur choix lorsque vous disposez d’ensembles de données massifs nécessitant des requêtes complexes combinant recherche vectorielle avec filtrage et agrégation SQL. C’est le choix adapté aux scénarios où vous avez des ensembles de données vectorielles de plusieurs To, trop volumineux pour des index uniquement en mémoire, en particulier lorsque vous avez besoin d’une correspondance exacte rapide et parallélisée. ClickHouse est excellent pour les cas d’utilisation de recherche avancée en analytique de données, lorsque vous devez interroger des données vectorielles avec des métadonnées ou d’autres informations structurées. Si votre équipe maîtrise SQL et que vous recherchez une solution open source puissante capable de gérer à la fois la recherche vectorielle et les charges de travail OLAP traditionnelles, ClickHouse est la réponse.
Résumé
MongoDB Atlas Vector Search est idéal pour la flexibilité, l’intégration de l’IA et la facilité d’utilisation au sein de l’écosystème MongoDB, un service managé qui combine base de données documentaire et recherche vectorielle. ClickHouse est idéal pour gérer des ensembles de données massifs, de puissantes opérations vectorielles basées sur SQL et des requêtes analytiques hautes performances. Votre choix entre ces deux options doit être guidé par votre cas d’utilisation, vos types de données et vos exigences de performance. Choisissez MongoDB Atlas si vous avez besoin d’une solution flexible prête pour l’IA avec des services managés, et ClickHouse si vous avez de très grands ensembles de données nécessitant des requêtes complexes combinant recherche vectorielle et SQL. En fin de compte, il s’agit d’aligner les forces de la technologie avec les besoins de votre projet et l’expertise de votre équipe.
Lisez ceci pour obtenir une vue d’ensemble de MongoDB et ClickHouse, mais pour les évaluer, vous devez le faire en fonction de votre cas d’utilisation. Un outil qui peut vous aider dans cette démarche est VectorDBBench, un outil de benchmarking open source pour la comparaison de bases de données vectorielles. Au final, un benchmarking approfondi avec vos propres ensembles de données et modèles de requêtes sera essentiel pour prendre une décision entre ces deux approches puissantes mais différentes de la recherche vectorielle dans les systèmes de bases de données distribuées.
Utiliser VectorDBBench open source pour évaluer et comparer vous-même les bases de données vectorielles
VectorDBBench est un outil de benchmarking open source destiné aux utilisateurs qui ont besoin de systèmes de stockage et de récupération de données hautes performances, en particulier des bases de données vectorielles. Cet outil permet aux utilisateurs de tester et de comparer différents systèmes de bases de données vectorielles comme Milvus et Zilliz Cloud (le Milvus managé) en utilisant leurs propres ensembles de données et de trouver celui qui correspond à leurs cas d’utilisation. Avec VectorDBBench, les utilisateurs peuvent prendre des décisions basées sur les performances réelles des bases de données vectorielles plutôt que sur des affirmations marketing ou des ouï-dire.
VectorDBBench est écrit en Python et sous licence open source MIT, ce qui signifie que chacun peut l’utiliser, le modifier et le distribuer librement. L’outil est activement maintenu par une communauté de développeurs engagés dans l’amélioration de ses fonctionnalités et de ses performances.
Téléchargez VectorDBBench depuis son référentiel GitHub pour reproduire nos résultats de benchmark ou obtenir des résultats de performance sur vos propres ensembles de données.
Jetez un rapide coup d’œil aux performances des principales bases de données vectorielles sur le classement VectorDBBench.
Lisez les blogs suivants pour en savoir plus sur l’évaluation des bases de données vectorielles.
Ressources supplémentaires sur VectorDB, GenAI et ML
Continuer à lire

Announcing the General Availability of Single Sign-On (SSO) on Zilliz Cloud
SSO is GA on Zilliz Cloud, delivering the enterprise-grade identity management capabilities your teams need to deploy vectorDB with confidence.

Data Deduplication at Trillion Scale: How to Solve the Biggest Bottleneck of LLM Training
Explore how MinHash LSH and Milvus handle data deduplication at the trillion-scale level, solving key bottlenecks in LLM training for improved AI model performance.

Proactive Monitoring for Vector Database: Zilliz Cloud Integrates with Datadog
we're excited to announce Zilliz Cloud's integration with Datadog, enabling comprehensive monitoring and observability for your vectorDB deployments.
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.


