pgvector 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 pgvector et ClickHouse, 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 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 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 modules complémentaires de recherche vectorielle capables d’effectuer des recherches vectorielles à petite échelle.
pgvector est une base de données traditionnelle et ClickHouse est une base de données open source orientée colonnes. Les deux disposent de capacités de recherche vectorielle sous forme de module complémentaire. Cet article compare leurs capacités de recherche vectorielle.
pgvector : aperçu et technologie de base
pgvector est une extension pour PostgreSQL qui ajoute la prise en charge des opérations vectorielles. Elle permet aux utilisateurs de stocker et d’interroger des embeddings vectoriels directement dans leur base de données PostgreSQL, offrant des capacités de recherche de similarité vectorielle sans avoir besoin d’une base de données vectorielle distincte.
Les principales fonctionnalités de pgvector incluent :
- La prise en charge de la recherche exacte et approximative des plus proches voisins
- L’intégration avec les mécanismes d’indexation de PostgreSQL
- La capacité à effectuer des opérations vectorielles comme l’addition et la soustraction
- La prise en charge de diverses métriques de distance (euclidienne, cosinus, produit scalaire)
pgvector, par défaut, utilise la recherche exacte des plus proches voisins, qui garantit un rappel parfait mais peut être plus lente pour les grands ensembles de données. Pour optimiser les performances, pgvector offre la possibilité de créer des index pour la recherche approximative des plus proches voisins. Cette approche échange une certaine précision contre une vitesse nettement améliorée, ce qui constitue souvent un compromis valable dans de nombreuses applications réelles.
Il est important de noter que l’ajout d’un index approximatif peut modifier les résultats de vos requêtes. Cela diffère des index de base de données classiques, qui n’affectent pas les résultats réels renvoyés. Les deux types d’index approximatifs pris en charge par pgvector sont :
- HNSW (Hierarchical Navigable Small World) : Introduit dans la version 0.5.0 de pgvector, HNSW est connu pour ses hautes performances et la qualité de ses résultats. Il construit une structure de graphe multicouche qui permet une traversée rapide lors des recherches.
- IVFFlat (Inverted File Flat) : Cette méthode divise l’espace vectoriel en clusters. Lors d’une recherche, elle identifie d’abord les clusters les plus pertinents, puis effectue une recherche exacte au sein de ces clusters. Cela peut accélérer considérablement les recherches dans de grands jeux de données.
Le choix entre ces types d’index dépend de votre cas d’utilisation spécifique, en tenant compte de facteurs comme la taille du jeu de données, la vitesse de requête requise et le compromis acceptable en matière de précision. HNSW offre généralement de meilleures performances, mais peut utiliser davantage de mémoire, tandis qu’IVFFlat peut être plus efficace en mémoire, mais peut être légèrement plus lent ou moins précis dans certains cas.
Lors de l’implémentation de pgvector dans votre projet, essayez d’expérimenter avec les deux types d’index et leurs paramètres afin de trouver la configuration optimale pour vos besoins spécifiques. Ce processus d’ajustement fin peut avoir un impact sur les performances et la précision de vos opérations de recherche vectorielle.
Vous voulez apprendre à commencer à utiliser pgvector ? Consultez ce tutoriel !
ClickHouse : Aperçu et principes fondamentaux
ClickHouse est une base de données OLAP open source pour l’analyse 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, afin que vous puissiez interroger les 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. Il propose également des indices expérimentaux de plus proches voisins approximatifs (Approximate Nearest Neighbour, ANN) pour une correspondance plus rapide (mais approximative). Et une correspondance exacte par balayage linéaire des lignes avec traitement parallèle pour la vitesse et l’efficacité.
ClickHouse est excellent pour la recherche vectorielle lorsque vous devez combiner la correspondance vectorielle avec le filtrage ou l’agrégation des métadonnées. En particulier pour les très grands jeux de données vectorielles qui doivent être traités en parallèle sur plusieurs cœurs de processeur. ClickHouse est également un bon choix 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 associées dans ClickHouse ou si vous ne voulez 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 ; il 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 la rend idéale pour les développeurs qui connaissent SQL et ont besoin d’une recherche vectorielle rapide.
pgvector vs ClickHouse pour la recherche vectorielle : quelle est la différence
Lors du choix entre pgvector et ClickHouse pour la recherche vectorielle, tenez compte des éléments suivants :
Méthodologie de recherche
pgvector prend en charge la recherche exacte et approximative des plus proches voisins. Il dispose de l’indexation HNSW et IVFFlat pour la recherche approximative, ainsi que de diverses métriques de distance (euclidienne, cosinus, produit scalaire). ClickHouse propose la recherche vectorielle via des fonctions SQL. Correspondance exacte avec traitement parallèle et ANN expérimentaux.
pgvector étend PostgreSQL pour les opérations vectorielles, stocke les embeddings vectoriels dans la base de données PostgreSQL. ClickHouse gère les données structurées et semi-structurées, combine la recherche vectorielle avec le filtrage des métadonnées et l’agrégation.
Évolutivité et performances
La recherche exacte de pgvector peut être plus lente pour les grands jeux de données, mais son indexation approximative est plus rapide pour les grands jeux de données. ClickHouse est conçu pour les jeux de données de plusieurs To et dispose d’un pipeline de requêtes entièrement parallélisé. Il n’est pas limité par la mémoire et peut gérer de grandes données vectorielles.
Flexibilité et personnalisation
pgvector s’intègre aux fonctionnalités existantes de PostgreSQL et propose des opérations vectorielles comme l’addition et la soustraction. ClickHouse offre une prise en charge complète de SQL et peut combiner la correspondance vectorielle avec des opérations SQL classiques.
Intégration et écosystème
pgvector s’intègre à l’écosystème PostgreSQL, ce qui est adapté aux projets utilisant déjà PostgreSQL. ClickHouse est une base de données OLAP autonome, adaptée aux projets nécessitant de l’analytique en temps réel en plus de la recherche vectorielle.
Facilité d’utilisation
pgvector est familier si vous utilisez déjà PostgreSQL, mais nécessite de comprendre les opérations vectorielles et les options d’indexation. ClickHouse utilise la syntaxe SQL pour les opérations vectorielles, mais présente une courbe d’apprentissage plus abrupte si vous débutez avec les bases de données OLAP.
Coût
pgvector peut utiliser l’infrastructure PostgreSQL existante, ce qui peut réduire les coûts si vous utilisez déjà PostgreSQL. ClickHouse nécessite une infrastructure séparée, mais peut réduire les coûts de stockage grâce à une forte compression.
Sécurité
pgvector hérite des fonctionnalités de sécurité de PostgreSQL et bénéficie de l’écosystème de sécurité de PostgreSQL. ClickHouse dispose de fonctionnalités de sécurité intégrées, mais nécessite une configuration supplémentaire pour une sécurité de niveau entreprise.
Quand utiliser chacun
pgvector est la solution à privilégier lorsque vous utilisez déjà PostgreSQL et souhaitez ajouter la recherche vectorielle à votre configuration de base de données relationnelle existante. Il est parfait pour les projets qui doivent intégrer des opérations vectorielles avec des données relationnelles, en particulier avec des jeux de données de taille modérée. pgvector est idéal lorsque vous avez besoin d’un contrôle précis des opérations vectorielles et souhaitez tirer parti de l’écosystème et des fonctionnalités de PostgreSQL.
ClickHouse est le meilleur choix pour les très grands jeux de données vectorielles, en particulier lorsque vous devez combiner la recherche vectorielle avec du SQL complexe et de l’analytique en temps réel. Il est particulièrement adapté aux projets avec des jeux de données de plusieurs téraoctets nécessitant un traitement analytique haute performance et une recherche vectorielle. ClickHouse est particulièrement utile lorsque vous devez rechercher des vecteurs avec un filtrage et une agrégation étendus des métadonnées.
Résumé
pgvector est excellent pour la recherche vectorielle avec PostgreSQL, un environnement familier pour les utilisateurs de PostgreSQL et une intégration transparente avec les données relationnelles. ClickHouse est excellent pour les très grands jeux de données, la recherche vectorielle haute performance et les capacités analytiques. Choisissez entre les deux en fonction de votre cas d’utilisation, de la taille des données, de l’infrastructure existante et de la nécessité de combiner la recherche vectorielle avec des requêtes complexes. Utilisez pgvector pour les projets basés sur PostgreSQL avec des données modérées et ClickHouse pour les grandes charges de travail analytiques avec recherche vectorielle.
Bien que cet article fournisse un aperçu de pgvector et de ClickHouse, il est essentiel d’évaluer ces bases de données en fonction de votre cas d’utilisation spécifique. Un outil pouvant vous aider dans ce processus est VectorDBBench, un outil de benchmarking open source conçu pour comparer les performances des bases de données vectorielles. En fin de compte, une évaluation comparative approfondie avec des jeux de données et des modèles de requêtes spécifiques sera essentielle pour prendre une décision éclairée entre ces deux approches puissantes, mais distinctes, 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 conçu pour les 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 les performances de différents systèmes de bases de données vectorielles tels que Milvus et Zilliz Cloud (le Milvus géré) en utilisant leurs propres jeux de données et de déterminer celui qui convient le mieux à leurs cas d’utilisation. Avec VectorDBBench, les utilisateurs peuvent prendre des décisions éclairées sur la base des performances réelles des bases de données vectorielles plutôt que de s’appuyer sur des affirmations marketing ou des preuves anecdotiques.
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 référentiel GitHub pour reproduire nos résultats de benchmark ou obtenir des résultats de performance sur vos propres jeux de données.
Jetez un coup d’œil rapide 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

Introducing Zilliz CLI and Agent Skills for Zilliz Cloud
Manage your vector database from your terminal or AI coding agent. Zilliz CLI and Agent Skills work with Claude Code, Cursor, Codex, and Copilot.

Zilliz Cloud Update: Tiered Storage, Business Critical Plan, Cross-Region Backup, and Pricing Changes
This release offers a rebuilt tiered storage with lower costs, a new Business Critical plan for enhanced security, and pricing updates, among other features.

Will Amazon S3 Vectors Kill Vector Databases—or Save Them?
AWS S3 Vectors aims for 90% cost savings for vector storage. But will it kill vectordbs like Milvus? A deep dive into costs, limits, and the future of tiered storage.
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.


