SingleStore vs TiDB : 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 TiDB, 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 à haute 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 central dans les applications d’IA, permettant une analyse et une récupération de 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 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é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 extensions de recherche vectorielle capables d’effectuer des recherches vectorielles à petite échelle.
SingleStore est un système de gestion de base de données SQL relationnel et distribué, et Rockset est une base de données de recherche et d’analyse avec des capacités de recherche vectorielle sous forme d’extension. Tous deux disposent de capacités de recherche vectorielle sous forme d’extension. Cet article compare leurs capacités de recherche vectorielle.
SingleStore : Vue d’ensemble 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 distinctes dans votre stack 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 plage 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 utilisant 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 correspondance de similarité. C’est très utile pour des applications comme les systèmes de recommandation, la reconnaissance d’images et les chatbots IA, où la correspondance de similarité est rapide.
Au cœur de son architecture, SingleStore est conçu pour la performance et le passage à l’échelle. La base de données distribue les données sur plusieurs nœuds afin que vous puissiez gérer des opérations de 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, vous n’avez donc pas besoin d’effectuer plusieurs requêtes distinctes. 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 Approximate Nearest Neighbor (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 voie à suivre.
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 comme 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 correspondance d’images basée sur des embeddings vectoriels. En les combinant avec les fonctionnalités traditionnelles des bases de données, SingleStore permet aux développeurs de créer des applications d’IA complexes à l’aide de la syntaxe SQL tout en maintenant les performances et la scalabilité.
Qu’est-ce que TiDB ? Un aperçu
TiDB, développé par PingCAP, est une base de données SQL distribuée open-source qui offre des capacités de traitement hybride transactionnel et analytique (HTAP). Elle est compatible avec MySQL, ce qui facilite son adoption par les équipes déjà familiarisées avec l’écosystème MySQL. L’architecture SQL distribuée de TiDB offre une scalabilité horizontale comparable à celle des bases de données NoSQL tout en conservant le modèle relationnel des bases de données SQL, ce qui la rend très flexible pour gérer à la fois les charges de travail transactionnelles et analytiques.
L’une des principales forces de TiDB est son architecture HTAP, qui lui permet de traiter des charges de travail transactionnelles (OLTP) et analytiques (OLAP) dans une seule base de données, réduisant ainsi le besoin de systèmes séparés. De plus, la compatibilité MySQL de TiDB facilite son intégration dans les environnements existants qui s’appuient sur MySQL sans modifications importantes du code applicatif. La base de données comprend également l’auto-sharding, qui distribue automatiquement les données entre les nœuds afin d’améliorer les performances de lecture et d’écriture tout en maintenant une forte cohérence.
TiDB prend en charge la recherche vectorielle grâce à l’intégration avec des bibliothèques et plugins externes, permettant une gestion et une interrogation efficaces des données vectorisées. Cette fonctionnalité, combinée à l’architecture HTAP de TiDB, en fait une option polyvalente pour les entreprises ayant besoin de capacités de recherche vectorielle parallèlement aux charges de travail transactionnelles et analytiques. L’architecture distribuée de TiDB lui permet de gérer des requêtes vectorielles à grande échelle une fois les configurations nécessaires mises en place.
Bien que l’intégration des fonctionnalités de recherche vectorielle dans TiDB nécessite une configuration supplémentaire, la compatibilité SQL du système permet aux développeurs de combiner la recherche vectorielle avec des requêtes relationnelles traditionnelles. Cette flexibilité rend TiDB adapté aux applications complexes qui nécessitent à la fois des capacités de recherche vectorielle et de base de données relationnelle, offrant une solution complète pour des besoins variés de gestion des données.
Différences clés
Méthodologie de recherche
SingleStore dispose d’une recherche vectorielle intégrée à la base de données avec à la fois la recherche exacte des k plus proches voisins (kNN) et la recherche Approximate Nearest Neighbor (ANN). Vous pouvez ajuster la précision et la vitesse en fonction des besoins de votre application. Grâce à la prise en charge intégrée de méthodes d’indexation vectorielle comme FLAT, IVF_FLAT et HNSW, SingleStore peut effectuer une correspondance de similarité haute performance au sein même de la base de données, sans nécessiter de systèmes distincts spécifiques aux vecteurs.
TiDB, quant à lui, intègre la recherche vectorielle via des bibliothèques et plugins externes. Bien que cela lui donne plus de flexibilité, la dépendance à des composants externes peut ajouter de la complexité et une variabilité des performances. La force de TiDB réside dans la combinaison des requêtes vectorielles avec son architecture de traitement transactionnel et analytique hybride (HTAP), mais cela nécessite une configuration supplémentaire.
Gestion des données
SingleStore peut stocker des données vectorielles dans des tables columnstore et effectuer des opérations SQL en même temps que des requêtes vectorielles. Cela facilite les applications comme la recherche sémantique ou les recommandations alimentées par l’IA. Mais il est limité au format Vector Type(dimensions[, F32]), ce qui peut ne pas être assez flexible pour certains cas d’utilisation.
TiDB peut gérer diverses charges de travail, des données structurées, semi-structurées et non structurées. Sa compatibilité avec MySQL facilite son adoption pour les équipes déjà présentes dans cet écosystème. Pour les données vectorielles, TiDB utilise des outils externes, ce qui offre de la flexibilité, mais au prix d’une configuration supplémentaire et d’une surcharge potentielle.
Scalabilité et performances
SingleStore distribue les données vectorielles et relationnelles sur plusieurs nœuds, ce qui facilite la scalabilité. À mesure que les données augmentent, l’ajout de nœuds vous offre des performances constantes sans changer d’architecture. Son indexation ANN intégrée optimise la vitesse des requêtes pour les grands ensembles de données, pour des applications avec des milliards de vecteurs.
TiDB dispose également d’une scalabilité horizontale grâce à son architecture SQL distribuée, avec partitionnement automatique et équilibrage de charge. Sa scalabilité pour les charges de travail relationnelles est éprouvée, mais les performances des requêtes vectorielles dépendent de l’intégration externe choisie, qui peut ne pas évoluer aussi facilement.
Flexibilité et personnalisation
SingleStore est optimisé pour la recherche vectorielle basée sur SQL, vous pouvez donc utiliser une syntaxe familière pour créer votre application. Mais son approche structurée de l’indexation et du stockage vectoriels peut limiter la flexibilité par rapport aux systèmes conçus uniquement pour les vecteurs.
TiDB offre davantage de personnalisation puisqu’il utilise des bibliothèques externes pour la recherche vectorielle. Vous pouvez le configurer selon vos besoins, ce qui en fait un bon choix pour les scénarios qui nécessitent plus de personnalisation au-delà de la solution prête à l’emploi.
Intégration et écosystème
SingleStore s’intègre bien aux pipelines d’IA et de ML en permettant des opérations SQL sur des embeddings vectoriels issus de modèles comme ceux d’OpenAI ou de Hugging Face. Cela réduit la surcharge liée au transfert de données et rend le développement d’applications fluide.
TiDB dispose d’une forte compatibilité avec MySQL, il est donc facile à intégrer aux outils et à l’écosystème MySQL existants. Mais sa recherche vectorielle dépend de bibliothèques externes, qui nécessitent des efforts supplémentaires pour être intégrées dans des workflows de bout en bout.
Facilité d’utilisation
SingleStore simplifie le développement avec un seul système pour les opérations vectorielles et relationnelles. Sa documentation et sa prise en charge des méthodes d’indexation courantes facilitent la tâche des développeurs qui veulent une solution tout-en-un.
TiDB, bien qu’agréable pour les développeurs pour les tâches relationnelles, peut présenter une courbe d’apprentissage plus raide pour la recherche vectorielle, puisque vous devez configurer des outils supplémentaires et externes.
Coût
SingleStore regroupe la gestion des données vectorielles et relationnelles dans un seul système, ce qui peut réduire le coût de maintenance de bases de données séparées. Mais les coûts de licence et de mise à l’échelle doivent être évalués en fonction de la charge de travail.
TiDB est open-source et présente un avantage en termes de coût pour une configuration de base. Mais l’ajout de la recherche vectorielle via des bibliothèques externes peut entraîner des coûts opérationnels et de maintenance supplémentaires.
Sécurité
SingleStore propose le chiffrement, le contrôle d’accès basé sur les rôles et des connexions sécurisées dans le cadre de son offre entreprise, ce qui le rend adapté aux applications sensibles.
TiDB dispose également de fonctionnalités de sécurité, comme le chiffrement et le contrôle d’accès. Mais les plugins externes pour la recherche vectorielle nécessitent une attention supplémentaire en matière de conformité et de sécurité.
Quand choisir SingleStore
SingleStore est idéal pour les applications qui ont besoin d’un système unique pour gérer à la fois la recherche vectorielle et les requêtes relationnelles à grande échelle. Avec la kNN exacte intégrée et l’indexation ANN, ainsi que la possibilité de combiner la recherche vectorielle avec SQL, il est parfait pour les applications alimentées par l’IA comme la recherche sémantique, les systèmes de recommandation et la reconnaissance d’images. Si vous avez besoin d’une correspondance de similarité rapide, d’une mise à l’échelle transparente des nœuds et de moins de complexité dans la gestion de systèmes séparés, l’approche intégrée de SingleStore vous offre des performances élevées et une grande facilité d’utilisation pour le big data.
Quand choisir TiDB
TiDB est idéal pour les scénarios où le traitement transactionnel et analytique hybride (HTAP) est requis, en particulier au sein de l’écosystème MySQL. Il est parfait pour les applications qui ont besoin d’une cohérence transactionnelle avec des charges de travail analytiques, comme l’analyse de données en temps réel ou l’intelligence opérationnelle. Si votre cas d’utilisation implique la recherche plein texte ou nécessite une configuration personnalisée pour la recherche vectorielle en tant que fonctionnalité complémentaire, TiDB vous permet de vous intégrer à des bibliothèques externes tout en tirant parti de ses capacités SQL distribuées et de son auto-sharding pour la scalabilité.
Conclusion
SingleStore et TiDB sont tous deux excellents, SingleStore excelle dans les requêtes vectorielles et relationnelles unifiées à grande échelle, et TiDB excelle dans le HTAP et la personnalisation. Votre choix dépend de votre cas d’utilisation : choisissez SingleStore si vous avez besoin d’une solution tout-en-un pour une recherche vectorielle haute performance, ou choisissez TiDB si vos priorités sont le HTAP, la compatibilité MySQL et les intégrations personnalisées. Faites correspondre la technologie à vos types de données, à vos exigences de scalabilité et à vos besoins de performance, et vous obtiendrez les meilleurs résultats.
Lisez ceci pour obtenir un aperçu de SingleStore et TiDB, 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 des bases de données vectorielles. Au final, un benchmarking approfondi avec vos propres jeux 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 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 géré) en utilisant leurs propres jeux 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 publié 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 dépôt GitHub pour reproduire nos résultats de benchmark ou obtenir des résultats de performance sur vos propres jeux de données.
Jetez un rapide coup d’œil aux performances des bases de données vectorielles grand public 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, la GenAI et le ML
Continuer à lire

Milvus 2.6.x Now Generally Available on Zilliz Cloud, Making Vector Search Faster, Smarter, and More Cost-Efficient for Production AI
Milvus 2.6.x is now GA on Zilliz Cloud, delivering faster vector search, smarter hybrid queries, and lower costs for production RAG and AI applications.

Introducing Zilliz Cloud Global Cluster: Region-Level Resilience for Mission-Critical AI
Zilliz Cloud Global Cluster delivers multi-region resilience, automatic failover, and fast global AI search with built-in security and compliance.

Milvus WebUI: A Visual Management Tool for Your Vector Database
Explore Milvus WebUI to monitor, manage, and optimize your vector database with real-time insights, performance tracking, and system health monitoring.
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.


