SingleStore vs Aerospike : 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 Aerospike, 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 le sens 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 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 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 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é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 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 relationnelle distribuée, et Aerospike est également une base de données NoSQL distribuée et évolutive. Les deux disposent de la recherche vectorielle en tant qu’extension. 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 à la base de données elle-même, vous n’avez donc pas besoin de bases de données vectorielles séparées 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 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 correspondance de similarité. C’est extrêmement 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 SingleStore, tout est conçu pour la performance et 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 séparées. Contrairement aux bases de données exclusivement 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 de plus proches voisins approximative (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 avec 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 indices vectoriels dans SingleStore comporte des exigences spécifiques. Ces indices 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 une génération de texte ciblée et la correspondance d’images basée sur des embeddings vectoriels. En combinant cela avec les fonctionnalités traditionnelles des bases de données, SingleStore permet aux développeurs de créer des applications d’IA complexes avec la syntaxe SQL tout en maintenant les performances et la montée en charge.
Aerospike : aperçu et technologie de base
Aerospike est une base de données NoSQL destinée aux applications temps réel à hautes performances. Elle a ajouté la prise en charge de l’indexation et de la recherche vectorielles, ce qui la rend adaptée aux cas d’utilisation de bases de données vectorielles. La capacité vectorielle s’appelle Aerospike Vector Search (AVS) et est en Preview. Vous pouvez demander un accès anticipé auprès d’Aerospike.
AVS ne prend en charge que les index Hierarchical Navigable Small World (HNSW) pour la recherche vectorielle. Lorsque des mises à jour ou des insertions sont effectuées dans AVS, les données d’enregistrement, y compris le vecteur, sont écrites dans Aerospike Database (ASDB) et sont immédiatement visibles. Pour l’indexation, chaque enregistrement doit comporter au moins un vecteur dans le champ vectoriel spécifié d’un index. Vous pouvez avoir plusieurs vecteurs et index pour un seul enregistrement, afin de pouvoir rechercher les mêmes données de différentes manières. Aerospike recommande d’attribuer les enregistrements upserted à un ensemble spécifique afin de pouvoir les surveiller et agir dessus.
AVS a une manière unique de construire l’index : elle est concurrente sur tous les nœuds AVS. Alors que les mises à jour d’enregistrements vectoriels sont écrites directement dans ASDB, les enregistrements d’index sont traités de manière asynchrone à partir d’une file d’indexation. Cela se fait par lots et est distribué sur tous les nœuds AVS, de sorte que tous les cœurs CPU du cluster AVS sont utilisés et que le système est scalable. Les performances d’ingestion dépendent fortement de la mémoire de l’hôte et de la configuration de la couche de stockage.
Pour chaque élément de la file d’indexation, AVS traite le vecteur pour l’indexation, construit les clusters pour chaque vecteur et les valide dans ASDB. Un enregistrement d’index contient une copie du vecteur lui-même et les clusters de ce vecteur à une couche donnée du graphe HNSW. L’indexation utilise les extensions vectorielles (AVX) pour un traitement parallèle single instruction, multiple data.
AVS effectue des requêtes pendant l’ingestion pour « préhydrater » le cache d’index, car les enregistrements dans les clusters sont interconnectés. Ces requêtes ne sont pas comptabilisées comme des requêtes de recherche, mais apparaissent comme des lectures sur la couche de stockage. Ainsi, le cache est alimenté avec des données pertinentes et peut améliorer les performances des requêtes. Cela montre comment AVS gère les données vectorielles et construit des index pour la recherche par similarité afin de pouvoir évoluer pour les recherches vectorielles à haute dimension.
Principales différences
Méthodologie de recherche
SingleStore propose plusieurs options d’index vectoriels : FLAT, IVF_FLAT, IVF_PQ, IVF_PQFS, HNSW_FLAT, HNSW_PQ. Cela vous offre des options pour différents cas d’utilisation — des correspondances exactes aux plus proches voisins approximatifs. Aerospike Vector Search (AVS) ne prend en charge que les index HNSW. HNSW convient à de nombreux cas, mais l’éventail plus large d’options d’indexation de SingleStore vous donne davantage de contrôle sur le compromis vitesse-précision dans vos recherches.
Données et intégration
SingleStore intègre la recherche vectorielle dans sa base de données SQL. Vous pouvez combiner des recherches vectorielles avec des requêtes SQL standard afin de filtrer les résultats selon des champs de données classiques comme les prix ou les catégories. Une seule base de données prend en charge à la fois vos besoins en données vectorielles et traditionnelles. Aerospike adopte une approche NoSQL, axée sur les applications temps réel hautes performances. Sa capacité de recherche vectorielle (AVS) est plus récente et actuellement en Preview, et nécessite un accès anticipé auprès d’Aerospike.
Scalabilité et performance
Les deux bases de données évoluent différemment. SingleStore dispose d’une architecture distribuée dans laquelle vous pouvez ajouter des nœuds à mesure que vos données augmentent. Son processeur de requêtes combine les opérations vectorielles et SQL dans une seule requête. L’AVS d’Aerospike traite la construction d’index simultanément sur tous les nœuds et utilise des extensions vectorielles pour le traitement parallèle. Il pré-hydrate également le cache d’index afin d’améliorer les performances des requêtes. Les performances d’ingestion dépendent fortement de la mémoire de l’hôte et de la configuration du stockage.
Flexibilité de mise en œuvre
SingleStore exige que les index vectoriels soient créés sur des tables columnstore et des colonnes uniques stockant des données vectorielles, et ne prend actuellement en charge que le type d’élément F32. Aerospike permet plusieurs vecteurs et index pour des enregistrements uniques, ce qui vous donne plus de flexibilité dans la manière dont vous recherchez vos données. Mais Aerospike recommande des pratiques spécifiques, comme l’affectation des enregistrements upsertés à des ensembles spécifiques pour la surveillance.
Facilité d’utilisation et intégration
SingleStore peut être plus attrayant pour les équipes qui connaissent SQL, puisqu’il utilise une syntaxe SQL standard pour les requêtes vectorielles comme pour les requêtes traditionnelles. Cela pourrait réduire la courbe d’apprentissage pour les développeurs maîtrisant SQL. L’approche NoSQL d’Aerospike peut nécessiter davantage d’apprentissage pour les équipes habituées aux bases de données SQL traditionnelles, mais peut constituer un avantage pour les équipes qui travaillent déjà avec des systèmes NoSQL.
À utiliser lorsque
SingleStore convient aux applications qui nécessitent à la fois des opérations de base de données traditionnelles et une recherche vectorielle dans un seul système. Il est parfait pour les projets qui comportent des données structurées aux côtés de vecteurs, comme les plateformes d’e-commerce qui ont besoin d’une recherche de similarité de produits avec filtrage par prix, ou les systèmes de recommandation de contenu qui combinent les préférences des utilisateurs avec les métadonnées de contenu. Vous pouvez utiliser une syntaxe SQL familière pour les opérations vectorielles, ce qui en fait un excellent choix pour les équipes disposant d’une expertise SQL et souhaitant ajouter des fonctionnalités d’IA sans gérer de bases de données vectorielles séparées.
Aerospike est idéal pour les applications temps réel hautes performances où la vitesse est importante. Sa construction d’index simultanée et son cache pré-hydraté le rendent parfaitement adapté à des cas d’utilisation comme les moteurs de recommandation en temps réel ou la recherche de similarité d’images en direct. Le fait d’avoir plusieurs vecteurs par enregistrement est utile pour les applications qui ont besoin de différentes représentations vectorielles des mêmes données, comme les systèmes d’IA multimodaux qui traitent à la fois du texte et des images, ou les systèmes qui utilisent différents modèles d’embedding pour le même contenu.
Conclusion
Le choix entre SingleStore et Aerospike dépend de vos besoins. SingleStore est excellent pour combiner des opérations de base de données traditionnelles avec la recherche vectorielle, dispose de plusieurs types d’index et d’une intégration SQL. Aerospike est destiné aux opérations temps réel hautes performances grâce à son implémentation HNSW et à son traitement simultané. Votre décision doit être fondée sur votre stack technologique existante, l’expertise de votre équipe (SQL vs NoSQL), vos exigences en temps réel et la nécessité ou non de requêtes combinées avec des types de données traditionnels. Gardez également à l’esprit que la recherche vectorielle d’Aerospike est plus récente et en preview, tandis que SingleStore dispose d’une solution de recherche vectorielle plus mature.
Lisez ceci pour obtenir un aperçu de SingleStore et d’Aerospike, 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 schémas 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 managé) 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 sous licence open source MIT, ce qui signifie que chacun peut librement l’utiliser, le modifier et le distribuer. 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 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, GenAI et le ML
Continuer à lire

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.

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.

DeepSeek Always Busy? Deploy It Locally with Milvus in Just 10 Minutes—No More Waiting!
Learn how to set up DeepSeek-R1 on your local machine using Ollama, AnythingLLM, and Milvus in just 10 minutes. Bypass busy servers and enhance AI responses with custom data.
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.


