TiDB vs Vald AIアプリケーションに適したベクターデータベースの選択

ベクターデータベースとは?
TiDBとValdを比較する前に、まずベクターデータベースの概念について説明しよう;
ベクトルデータベース](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は伝統的なデータベースにベクトル検索をアドオンしたもので、Valdはベクトルデータベースである。この記事では、両者のベクトル検索機能を比較する。
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はベクトル検索とリレーショナルデータベースの両方の機能を必要とする複雑なアプリケーションに適しており、多様なデータ管理ニーズに対する包括的なソリューションを提供します。
Vald:概要とコアテクノロジー
Vald は膨大なベクトルデータを高速に検索するための強力なツールです。何十億ものベクトルを扱えるように構築されており、ニーズが大きくなるにつれて簡単に拡張することができます。Vald の素晴らしいところは、NGT と呼ばれる超高速アルゴリズムを使って類似ベクトルを見つけることです。
Valdの最も優れた特徴の一つは、インデックスの処理方法です。通常、インデックスを作成する場合、すべてを停止しなければならない。しかし、Valdは賢い。インデックスを異なるマシンに分散させるので、インデックスが更新されている間も検索を続けることができる。さらに、Valdはインデックス・データを自動的にバックアップするので、何か問題が発生してもすべてを失う心配はない。
Valdは様々なセットアップにフィットするのが素晴らしい。データの出入りをカスタマイズできるので、gRPCとの相性も良い。また、クラウド上でスムーズに動作するように構築されているため、必要なときにコンピューティングパワーやメモリを簡単に追加することができる。Valdはデータを複数のマシンに分散させるので、膨大な量の情報を処理するのに役立つ。
Valdが持つもうひとつの巧妙なトリックは、インデックスの複製だ。各インデックスのコピーを異なるマシンに保存する。つまり、1台のマシンに問題が発生しても、検索は問題なく行えるということだ。Valdは自動的にこれらのコピーのバランスをとるので、心配する必要はない。これらのことから、Valdは大量のベクターデータを迅速かつ確実に検索する必要がある開発者にとって、確かな選択肢となる。
主な相違点
検索方法
TiDBは外部ライブラリやプラグインを通じてベクトル検索を統合している。これらの統合により、ハイブリッドトランザクション&アナリティカル(HTAP)モードでのベクトル化データ処理が可能になる。TiDBはSQLに主眼を置いているが、ベクトル検索は外部設定に依存している。ベクトル検索とリレーショナルクエリを組み合わせることができるため、ベクトルの類似性とSQL駆動の分析の両方を必要とするアプリケーションに適しています。
一方、Valdはベクトル検索用に構築されている。高速類似検索のために最適化されたNGT(Neighborhood Graph and Tree)アルゴリズムを使用している。このコア・アルゴリズムは膨大なベクトル・データセットを扱うように設計されており、Valdはベクトル・ヘビー・アプリケーション専用のソリューションとなっている。インデックス作成中に検索を行うことができるため、リアルタイムのアプリケーションで優位性を発揮する。
データ
TiDBの分散SQLアーキテクチャは、構造化データ、半構造化データ、非構造化データを扱うことができます。SQLの互換性により強力な一貫性を確保し、高度なトランザクションワークフローをサポートします。ベクトルデータの場合、TiDBの処理は外部プラグインに依存するため、柔軟性は増しますが、ユースケースによっては複雑になる可能性があります。
Valdは非構造化ベクトルデータ用に設計されている。動的インデックスと分散ストレージをサポートしているので、スケーラブルで冗長性がある。Valdは構造化データやトランザクションデータ用に設計されていないため、TiDBよりも重視されている。
スケーラビリティとパフォーマンス
TiDBは水平方向のスケーラビリティに優れている。その自動シャーディング機能はノード間でデータを分散し、OLTPとOLAPの両方のワークロードで高い読み取りと書き込みのスループットを処理できる。しかし、大規模なベクトルデータに関しては、そのパフォーマンスは統合されたベクトル検索ツールの能力に依存する。
Valdはベクトルデータに対してスケーラブルである。複数のノードにベクトルを分散し、レプリケーションと動的な負荷分散を使用して数十億のベクトルを処理します。Valdのインデックス作成と検索は、データが大きくなっても性能を維持するため、大規模なベクトル検索に適しています。
柔軟性とカスタマイズ
TiDBはデータモデリング、クエリ実行、MySQL互換エコシステムにおいて多くの柔軟性を持っている。ベクトル検索とSQLクエリを組み合わせる機能は、複雑なデータのやり取りを必要とするアプリケーションにとって強力な機能である。しかし、ベクトル検索を有効にするために外部ライブラリが必要なため、すぐに使えるカスタマイズは限られている。
Valdはベクトル特有の操作に対して高度にカスタマイズ可能である。gRPCの統合と複数の入出力パイプラインのサポートにより、開発者はその機能を特定のワークフローに合わせることができる。Valdはリレーショナル・データ用に設計されたものではないが、ベクトルに焦点を当てたアーキテクチャーにより、その領域において比類のない柔軟性を発揮する。
統合とエコシステム
TiDBはMySQLベースのツールやフレームワークとうまく統合できるため、すでにMySQLエコシステムに投資しているチームに適している。TiDBのハイブリッド機能は、トランザクションと分析ワークロードの統合を可能にします。
Valdはクラウドネイティブ環境とうまく統合できるように設計されている。Kubernetes ネイティブ・アーキテクチャにより、コンテナ化されたセットアップへのデプロイと拡張が容易です。Valdのクラウドプロバイダーとの互換性は、AIとMLワークフローのためのエコシステム統合をさらに強化する。
使いやすさ
TiDBはMySQLと互換性があるため、SQLデータベースに慣れ親しんだチームでも簡単に習得できる。TiDBの豊富なドキュメントとコミュニティサポートは、導入の助けになる。しかし、ベクトル検索機能のセットアップには余分な労力がかかる。
Valdのベクトル検索デザインは、類似検索に特化した開発者にとって習得が容易だ。クラウド・ネイティブ・アーキテクチャーと堅牢なバックアップとレプリケーションは、メンテナンスとスケーリングを容易にします。
コスト
TiDBのコストはその複雑さに依存する。SQLベースのオペレーションは効率的だが、ベクトル検索の統合はリソースと管理コストを増加させる。マネージド・サービス・オプションは、運用のオーバーヘッドを削減するのに役立つ。
Valdのコスト効率は、その特殊性から生まれる。ベクトル検索に最適化されているため、リソースは高速なインデックス作成とクエリに向けられる。また、クラウドネイティブのデプロイメントにより、オンデマンドで費用対効果の高いスケーリングが可能です。
セキュリティ
TiDBは、暗号化、認証、アクセス制御を含むエンタープライズグレードのセキュリティ機能を備えています。これらは、高いデータセキュリティを必要とするアプリケーションにとって重要です。
Valdは認証とフォールトトレランスのためのデータレプリケーションを備えている。しかし、そのセキュリティは汎用のデータベース操作ではなく、ベクトル検索アプリケーションに焦点を当てている。
それぞれの使用時期
TiDB
TiDBはハイブリッドデータ管理に最適です。TiDBのHTAPアーキテクチャとSQLサポートは完全なソリューションです。特に、トランザクションと分析ワークロードを共存させる必要がある環境に最適です。
バルド
Vald は、高性能なベクトル検索が主な要件となるシナリオに最適です。推薦システム、画像検索、AI/MLワークフローなど、大規模なデータセットの類似性検索を中心としたアプリケーションであれば、Valdの特化したアーキテクチャと動的なスケーリングが最適な選択となる。さらに、クラウドネイティブなデプロイメントにより、ベクトル負荷の高いワークロードにさらに適しています。
要約
TiDBは、汎用的でハイブリッドなトランザクション処理と分析処理、そしてベクトル検索の統合を得意とする。Valdは、非構造化データ向けに特化し、高速で信頼性の高いベクトル検索を大規模に実行できる。ベクトル検索を備えた汎用データベースが必要なのか、それともスピードとスケーラビリティに最適化されたベクトル検索エンジンが必要なのか。
TiDBとValdの概要についてはこちらをお読みいただきたいが、これらを評価するには、ユースケースに基づいて評価する必要がある。それに役立つツールの一つが、ベクターデータベースを比較するためのオープンソースのベンチマークツールである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)
読み続けて

Top 10 Context Engineering Techniques You Should Know for Production RAG
A practical guide to context engineering for production LLM systems, covering RAG, context processing, memory, agents, and multimodal context.

The Real Bottlenecks in Autonomous Driving — And How AI Infrastructure Can Solve Them
Autonomous driving is data-bound. Vector databases unlock deep insights from massive AV data, slashing costs and accelerating edge-case discovery.

Similarity Metrics for Vector Search
Exploring five similarity metrics for vector search: L2 or Euclidean distance, cosine distance, inner product, and hamming distance.
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.