SingleStore и MongoDB: выбор правильной векторной базы данных для ваших AI-приложений
Что такое векторная база данных?
Прежде чем сравнивать SingleStore и MongoDB, давайте сначала рассмотрим концепцию векторных баз данных.
Векторная база данных специально предназначена для хранения и выполнения запросов к многомерным векторам, которые представляют собой числовые представления неструктурированных данных. Эти векторы кодируют сложную информацию, такую как семантическое значение текста, визуальные признаки изображений или атрибуты продуктов. Обеспечивая эффективный поиск по сходству, векторные базы данных играют ключевую роль в AI-приложениях, позволяя выполнять более продвинутый анализ и извлечение данных.
Распространенные сценарии использования векторных баз данных включают рекомендации товаров в электронной коммерции, платформы обнаружения контента, обнаружение аномалий в кибербезопасности, анализ медицинских изображений и задачи обработки естественного языка (NLP). Они также играют важную роль в Retrieval Augmented Generation (RAG) — методе, который повышает производительность больших языковых моделей (LLMs), предоставляя внешние знания для снижения таких проблем, как AI-галлюцинации.
На рынке доступно множество типов векторных баз данных, включая:
- Специализированные векторные базы данных, такие как Milvus, Zilliz Cloud (полностью управляемый Milvus)
- Библиотеки векторного поиска, такие как Faiss и Annoy.
- Легковесные векторные базы данных, такие как Chroma и Milvus Lite.
- Традиционные базы данных с расширениями для векторного поиска, способные выполнять векторный поиск небольшого масштаба.
SingleStore — это распределенная реляционная SQL-система управления базами данных, а MongoDB — это NoSQL-база данных, которая хранит данные в JSON-подобных документах. Обе поддерживают векторный поиск в виде расширения. В этой статье сравниваются их возможности векторного поиска.
SingleStore: обзор и базовая технология
SingleStore сделала векторный поиск возможным, встроив его в саму базу данных, поэтому вам не нужны отдельные векторные базы данных в вашем технологическом стеке. Векторы можно хранить в обычных таблицах базы данных и искать с помощью стандартных SQL-запросов. Например, вы можете искать похожие изображения товаров, одновременно фильтруя по ценовому диапазону, или исследовать эмбеддинги документов, ограничивая результаты конкретными отделами. Система поддерживает как семантический поиск с использованием FLAT, IVF_FLAT, IVF_PQ, IVF_PQFS, HNSW_FLAT и HNSW_PQ для векторного индекса, так и скалярное произведение и евклидово расстояние для сопоставления по сходству. Это очень полезно для приложений вроде рекомендательных систем, распознавания изображений и AI-чатботов, где сопоставление по сходству должно быть быстрым.
В своей основе SingleStore создана для производительности и масштабирования. База данных распределяет данные по нескольким узлам, чтобы вы могли выполнять крупномасштабные операции с векторными данными. По мере роста ваших данных вы можете просто добавлять новые узлы, и все будет работать. Процессор запросов может объединять векторный поиск с SQL-операциями, поэтому вам не нужно выполнять несколько отдельных запросов. В отличие от баз данных, предназначенных только для векторов, SingleStore предоставляет эти возможности как часть полноценной базы данных, чтобы вы могли создавать AI-функции без управления несколькими системами и без сложной передачи данных.
Для векторного индексирования SingleStore предлагает два варианта. Первый — точный поиск k-ближайших соседей (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) для сфокусированной генерации текста и сопоставления изображений на основе векторных embeddings. Сочетая это с традиционными функциями базы данных, SingleStore позволяет разработчикам создавать сложные AI-приложения с использованием синтаксиса SQL, сохраняя производительность и масштабируемость.
MongoDB: обзор и базовая технология
MongoDB Atlas Vector Search — это функция, которая позволяет выполнять поиск по векторному сходству для данных, хранящихся в MongoDB Atlas. Вы можете индексировать и запрашивать многомерные векторные embeddings вместе с данными документов и выполнять задачи AI и машинного обучения прямо в базе данных.
В основе Atlas Vector Search лежит алгоритм Hierarchical Navigable Small World (HNSW) для индексирования и поиска векторных данных. Он создает многоуровневый граф векторного пространства, чтобы можно было выполнять поиски Approximate Nearest Neighbor (ANN). Это баланс скорости и точности для крупномасштабного векторного поиска. Atlas Vector Search также поддерживает поиски Exact Nearest Neighbors (ENN), которые отдают приоритет точности над производительностью для запросов объемом до 10 000 документов.
Одно из больших преимуществ Atlas Vector Search — его интеграция с гибкой документной моделью MongoDB. Вы можете хранить векторные embeddings вместе с другими данными документов, чтобы выполнять поиск более контекстно и точно. Можно запрашивать любые данные, которые можно представить в виде embeddings размерностью до 4096. Atlas Vector Search позволяет сочетать поиски по векторному сходству с традиционной фильтрацией документов. Например, семантический поиск товаров можно отфильтровать по категории, диапазону цен или наличию.
Atlas Vector Search также поддерживает гибридный поиск, объединяя векторный поиск с полнотекстовым поиском для получения более детализированных результатов. Это отличается от Atlas Search, который ориентирован на поиск по ключевым словам. Платформа интегрируется с популярными AI-сервисами и инструментами, поэтому вы можете использовать ее с embedding-моделями от провайдеров вроде OpenAI, VoyageAI и многих других, перечисленных на Hugging Face. Она также поддерживает open-source фреймворки, такие как LangChain и LlamaIndex, для создания приложений, использующих Large Language Models (LLMs).
Чтобы обеспечить масштабируемость и производительность, MongoDB Atlas предоставляет Search Nodes, которые обеспечивают выделенную инфраструктуру для рабочих нагрузок Atlas Search и Vector Search. Это позволяет иметь оптимизированные вычислительные ресурсы и независимое масштабирование поисковых потребностей, чтобы вы получали лучшую производительность в масштабе.
Благодаря наличию этих возможностей в экосистеме MongoDB, Atlas Vector Search является полноценным решением для разработчиков, создающих AI-приложения, рекомендательные системы или расширенные функции поиска. Нет необходимости в отдельной векторной базе данных — вы можете использовать масштабируемость и богатые возможности MongoDB вместе с векторным поиском.
Ключевые различия
Методология и алгоритмы поиска
SingleStore имеет несколько вариантов векторного поиска для разных сценариев использования. Для точных результатов в нем есть точный поиск k-ближайших соседей (kNN). Для скорости в ущерб точности в SingleStore есть поиск Approximate Nearest Neighbor (ANN) с несколькими типами индексов: FLAT, IVF_FLAT, IVF_PQ, IVF_PQFS, HNSW_FLAT и HNSW_PQ. Он поддерживает как скалярное произведение, так и евклидово расстояние для сопоставления по сходству, поэтому у разработчиков есть гибкость в том, как измерять сходство векторов.
MongoDB Atlas Vector Search использует более сфокусированный подход и применяет HNSW (Hierarchical Navigable Small World) в качестве основного метода поиска. Для небольших наборов данных до 10 000 документов MongoDB имеет поиск Exact Nearest Neighbors (ENN). Для более крупного масштаба он переключается на поиск ANN, чтобы поддерживать производительность. Это упрощает выбор для разработчиков, при этом сохраняя возможности поиска.
Обработка и структура данных
SingleStore использует структурированный подход на основе таблиц columnstore. Векторные данные должны быть в формате: Vector Type(dimensions[, F32]). Такой структурированный подход позволяет SingleStore эффективно сочетать традиционный SQL с векторными операциями. Он хорошо подходит для приложений с четкой схемой данных, где SQL-операции являются основным требованием.
MongoDB использует более гибкий подход со своим документно-ориентированным хранилищем. Он поддерживает векторы размерностью до 4096, и вы можете смешивать векторные данные с любой структурой документа. Такая гибкость делает MongoDB хорошим выбором для приложений с полуструктурированными и неструктурированными данными, где схема может меняться со временем.
Масштабируемость и производительность
SingleStore масштабируется за счет распределения данных по нескольким узлам. По мере роста ваших данных вы можете добавлять больше узлов для поддержания производительности. Он объединяет векторный поиск с SQL в одном запросе, уменьшая сложность и повышая производительность. Такая архитектура делает SingleStore хорошим выбором для высокопроизводительных векторных операций в традиционной базе данных.
MongoDB масштабируется с помощью выделенных Search Nodes для рабочих нагрузок векторного поиска. Такое отделение поисковой инфраструктуры от основных операций базы данных позволяет независимо масштабировать поиск. Он оптимизирован для документно-ориентированных операций со встроенным векторным поиском, поэтому хорошо подходит для приложений, которым нужно сбалансировать традиционное хранение документов с возможностями векторного поиска.
Интеграция и экосистема
Сильная сторона SingleStore — в его подходе на основе SQL. Он бесшовно работает с существующими SQL-инструментами и рабочими процессами, поэтому это отличный выбор для организаций с уже имеющейся экспертизой и инфраструктурой SQL. Приложения, которым требуется тесная интеграция с SQL, могут использовать векторные возможности SingleStore без значительных архитектурных изменений.
MongoDB имеет широкую интеграцию с популярными AI-сервисами, такими как OpenAI и VoyageAI. Он поддерживает современные AI-фреймворки, такие как LangChain и LlamaIndex, и работает с различными моделями эмбеддингов. Он также имеет встроенную поддержку гибридного поиска, объединяющего векторный и полнотекстовый поиск. Эта богатая экосистема делает MongoDB хорошим выбором для приложений на основе AI.
Когда выбирать SingleStore
SingleStore предназначен для компаний, которые используют SQL и которым нужно обрабатывать структурированные данные в масштабе. Он идеально подходит для корпоративных приложений, где важно точное сопоставление векторов, например для платформ финансового анализа, рекомендательных систем в реальном времени или крупных систем поиска похожих изображений, которым нужны точные результаты. Он подходит, когда вам нужно объединить традиционные операции базы данных с векторным поиском, а ваша команда обладает экспертизой в SQL и ваша инфраструктура построена вокруг реляционных баз данных.
Когда выбирать MongoDB
MongoDB — очевидный выбор, когда вашему приложению нужны гибкие структуры данных и бесшовная интеграция с современными AI-сервисами. Он отлично подходит для таких приложений, как системы рекомендаций контента, семантический поиск документов или чат-боты на базе AI, которым нужно сочетать векторный поиск с неструктурированными данными. Это вариант для случаев, когда вам нужно быстро прототипировать и итеративно развивать реализацию векторного поиска, нужен гибридный поиск или вы планируете интегрироваться со множеством AI-сервисов и моделей эмбеддингов.
Заключение
И SingleStore, и MongoDB отлично подходят для векторного поиска, но обслуживают разные потребности в ландшафте современных приложений. Сильная сторона SingleStore — подход SQL first, точные векторные операции и работа со структурированными данными в масштабе, поэтому он отлично подходит для корпоративных сред, где много специалистов по SQL. Гибкость MongoDB, интеграция с AI-сервисами и документно-ориентированный подход делают его идеальным для современных приложений, которым нужно сочетать векторный поиск с несколькими типами данных и возможностями AI. Ваш выбор должен основываться на вашем сценарии использования, существующем технологическом стеке, экспертизе команды и на том, нужны ли вам точные операции на базе SQL или гибкость и простота интеграции с AI.
Прочтите это, чтобы получить обзор SingleStore и MongoDB, но для их оценки нужно исходить из вашего сценария использования. Один из инструментов, который может в этом помочь, — VectorDBBench, open-source инструмент бенчмаркинга для сравнения векторных баз данных. В конечном счете тщательное бенчмаркирование на ваших собственных наборах данных и шаблонах запросов будет ключевым для принятия решения между этими двумя мощными, но разными подходами к векторному поиску в распределенных системах баз данных.
Использование open-source VectorDBBench для оценки и сравнения векторных баз данных самостоятельно
VectorDBBench — это open-source инструмент бенчмаркинга для пользователей, которым нужны высокопроизводительные системы хранения и извлечения данных, особенно векторные базы данных. Этот инструмент позволяет пользователям тестировать и сравнивать разные системы векторных баз данных, такие как Milvus и Zilliz Cloud (управляемый Milvus), используя собственные наборы данных, и находить ту, которая соответствует их сценариям использования. С VectorDBBench пользователи могут принимать решения на основе фактической производительности векторной базы данных, а не маркетинговых заявлений или слухов.
VectorDBBench написан на Python и распространяется под open-source лицензией MIT, что означает, что любой может свободно использовать, модифицировать и распространять его. Инструмент активно поддерживается сообществом разработчиков, стремящихся улучшать его функции и производительность.
Скачайте VectorDBBench из его репозитория GitHub, чтобы воспроизвести наши результаты бенчмарков или получить результаты производительности на собственных наборах данных.
Быстро ознакомьтесь с производительностью популярных векторных баз данных в рейтинге VectorDBBench.
Прочтите следующие блоги, чтобы узнать больше об оценке векторных баз данных.
Дополнительные ресурсы о VectorDB, GenAI и ML
Читать далее

Announcing the General Availability of Single Sign-On (SSO) on Zilliz Cloud
SSO is GA on Zilliz Cloud, delivering the enterprise-grade identity management capabilities your teams need to deploy vectorDB with confidence.

Creating Collections in Zilliz Cloud Just Got Way Easier
We've enhanced the entire collection creation experience to bring advanced capabilities directly into the interface, making it faster and easier to build production-ready schemas without switching tools.

Vector Databases vs. Object-Relational Databases
Use a vector database for AI-powered similarity search; use an object-relational database for complex data modeling with both relational integrity and object-oriented features.
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.


