SingleStore vs ClickHouse : choisir la bonne base de données vectorielle pour vos applications d’IA
Qu’est-ce qu’une base de données vectorielle ?
Avant de comparer SingleStore et ClickHouse, explorons d’abord le concept de bases de données vectorielles.
Une base de données vectorielle est spécialement 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 le sens sémantique d’un texte, les caractéristiques visuelles d’images ou les attributs de produits. En permettant des recherches de similarité efficaces, les bases de données vectorielles jouent un rôle essentiel 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 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 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 tels que 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écialisées 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 modules complémentaires de recherche vectorielle capables d’effectuer des recherches vectorielles à petite échelle.
SingleStore est un système de gestion de base de données SQL relationnelle distribuée, et ClickHouse est une base de données open source orientée colonnes. Tous deux disposent de la recherche vectorielle comme module complémentaire. Cet article compare leurs capacités de recherche vectorielle.
SingleStore : aperçu et technologie de base
SingleStore a rendu la recherche vectorielle possible en l’intégrant directement dans la base de données, de sorte que vous n’avez pas besoin de bases de données vectorielles séparées dans votre pile technologique. Les vecteurs peuvent être stockés dans des tables de base de données classiques et recherchés avec des requêtes SQL standard. Par exemple, vous pouvez rechercher des images de produits similaires tout en filtrant par fourchette de prix, ou explorer des embeddings de documents tout en limitant les résultats à des départements spécifiques. Le système prend en charge à la fois la recherche sémantique à l’aide de FLAT, IVF_FLAT, IVF_PQ, IVF_PQFS, HNSW_FLAT et HNSW_PQ pour l’index vectoriel, ainsi que le produit scalaire et la distance euclidienne pour la mise en correspondance par similarité. C’est extrêmement utile pour des applications comme les systèmes de recommandation, la reconnaissance d’images et les chatbots d’IA, où la mise en correspondance par similarité est rapide.
Au cœur de SingleStore se trouvent la performance et l’évolutivité. La base de données distribue les données sur plusieurs nœuds, ce qui vous permet de gérer des opérations sur des données vectorielles à grande échelle. À mesure que vos données augmentent, vous pouvez simplement ajouter davantage de nœuds et le tour est joué. Le processeur de requêtes peut combiner la recherche vectorielle avec des opérations SQL, de sorte que vous n’avez pas besoin d’effectuer plusieurs requêtes séparées. Contrairement aux bases de données uniquement vectorielles, SingleStore vous offre ces capacités dans le cadre d’une base de données complète, afin que vous puissiez créer des fonctionnalités d’IA sans gérer plusieurs systèmes ni vous occuper de transferts de données complexes.
Pour l’indexation vectorielle, SingleStore propose deux options. La première est la recherche exacte des k plus proches voisins (kNN), qui trouve l’ensemble exact des k plus proches voisins pour un vecteur de requête. Mais pour les très grands jeux de données ou une forte concurrence, SingleStore prend également en charge la recherche des plus proches voisins approximatifs (ANN) à l’aide de l’indexation vectorielle. La recherche ANN peut trouver k voisins proches beaucoup plus rapidement que la recherche kNN exacte, parfois de plusieurs ordres de grandeur. Il existe un compromis entre vitesse et précision : ANN est plus rapide, mais peut ne pas renvoyer l’ensemble exact des k plus proches voisins. Pour les applications comportant des milliards de vecteurs qui nécessitent des temps de réponse interactifs et n’ont pas besoin d’une précision absolue, la recherche ANN est la solution à privilégier.
L’implémentation technique des index vectoriels dans SingleStore comporte des exigences spécifiques. Ces index ne peuvent être créés que sur des tables columnstore et doivent être créés sur une seule colonne qui stocke les données vectorielles. Le système prend actuellement en charge le format Vector Type(dimensions[, F32]), F32 étant le seul type d’élément pris en charge. Cette approche structurée rend SingleStore idéal pour des applications telles que la recherche sémantique utilisant des vecteurs issus de grands modèles de langage, la génération augmentée par récupération (RAG) pour la génération de texte ciblée et la mise en correspondance d’images basée sur des embeddings vectoriels. En combinant cela avec les fonctionnalités de bases de données traditionnelles, SingleStore permet aux développeurs de créer des applications d’IA complexes en utilisant la syntaxe SQL tout en maintenant les performances et la mise à l’échelle.
ClickHouse : Présentation et technologie de base
ClickHouse est une base de données OLAP temps réel open source connue pour sa prise en charge complète de SQL et son traitement de requêtes à grande vitesse. Elle excelle dans le traitement des requêtes analytiques grâce à son pipeline de requêtes entièrement parallélisé, ce qui lui permet d’effectuer rapidement des opérations de recherche vectorielle. Ses niveaux élevés de compression, personnalisables via des codecs, permettent à ClickHouse de stocker et d’interroger efficacement de grands jeux de données. L’un de ses principaux atouts est sa capacité à gérer des jeux de données de plusieurs To sans être limitée par la mémoire, ce qui en fait un outil puissant pour les utilisateurs traitant des données vectorielles à grande échelle. Elle prend également en charge le filtrage et l’agrégation sur les métadonnées, permettant aux développeurs d’effectuer des requêtes complexes à la fois sur les vecteurs et sur leurs métadonnées associées.
ClickHouse intègre la fonctionnalité de recherche vectorielle grâce à ses capacités SQL, où les opérations de distance vectorielle sont traitées comme n’importe quelle autre fonction SQL. Cela permet une combinaison fluide avec le filtrage et l’agrégation traditionnels, ce qui la rend idéale pour les cas d’utilisation où les données vectorielles doivent être interrogées avec des métadonnées ou d’autres informations. De plus, des fonctionnalités expérimentales comme les index Approximate Nearest Neighbour (ANN) offrent des capacités de correspondance plus rapides, bien qu’approximatives. ClickHouse prend également en charge la correspondance exacte via un balayage linéaire des lignes, son traitement parallélisé garantissant une vitesse et une efficacité élevées.
ClickHouse est une excellente option pour la recherche vectorielle lorsque la combinaison de la correspondance vectorielle avec le filtrage ou l’agrégation de métadonnées est importante. Elle est particulièrement utile 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 avantageuse lorsque la prise en charge de SQL est nécessaire et que le jeu de données vectorielles est trop volumineux pour s’appuyer sur des index uniquement en mémoire. De plus, si vous avez déjà des données associées dans ClickHouse ou souhaitez éviter d’apprendre un autre outil pour gérer des millions de vecteurs, ClickHouse peut vous faire gagner du temps et des ressources. Ses points forts résident dans la correspondance exacte rapide et parallélisée et dans la gestion de grands jeux de données, ce qui la rend adaptée aux utilisateurs ayant des exigences de recherche avancées.
ClickHouse se distingue comme une plateforme polyvalente pour la recherche vectorielle, en particulier lorsqu’il s’agit de grands jeux de données nécessitant un traitement parallélisé et lorsque l’on combine des recherches vectorielles avec du filtrage et de l’agrégation basés sur SQL. Bien qu’il ne soit pas aussi spécialisé pour les petits jeux de données limités par la mémoire ou les scénarios à QPS élevé que les bases de données vectorielles dédiées, sa capacité à gérer des requêtes complexes, y compris les métadonnées, en fait une option puissante pour les développeurs familiers avec SQL qui ont besoin de capacités de recherche vectorielle à haute vitesse.
Différences clés
Méthodologie de recherche
SingleStore offre à la fois des options de recherche exacte des k plus proches voisins (kNN) et de recherche approximative des plus proches voisins (ANN). Le système prend en charge plusieurs types d’index, notamment FLAT, IVF_FLAT, IVF_PQ, IVF_PQFS, HNSW_FLAT et HNSW_PQ. Il utilise le produit scalaire et la distance euclidienne pour la mise en correspondance par similarité.
ClickHouse adopte une approche différente, en se concentrant principalement sur la correspondance exacte par balayage linéaire avec traitement parallélisé. Bien qu’il propose des index ANN expérimentaux, sa force réside dans la combinaison des opérations vectorielles avec les fonctionnalités SQL, en traitant les calculs de distance vectorielle comme des fonctions SQL standard.
Gestion des données
SingleStore intègre les capacités vectorielles directement dans son système de base de données. Vous pouvez stocker des vecteurs dans des tables de base de données classiques et les interroger à l’aide de SQL standard. Cela signifie que vous pouvez combiner des recherches vectorielles avec des opérations SQL traditionnelles, comme le filtrage par fourchette de prix ou la limitation des résultats à des catégories spécifiques, le tout dans une seule requête.
ClickHouse excelle dans la gestion des requêtes analytiques et des grands jeux de données. Il utilise des codecs de compression personnalisés pour stocker et interroger efficacement de grands jeux de données. Le système peut traiter des jeux de données de plusieurs To sans contraintes de mémoire, ce qui le rend particulièrement performant dans les scénarios où vous devez travailler avec des données vectorielles volumineuses accompagnées de métadonnées.
Évolutivité et performances
SingleStore utilise une architecture distribuée dans laquelle les données sont réparties sur plusieurs nœuds. La montée en charge est gérée en ajoutant davantage de nœuds à mesure que vos données augmentent. Le processeur de requêtes du système peut combiner la recherche vectorielle avec des opérations SQL dans une seule requête, réduisant ainsi la surcharge liée à plusieurs requêtes séparées.
ClickHouse atteint des performances élevées grâce à son pipeline de requêtes entièrement parallélisé. Il peut répartir le traitement sur plusieurs cœurs de CPU, ce qui le rend efficace pour les opérations vectorielles à grande échelle. La conception du système lui permet de gérer efficacement des jeux de données de plusieurs To, même lorsque les données dépassent la mémoire disponible.
Flexibilité et personnalisation
SingleStore impose des exigences techniques spécifiques pour les index vectoriels. Ils doivent être créés sur des tables columnstore et ne peuvent être appliqués qu’à des colonnes uniques stockant des données vectorielles. Le système prend actuellement en charge le format Vector Type(dimensions[, F32]), F32 étant le seul type d’élément pris en charge.
ClickHouse offre de la flexibilité grâce à ses capacités SQL et à la prise en charge de codecs de compression personnalisés. Vous pouvez exécuter des requêtes complexes combinant des opérations vectorielles avec des fonctions SQL traditionnelles, des filtres et des agrégations. Cela le rend particulièrement utile pour les scénarios nécessitant des capacités de requête avancées.
Intégration et écosystème
SingleStore se positionne comme une solution de base de données complète, éliminant le besoin de bases de données vectorielles distinctes dans votre pile technologique. Cette approche intégrée peut simplifier votre architecture et réduire la complexité des transferts de données.
ClickHouse, étant open source, s’intègre bien aux outils et frameworks existants basés sur SQL. Sa prise en charge du SQL standard signifie que vous pouvez utiliser des outils et des requêtes familiers tout en ajoutant des capacités de recherche vectorielle à vos applications.
Facilité d’utilisation
SingleStore fournit une interface SQL familière pour les opérations vectorielles, ce qui la rend accessible aux équipes ayant une expérience SQL. L’approche unifiée signifie que vous n’avez pas besoin d’apprendre plusieurs systèmes ni de gérer des transferts de données complexes entre différentes bases de données.
ClickHouse exploite la syntaxe SQL standard, ce qui le rend accessible aux développeurs familiers avec SQL. Cependant, son orientation vers les requêtes analytiques et le traitement parallèle peut nécessiter un apprentissage supplémentaire pour les équipes qui découvrent les bases de données OLAP.
Quand choisir SingleStore
SingleStore convient le mieux aux applications qui doivent combiner des opérations de base de données traditionnelles avec la recherche vectorielle dans un seul système. Il est idéal pour les systèmes de recommandation, les chatbots IA et la reconnaissance d’images, lorsque vous avez besoin à la fois d’une recherche exacte et approximative des plus proches voisins. Le système est adapté aux applications où vous développez des applications nécessitant des opérations vectorielles en temps réel parallèlement à des requêtes SQL classiques, par exemple des plateformes d’e-commerce qui combinent la recherche de similarité de produits avec la gestion des stocks ou des systèmes de recommandation de contenu qui prennent en compte les métadonnées utilisateur.
Quand choisir ClickHouse
ClickHouse convient le mieux lorsque votre cas d’utilisation principal concerne des charges de travail analytiques sur des données vectorielles à grande échelle, en particulier lorsque vous devez traiter des ensembles de données de plusieurs To. C’est le meilleur choix pour les applications qui nécessitent des requêtes analytiques complexes combinant des opérations vectorielles avec de nombreux filtrages et agrégations de métadonnées. ClickHouse est adapté aux scénarios où vous devez paralléliser les opérations vectorielles sur plusieurs cœurs CPU ; il est donc excellent pour les plateformes d’analyse de données à grande échelle, les systèmes d’analyse de journaux avec des composants vectoriels ou les applications de recherche traitant des ensembles de données massifs.
Conclusion
SingleStore et ClickHouse sont tous deux adaptés aux applications de recherche vectorielle. SingleStore est excellent comme solution de base de données unifiée avec des options de recherche vectorielle, plusieurs types d’index et des fonctionnalités de base de données traditionnelles. ClickHouse est excellent pour le traitement parallèle, les ensembles de données massifs et les fonctionnalités analytiques basées sur SQL. Votre choix entre ces deux solutions doit être guidé par vos exigences spécifiques en matière d’échelle des données, de complexité des requêtes et de besoins d’intégration. Demandez-vous si vous avez besoin d’opérations vectorielles en temps réel avec des fonctionnalités de base de données traditionnelles (SingleStore) ou d’un traitement analytique haute performance de données vectorielles à grande échelle (ClickHouse) afin de faire le bon choix pour votre cas d’utilisation.
Lisez ceci pour obtenir un aperçu de SingleStore et ClickHouse, mais pour les évaluer, vous devez le faire en fonction de votre cas d’utilisation. Un outil qui peut vous y aider 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 les bases de données vectorielles par vous-même
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 haute performance, en particulier de 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 géré) 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 déterminés à améliorer ses fonctionnalités et ses performances.
Téléchargez VectorDBBench depuis son dépôt 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 complémentaires sur VectorDB, GenAI et ML
Continuer à lire

AI Agents Are Quietly Transforming E-Commerce — Here’s How
Discover how AI agents transform e-commerce with autonomous decision-making, enhanced product discovery, and vector search capabilities for today's retailers.

How to Use Anthropic MCP Server with Milvus
MCP + Milvus: Streamline AI agent development with standardized data access, eliminating integration hassles while enhancing context and flexibility.

Legal Document Analysis: Harnessing Zilliz Cloud's Semantic Search and RAG for Legal Insights
Enhance legal document analysis with Zilliz Cloud’s Semantic Search and RAG. Improve accuracy, efficiency, and scalability for contracts, case law, and compliance.
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.


