TiDB vs ClickHouse AIアプリに適したベクターデータベースの選択

ベクターデータベースとは?
TiDBとClickHouseを比較する前に、まずベクターデータベースの概念について調べてみましょう。 ;
ベクトルデータベース](https://zilliz.com/learn/what-is-vector-database)は、特に高次元のベクトルを格納し、クエリするように設計されています。ベクトルは非構造化データの数値表現です。これらのベクトルは、テキストの意味、画像の視覚的特徴、または製品の属性などの複雑な情報をエンコードします。効率的な類似検索を可能にすることで、ベクトルデータベースはAIアプリケーションにおいて極めて重要な役割を果たし、より高度なデータ分析と検索を可能にしている。
ベクトルデータベースの一般的なユースケースには、電子商取引の商品推奨、コンテンツ発見プラットフォーム、サイバーセキュリティにおける異常検知、医療画像分析、自然言語処理(NLP)タスクなどがある。また、AI幻覚のような問題を軽減するために、外部知識を提供することによって大規模言語モデル(LLM)の性能を向上させる技術であるRAG(Retrieval Augmented Generation) において重要な役割を果たす。
市場には、以下のような多くの種類のベクトル・データベースがある:
- Milvus](https://zilliz.com/what-is-milvus)、Zilliz Cloud(フルマネージドMilvus)など。
- Faiss](https://zilliz.com/learn/faiss)やAnnoyのようなベクトル検索ライブラリ。
- Chroma](https://zilliz.com/blog/milvus-vs-chroma)やMilvus Liteのような軽量ベクトルデータベース。
- 小規模なベクトル検索が可能なベクトル検索アドオンを備えた従来のデータベース**。
TiDBは伝統的なデータベースであり、ClickHouseはオープンソースの列指向データベースである。どちらもアドオンとしてベクトル検索を備えている。この記事では、両者のベクトル検索機能を比較する。
TiDB: 概要とコアテクノロジー
PingCAP社によって開発されたTiDBは、オープンソースの分散型SQLデータベースであり、ハイブリッドトランザクションと分析処理(HTAP)機能を提供する。MySQLと互換性があるため、MySQLのエコシステムに慣れ親しんでいるチームにとっては導入が容易です。TiDBの分散SQLアーキテクチャは、SQLデータベースのリレーショナルモデルを維持しながら、NoSQLデータベースのような水平スケーラビリティを提供し、トランザクションと分析の両方のワークロードを処理するための高い柔軟性を実現しています。
TiDBの中核的な強みの1つはHTAPアーキテクチャで、トランザクション(OLTP)と分析(OLAP)のワークロードを単一のデータベースで処理できるため、別々のシステムを用意する必要がありません。さらに、TiDBはMySQLと互換性があるため、アプリケーションコードを大幅に変更することなく、MySQLに依存している既存の環境に簡単に統合することができます。また、このデータベースは自動シャーディング機能を備えており、ノード間でデータを自動的に分散することで、強力な一貫性を維持しながら読み取りと書き込みのパフォーマンスを向上させます。
TiDBは外部ライブラリやプラグインとの統合によりベクトル検索をサポートし、ベクトル化されたデータの効率的な管理とクエリを可能にします。この機能とTiDBのHTAPアーキテクチャを組み合わせることで、トランザクションや分析ワークロードに加えてベクトル検索機能を必要とするビジネスにとって、TiDBは汎用性の高い選択肢となります。TiDBの分散アーキテクチャにより、必要な構成が整えば、大規模なベクタークエリを処理することができます。
TiDBにベクトル検索機能を組み込むには追加の設定が必要ですが、TiDBはSQLと互換性があるため、開発者はベクトル検索と従来のリレーショナルクエリを組み合わせることができます。この柔軟性により、TiDBはベクトル検索とリレーショナルデータベースの両方の機能を必要とする複雑なアプリケーションに適しており、多様なデータ管理ニーズに対する包括的なソリューションを提供します。
クリックハウス概要とコアテクノロジー
ClickHouseはオープンソースのリアルタイムOLAPデータベースで、SQLのフルサポートと高速クエリ処理で知られています。完全に並列化されたクエリーパイプラインにより、分析クエリーの処理に秀でており、ベクトル検索操作を素早く実行することができます。コーデックによってカスタマイズ可能な高レベルの圧縮により、ClickHouseは大規模なデータセットの保存とクエリを効率的に行うことができます。ClickHouseの大きな強みは、メモリに制約されることなく複数TBのデータセットを扱えることで、大規模なベクトルデータを扱うユーザーにとって強力なツールとなる。また、メタデータに対するフィルタリングと集約をサポートしており、開発者はベクターと関連するメタデータの両方に対して複雑なクエリを実行することができます。
ClickHouseは、SQL機能を通じてベクトル検索機能を統合しており、ベクトル距離演算は他のSQL関数と同様に扱われます。これにより、従来のフィルタリングや集計とシームレスに組み合わせることができるため、ベクトルデータをメタデータやその他の情報と一緒に照会する必要がある場合に最適です。さらに、近似最近傍(ANN)インデックスのような実験的な機能は、近似的ではありますが、より高速なマッチング機能を提供します。ClickHouseは、並列処理により高速性と効率性を保証し、行のリニアスキャンによる厳密なマッチングもサポートしています。
ClickHouseは、ベクトルマッチングとメタデータのフィルタリングや集約を組み合わせることが重要な場合に、ベクトル検索の優れた選択肢となります。複数のCPUコアで並列処理する必要がある非常に大きなベクトルデータセットに特に有効です。ClickHouseは、SQLサポートが必要で、ベクターデータセットが大きすぎてメモリのみのインデックスに頼ることができない場合にも有利です。さらに、ClickHouseにすでに関連データがある場合や、何百万ものベクトルを管理するための別のツールの習得を避けたい場合、ClickHouseは時間とリソースの両方を節約することができます。ClickHouseの強みは、高速で並列化された完全一致と大規模なデータセットの処理にあり、高度な検索を必要とするユーザーに適しています。
ClickHouseは、特に並列処理を必要とする大規模なデータセットを扱う場合や、ベクトル検索とSQLベースのフィルタリングや集計を組み合わせる場合に、ベクトル検索の汎用性の高いプラットフォームとして際立ちます。専用ベクターデータベースほど、小規模でメモリバウンドデータセットや高QPSシナリオに特化していないかもしれないが、メタデータを含む複雑なクエリーを処理できるため、高速なベクター検索機能を必要とするSQLに精通した開発者にとって強力な選択肢となる。
主な相違点
検索アーキテクチャ** ;
TiDBはHTAPの機能を維持したまま、外部プラグインを通じてベクトル検索を処理します。MySQLと互換性のある構文で、ベクトルとリレーショナルを組み合わせたクエリを実行できます。
ClickHouseはSQLフレームワーク内で直接ベクトル検索を実装し、ベクトル操作を標準SQL関数のように扱います。完全に並列化されたクエリーパイプラインを使用し、リニアスキャンによる完全一致と ANN インデックスによる近似一致の両方をサポートします。
データ管理 ;
TiDBはハイブリッドなワークロードを得意とし、自動シャーディングによってトランザクションデータと分析データの両方を管理します。TiDBは、強力な一貫性を維持しながら、ノード間でデータを自動的に分散します。
ClickHouseは、高い圧縮率を持つ分析ワークロードに重点を置いています。メモリ制約なしに複数TBのベクトルデータセットを処理でき、ベクトルとメタデータの両方で効率的なフィルタリングと集計が可能です。
パフォーマンスとスケーラビリティ ;
TiDBは分散アーキテクチャにより水平方向に拡張できますが、ベクトル検索の性能は外部ライブラリの構成に依存します。
ClickHouseはCPUコア間の並列処理によって高いパフォーマンスを実現している。特にメタデータフィルタリングと組み合わせることで、大規模なベクトルクエリを効率的に処理します。
Integration
TiDBはMySQLとの互換性があり、既存のMySQL環境に適しています。ベクトル検索には、追加のセットアップと外部ライブラリが必要です。
ClickHouseは、ベクトル操作のネイティブSQLサポートを提供し、ベクトル検索と従来のSQLクエリのシームレスな統合を可能にします。
TiDBを使うとき
TiDBは、MySQL互換環境でトランザクション処理と分析処理の両方が必要な場合に最適な選択肢です。分散アーキテクチャと自動シャーディング機能により、強力な一貫性を必要とする大規模アプリケーション、特にMySQLエコシステムに投資済みのアプリケーションに最適です。TiDBは、ベクトル検索が従来のデータベース操作を含むより広範なデータ戦略の一部である場合に最適です。
ClickHouse を使用する場合
ClickHouseは、高速な分析処理を必要とする膨大なベクトルデータセットを持つ組織に最適です。ネイティブのベクトル検索機能と並列処理、SQLの統合により、ベクトル操作とメタデータフィルタリングの両方を含む複雑なクエリを実行する必要のあるデータサイエンティストやエンジニアに最適です。特に、メモリの最適化とクエリのパフォーマンスが最優先される場合に威力を発揮します。
要約
TiDBとClickHouseは異なるユースケースに対応する。TiDBはMySQLとの互換性を保ちながらトランザクションと分析のハイブリッド処理を行い、ClickHouseは高速な分析処理とネイティブのベクトル検索を行う。ニーズに合わせてお選びください:TiDBは分散SQLにベクトル検索をアドオンとして、ClickHouseは分析処理に特化しベクトル検索をビルトインしています。既存のインフラストラクチャ、データサイズ、クエリーパターン、パフォーマンス要件を考慮してお選びください。
TiDBとClickHouseの概要についてはこちらをお読みいただきたいが、これらを評価するには、ユースケースに基づいて評価する必要がある。それに役立つツールの一つが、ベクターデータベースの比較のためのオープンソースのベンチマークツールであるVectorDBBenchだ。最終的には、独自のデータセットとクエリパターンで徹底的なベンチマークを行うことが、分散データベースシステムにおけるベクトル検索に対する、強力だが異なるこの2つのアプローチのどちらを選ぶかを決める鍵となるだろう。
オープンソースのVectorDBBenchを使ってベクトルデータベースを評価・比較する
VectorDBBenchは、高性能なデータ保存・検索システム、特にベクトルデータベースを必要とするユーザーのためのオープンソースのベンチマークツールです。このツールにより、ユーザはMilvusやZilliz Cloud(マネージドMilvus)のような異なるベクトルデータベースシステムを独自のデータセットを使ってテストし比較し、自分のユースケースに合うものを見つけることができます。VectorDBBenchを使えば、ユーザーはマーケティング上の主張や伝聞ではなく、実際のベクターデータベースのパフォーマンスに基づいて決定を下すことができます。
VectorDBBenchはPythonで書かれており、MITオープンソースライセンスの下でライセンスされています。VectorDBBenchは、その機能と性能の改善に取り組む開発者のコミュニティによって活発にメンテナンスされています。
VectorDBBenchをGitHubリポジトリ**からダウンロードして、我々のベンチマーク結果を再現したり、あなた自身のデータセットでパフォーマンス結果を得てください。
VectorDBBench Leaderboard](https://zilliz.com/vector-database-benchmark-tool?database=ZillizCloud%2CMilvus%2CElasticCloud%2CPgVector%2CPinecone%2CQdrantCloud%2CWeaviateCloud&dataset=medium&filter=none%2Clow%2Chigh&tab=1)で、主流のベクトルデータベースのパフォーマンスを簡単に見てみましょう。
ベクターデータベースの評価については、以下のブログをお読みください。
- ベンチマーク・ベクター・データベースのパフォーマンス:テクニックと洞察](https://zilliz.com/learn/benchmark-vector-database-performance-techniques-and-insights)
- VectorDBBench: Open-Source Vector Database Benchmark Tool](https://zilliz.com/learn/open-source-vector-database-benchmarking-your-way)
- ベクターデータベースを他のデータベースと比較する](https://zilliz.com/comparison)
VectorDB、GenAI、MLに関するその他のリソース
- ジェネレーティブAIリソースハブ|Zilliz](https://zilliz.com/learn/generative-ai)
- あなたのGenAIアプリのためのトップパフォーマンスAIモデル|Zilliz](https://zilliz.com/ai-models)
- RAGとは](https://zilliz.com/learn/Retrieval-Augmented-Generation)
- 大規模言語モデル(LLM)を学ぶ](https://zilliz.com/learn/ChatGPT-Vector-Database-Prompt-as-code)
- ベクトルデータベース101](https://zilliz.com/learn/what-is-vector-database)
- 自然言語処理(NLP)](https://zilliz.com/learn/introduction-to-natural-language-processing-tokens-ngrams-bag-of-words-models)
読み続けて

Zero-Downtime Migration Now Available in Zilliz Cloud Private Preview
Zero-Downtime Migration enables seamless cluster-to-cluster migrations within Zilliz Cloud while maintaining full service availability.

Multimodal Pipelines for AI Applications
Learn how to build scalable multimodal AI pipelines using Datavolo and Milvus. Discover best practices for handling unstructured data and implementing RAG systems.

How to Calculate the Total Cost of Your RAG-Based Solutions
In this guide, we’ll break down the main components of RAG costs, show you how to calculate these expenses using the Zilliz RAG Cost Calculator, and explore strategies to manage spending efficiently.
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.