SingleStore и TiDB: выбор подходящей векторной базы данных для ваших AI-приложений
Что такое векторная база данных?
Прежде чем сравнить SingleStore и TiDB, давайте сначала рассмотрим концепцию векторных баз данных.
Векторная база данных специально разработана для хранения и запросов к многомерным векторам, которые являются числовыми представлениями неструктурированных данных. Эти векторы кодируют сложную информацию, такую как семантическое значение текста, визуальные признаки изображений или атрибуты продуктов. Обеспечивая эффективный поиск по сходству, векторные базы данных играют ключевую роль в AI-приложениях, позволяя выполнять более продвинутый анализ и извлечение данных.
Распространенные сценарии использования векторных баз данных включают рекомендации товаров в электронной коммерции, платформы обнаружения контента, обнаружение аномалий в кибербезопасности, анализ медицинских изображений и задачи обработки естественного языка (NLP). Они также играют важнейшую роль в Retrieval Augmented Generation (RAG) — методе, который повышает производительность больших языковых моделей (LLMs), предоставляя внешние знания для снижения таких проблем, как AI-галлюцинации.
На рынке доступно множество типов векторных баз данных, включая:
- Специализированные векторные базы данных, такие как Milvus, Zilliz Cloud (полностью управляемый Milvus)
- Библиотеки векторного поиска, такие как Faiss и Annoy.
- Легковесные векторные базы данных, такие как Chroma и Milvus Lite.
- Традиционные базы данных с дополнениями для векторного поиска, способные выполнять векторный поиск в небольшом масштабе.
SingleStore — это распределенная реляционная система управления базами данных SQL, а Rockset — база данных для поиска и аналитики с возможностями векторного поиска в виде дополнения. Обе имеют возможности векторного поиска в виде дополнения. В этой статье сравниваются их возможности векторного поиска.
SingleStore: обзор и базовая технология
SingleStore сделала векторный поиск возможным, встроив его в саму базу данных, поэтому вам не нужны отдельные векторные базы данных в вашем технологическом стеке. Векторы можно хранить в обычных таблицах базы данных и искать с помощью стандартных SQL-запросов. Например, вы можете искать похожие изображения товаров, одновременно фильтруя по диапазону цен, или исследовать эмбеддинги документов, ограничивая результаты конкретными отделами. Система поддерживает как семантический поиск с использованием FLAT, IVF_FLAT, IVF_PQ, IVF_PQFS, HNSW_FLAT и HNSW_PQ для векторного индекса, так и скалярное произведение и евклидово расстояние для сопоставления по сходству. Это чрезвычайно полезно для таких приложений, как рекомендательные системы, распознавание изображений и AI-чат-боты, где сопоставление по сходству должно быть быстрым.
В своей основе SingleStore создана для производительности и масштабирования. База данных распределяет данные по нескольким узлам, поэтому вы можете выполнять операции с векторными данными в большом масштабе. По мере роста ваших данных вы можете просто добавлять больше узлов, и все будет готово к работе. Процессор запросов может объединять векторный поиск с SQL-операциями, поэтому вам не нужно выполнять несколько отдельных запросов. В отличие от баз данных, предназначенных только для векторов, SingleStore предоставляет эти возможности как часть полноценной базы данных, поэтому вы можете создавать AI-функции без управления несколькими системами или работы со сложными передачами данных.
Для векторной индексации SingleStore предлагает два варианта. Первый — точный поиск k ближайших соседей (k-nearest neighbors, kNN), который находит точный набор из k ближайших соседей для вектора запроса. Но для очень больших наборов данных или высокой параллельности SingleStore также поддерживает поиск Approximate Nearest Neighbor (ANN) с использованием векторной индексации. Поиск ANN может находить k близких соседей гораздо быстрее, чем точный поиск kNN, иногда на порядки. Существует компромисс между скоростью и точностью — ANN быстрее, но может не вернуть точный набор из k ближайших соседей. Для приложений с миллиардами векторов, которым нужны интерактивные времена отклика и не требуется абсолютная точность, поиск ANN — оптимальный выбор.
Техническая реализация векторных индексов в SingleStore имеет определенные требования. Эти индексы можно создавать только для таблиц columnstore, и они должны создаваться для одного столбца, в котором хранятся векторные данные. В настоящее время система поддерживает формат Vector Type(dimensions[, F32]), F32 — единственный поддерживаемый тип элемента. Такой структурированный подход делает SingleStore отличным выбором для приложений вроде семантического поиска с использованием векторов из больших языковых моделей, retrieval-augmented generation (RAG) для целевой генерации текста и сопоставления изображений на основе векторных эмбеддингов. Сочетая это с традиционными функциями баз данных, SingleStore позволяет разработчикам создавать сложные AI-приложения с использованием синтаксиса SQL, сохраняя производительность и масштабируемость.
Что такое TiDB? Обзор
TiDB, разработанная PingCAP, — это open-source распределенная SQL-база данных, которая предлагает возможности гибридной транзакционной и аналитической обработки (HTAP). Она совместима с MySQL, что упрощает ее внедрение для команд, уже знакомых с экосистемой MySQL. Распределенная SQL-архитектура TiDB обеспечивает горизонтальную масштабируемость, как у NoSQL-баз данных, при этом сохраняя реляционную модель SQL-баз данных, что делает ее очень гибкой для обработки как транзакционных, так и аналитических нагрузок.
Одно из ключевых преимуществ TiDB — ее HTAP-архитектура, которая позволяет обрабатывать транзакционные (OLTP) и аналитические (OLAP) нагрузки в одной базе данных, снижая необходимость в отдельных системах. Кроме того, совместимость TiDB с MySQL упрощает интеграцию в существующие среды, которые полагаются на MySQL, без существенных изменений в коде приложения. База данных также поддерживает auto-sharding, автоматически распределяя данные по узлам для повышения производительности чтения и записи при сохранении строгой согласованности.
TiDB поддерживает векторный поиск через интеграцию с внешними библиотеками и плагинами, обеспечивая эффективное управление векторизованными данными и их запросы. Эта функция в сочетании с HTAP-архитектурой TiDB делает ее универсальным вариантом для компаний, которым нужны возможности векторного поиска наряду с транзакционными и аналитическими нагрузками. Распределенная архитектура TiDB позволяет ей обрабатывать крупномасштабные векторные запросы после выполнения необходимых настроек.
Хотя включение функций векторного поиска в TiDB требует дополнительной настройки, совместимость системы с SQL позволяет разработчикам объединять векторный поиск с традиционными реляционными запросами. Такая гибкость делает TiDB подходящей для сложных приложений, которым требуются как векторный поиск, так и возможности реляционной базы данных, предлагая комплексное решение для разнообразных потребностей управления данными.
Ключевые различия
Методология поиска
SingleStore имеет встроенный в базу данных векторный поиск как с точным поиском k ближайших соседей (kNN), так и с поиском Approximate Nearest Neighbor (ANN). Вы можете настраивать точность и скорость в зависимости от потребностей вашего приложения. Благодаря встроенной поддержке методов векторной индексации, таких как FLAT, IVF_FLAT и HNSW, SingleStore может выполнять высокопроизводительное сопоставление по сходству внутри самой базы данных, без необходимости в отдельных специализированных системах для векторов.
SingleStore, с другой стороны, интегрирует векторный поиск через внешние библиотеки и плагины. Хотя это дает ему больше гибкости, зависимость от внешних компонентов может добавлять сложность и вариативность производительности. Сильная сторона TiDB — в объединении векторных запросов с его архитектурой гибридной транзакционной и аналитической обработки (HTAP), но это требует дополнительной настройки.
Обработка данных
SingleStore может хранить векторные данные в таблицах columnstore и выполнять SQL-операции вместе с векторными запросами. Это упрощает создание приложений, таких как семантический поиск или рекомендации на базе ИИ. Но он ограничен форматом Vector Type(dimensions[, F32]), что может быть недостаточно гибким для некоторых сценариев использования.
TiDB может обрабатывать различные рабочие нагрузки, структурированные, полуструктурированные и неструктурированные данные. Его совместимость с MySQL упрощает внедрение для команд, уже работающих в этой экосистеме. Для векторных данных TiDB использует внешние инструменты, что дает гибкость, но ценой дополнительной настройки и потенциальных накладных расходов.
Масштабируемость и производительность
SingleStore распределяет векторные и реляционные данные между узлами, обеспечивая простую масштабируемость. По мере роста данных добавление узлов обеспечивает стабильную производительность без изменения архитектуры. Его встроенная ANN-индексация оптимизирует скорость запросов для больших наборов данных, для приложений с миллиардами векторов.
TiDB также имеет горизонтальную масштабируемость благодаря своей распределенной SQL-архитектуре, с автоматическим шардированием и балансировкой нагрузки. Его масштабируемость для реляционных рабочих нагрузок доказана, но производительность векторных запросов зависит от выбранной внешней интеграции, которая может масштабироваться не так плавно.
Гибкость и настройка
SingleStore оптимизирован для векторного поиска на основе SQL, поэтому вы можете использовать знакомый синтаксис для создания своего приложения. Но его структурированный подход к векторной индексации и хранению может ограничивать гибкость по сравнению с системами, созданными только для векторов.
TiDB предлагает больше возможностей настройки, поскольку использует внешние библиотеки для векторного поиска. Вы можете настроить его под свои потребности, поэтому это хороший выбор для сценариев, требующих большей кастомизации сверх возможностей из коробки.
Интеграция и экосистема
SingleStore хорошо интегрируется с AI- и ML-конвейерами, позволяя выполнять SQL-операции над векторными embeddings из моделей вроде OpenAI’s или Hugging Face’s. Это снижает накладные расходы на передачу данных и делает разработку приложений бесшовной.
TiDB обладает сильной совместимостью с MySQL, поэтому его легко интегрировать с существующими инструментами и экосистемой MySQL. Но его векторный поиск зависит от внешних библиотек, что требует дополнительных усилий для интеграции в сквозные рабочие процессы.
Простота использования
SingleStore упрощает разработку благодаря одной системе как для векторных, так и для реляционных операций. Его документация и поддержка распространенных методов индексации делают его удобным для разработчиков, которым нужно универсальное решение.
TiDB, хотя и удобен для разработчиков в реляционных задачах, может иметь более крутую кривую обучения для векторного поиска, поскольку вам нужно дополнительно настраивать внешние инструменты.
Стоимость
SingleStore объединяет управление векторными и реляционными данными в одной системе, что может снизить стоимость поддержки отдельных баз данных. Но затраты на лицензирование и масштабирование следует оценивать исходя из рабочей нагрузки.
TiDB является open-source и имеет ценовое преимущество для базовой установки. Но добавление векторного поиска через внешние библиотеки может повлечь дополнительные операционные расходы и затраты на обслуживание.
Безопасность
SingleStore имеет шифрование, ролевой контроль доступа и защищенные соединения как часть своего enterprise-предложения, поэтому он подходит для чувствительных приложений.
TiDB тоже имеет функции безопасности, шифрование и контроль доступа. Но внешние плагины для векторного поиска требуют дополнительного внимания к соответствию требованиям и безопасности.
Когда выбирать SingleStore
SingleStore отлично подходит для приложений, которым нужна единая система для обработки как векторного поиска, так и реляционных запросов в масштабе. Благодаря встроенному точному kNN и ANN-индексированию, а также возможности сочетать векторный поиск с SQL, он идеально подходит для приложений на базе ИИ, таких как семантический поиск, рекомендательные системы и распознавание изображений. Если вам нужно быстрое сопоставление по сходству, бесшовное масштабирование узлов и меньшая сложность управления отдельными системами, интегрированный подход SingleStore обеспечивает высокую производительность и простоту использования для больших данных.
Когда выбирать TiDB
TiDB отлично подходит для сценариев, где требуется гибридная транзакционная и аналитическая обработка (HTAP), особенно в экосистеме MySQL. Он идеально подходит для приложений, которым нужна транзакционная согласованность с аналитическими нагрузками, например для анализа данных в реальном времени или операционной аналитики. Если ваш сценарий использования включает полнотекстовый поиск или требует пользовательской конфигурации для векторного поиска в качестве дополнительной функции, TiDB позволяет интегрироваться с внешними библиотеками, используя при этом его возможности распределённого SQL и автоматическое шардирование для масштабируемости.
Заключение
SingleStore и TiDB оба отличны: SingleStore хорош для унифицированных векторных и реляционных запросов в масштабе, а TiDB — для HTAP и кастомизации. Ваш выбор зависит от вашего сценария использования: выбирайте SingleStore, если вам нужно универсальное решение для высокопроизводительного векторного поиска, или выбирайте TiDB, если ваши приоритеты — HTAP, совместимость с MySQL и пользовательские интеграции. Сопоставьте технологию с вашими типами данных, требованиями к масштабируемости и потребностями в производительности, и вы получите лучшие результаты.
Прочитайте это, чтобы получить обзор SingleStore и TiDB, но для их оценки необходимо оценивать их на основе вашего сценария использования. Один инструмент, который может в этом помочь, — VectorDBBench, инструмент с открытым исходным кодом для сравнительного тестирования векторных баз данных. В конечном счёте тщательное бенчмаркинг-тестирование на ваших собственных наборах данных и шаблонах запросов будет ключом к принятию решения между этими двумя мощными, но разными подходами к векторному поиску в распределённых системах баз данных.
Использование open-source VectorDBBench для оценки и сравнения векторных баз данных самостоятельно
VectorDBBench — это инструмент с открытым исходным кодом для бенчмаркинга, предназначенный для пользователей, которым нужны высокопроизводительные системы хранения и извлечения данных, особенно векторные базы данных. Этот инструмент позволяет пользователям тестировать и сравнивать различные системы векторных баз данных, такие как Milvus и Zilliz Cloud (управляемый Milvus), используя собственные наборы данных, и находить ту, которая соответствует их сценариям использования. С помощью VectorDBBench пользователи могут принимать решения на основе фактической производительности векторных баз данных, а не маркетинговых заявлений или слухов.
VectorDBBench написан на Python и лицензирован по open-source лицензии MIT, что означает, что любой может свободно использовать, изменять и распространять его. Инструмент активно поддерживается сообществом разработчиков, стремящихся улучшать его функции и производительность.
Скачайте VectorDBBench из его репозитория GitHub, чтобы воспроизвести наши результаты бенчмаркинга или получить результаты производительности на ваших собственных наборах данных.
Быстро ознакомьтесь с производительностью основных векторных баз данных в рейтинге VectorDBBench.
Прочитайте следующие блоги, чтобы узнать больше об оценке векторных баз данных.
Дополнительные ресурсы о VectorDB, GenAI и ML
Читать далее

Vector Lakebase: End the AI Data Silo
Learn how Vector Lakebase unifies vector search, data lakes, and AI data operations so teams can serve RAG and agents without copy-and-sync pipelines.

AI Agents Are Quietly Transforming E-Commerce — Here’s How
Discover how AI agents transform e-commerce with autonomous decision-making, enhanced product discovery, and vector search capabilities for today's retailers.

Vector Databases vs. Time Series Databases
Use a vector database for similarity search and semantic relationships; use a time series database for tracking value changes over time.
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.


