MongoDB и MyScale: выбор подходящей базы данных для приложений GenAI
По мере развития приложений на основе ИИ невозможно переоценить важность возможностей векторного поиска для поддержки этих достижений. В этой статье блога будут рассмотрены две известные базы данных с возможностями векторного поиска: MongoDB и MyScale. Каждая из них предоставляет надежные возможности для работы с векторным поиском — важной функцией для таких приложений, как рекомендательные системы, поиск изображений и семантический поиск. Наша цель — предоставить разработчикам и инженерам понятное сравнение, помогающее решить, какая база данных лучше всего соответствует их конкретным требованиям.
Что такое векторная база данных?
Прежде чем сравнивать MongoDB и MyScale, давайте сначала рассмотрим концепцию векторных баз данных.
Векторная база данных специально предназначена для хранения и запросов к многомерным векторам, которые являются числовыми представлениями неструктурированных данных. Эти векторы кодируют сложную информацию, такую как семантическое значение текста, визуальные признаки изображений или атрибуты продуктов. Обеспечивая эффективные поиски сходства, векторные базы данных играют ключевую роль в приложениях ИИ, позволяя выполнять более продвинутый анализ и извлечение данных.
Распространенные варианты использования векторных баз данных включают рекомендации товаров в электронной коммерции, платформы обнаружения контента, обнаружение аномалий в кибербезопасности, анализ медицинских изображений и задачи обработки естественного языка (NLP). Они также играют важную роль в Retrieval Augmented Generation (RAG) — методе, который повышает производительность больших языковых моделей (LLMs), предоставляя внешние знания для уменьшения таких проблем, как галлюцинации ИИ.
На рынке доступно множество типов векторных баз данных, включая:
- Специализированные векторные базы данных, такие как Milvus, Zilliz Cloud (полностью управляемый Milvus)
- Библиотеки векторного поиска, такие как Faiss и Annoy.
- Легковесные векторные базы данных, такие как Chroma и Milvus Lite.
- Традиционные базы данных с дополнениями для векторного поиска, способные выполнять векторный поиск небольшого масштаба.
MongoDB — это база данных NoSQL с векторным поиском в виде дополнения, а MyScale — это база данных, построенная на ClickHouse, которая сочетает векторный поиск и SQL-аналитику. В этой статье сравниваются их возможности векторного поиска.
MongoDB: основы
MongoDB Atlas Vector Search — это функция, которая позволяет выполнять поиск векторного сходства по данным, хранящимся в MongoDB Atlas. Вы можете индексировать и запрашивать многомерные векторные эмбеддинги вместе с данными документов и выполнять задачи ИИ и машинного обучения прямо в базе данных.
В основе 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. Вы можете хранить векторные эмбеддинги вместе с другими данными документа, чтобы выполнять поиск более контекстно и точно. Вы можете запрашивать любые типы данных, которые могут быть встроены в пространство размерностью до 4096. Atlas Vector Search позволяет сочетать поиск по векторной схожести с традиционной фильтрацией документов. Например, семантический поиск товаров можно отфильтровать по категории, ценовому диапазону или наличию.
Atlas Vector Search также поддерживает гибридный поиск, объединяя векторный поиск с полнотекстовым поиском для получения более детализированных результатов. Это отличается от Atlas Search, который ориентирован на поиск по ключевым словам. Платформа интегрируется с популярными AI-сервисами и инструментами, поэтому вы можете использовать ее с моделями эмбеддингов от таких поставщиков, как OpenAI, VoyageAI, и многих других, перечисленных на Hugging Face. Она также поддерживает open-source-фреймворки, такие как LangChain и LlamaIndex, для создания приложений, использующих большие языковые модели (LLMs).
Для обеспечения масштабируемости и производительности MongoDB Atlas предоставляет Search Nodes, которые обеспечивают выделенную инфраструктуру для рабочих нагрузок Atlas Search и Vector Search. Это позволяет иметь оптимизированные вычислительные ресурсы и независимое масштабирование потребностей поиска, чтобы вы получали лучшую производительность в масштабе.
Благодаря наличию этих возможностей в экосистеме MongoDB, Atlas Vector Search является полноценным решением для разработчиков, создающих приложения на базе AI, рекомендательные системы или расширенные функции поиска. Нет необходимости в отдельной векторной базе данных: вы можете использовать масштабируемость MongoDB и богатый набор функций вместе с векторным поиском.
Что такое MyScale? Основы
MyScale — это облачная база данных, построенная поверх базы данных ClickHouse с открытым исходным кодом и предназначенная для рабочих нагрузок AI и машинного обучения. Она может обрабатывать структурированные и векторные данные, а также аналитику в реальном времени и машинное обучение. MyScale ориентирована на временные ряды, векторный поиск и полнотекстовый поиск, поэтому она хорошо подходит для обработки в реальном времени и аналитических выводов на базе AI. Используя архитектуру ClickHouse, MyScale обеспечивает высокую производительность и масштабируемость для AI.
Одной из ключевых особенностей MyScale является нативная поддержка SQL, которая упрощает запросы на базе AI за счет интеграции векторного поиска, полнотекстового поиска и традиционных SQL-запросов в одной системе. Это снижает потребность в нескольких инструментах и делает ее масштабируемой для AI. MyScale поддерживает и управляет аналитической обработкой как структурированных, так и векторизованных данных на одной платформе, используя архитектуру OLAP-базы данных для работы с векторизованными данными. Разработчики могут взаимодействовать с MyScale с помощью SQL, поэтому она доступна всем программистам, знакомым с реляционными базами данных.
MyScale имеет несколько типов векторных индексов и метрик схожести для поддержки разных сценариев использования. Она поддерживает распространенные метрики расстояния, такие как евклидово расстояние (L2), скалярное произведение (IP) и косинусная схожесть. В базе данных есть несколько алгоритмов индексирования: MSTG (Multi-Scale Tree Graph), ScaNN, IVFFLAT, IVFPQ, IVFSQ и HNSW, каждый со своим набором параметров для настройки. Собственный векторный движок MSTG от MyScale использует NVMe SSD для повышения плотности данных, поэтому он превосходит специализированные векторные базы данных как по производительности, так и по стоимости.
Объединяя функциональность SQL-базы данных, векторной базы данных и движка полнотекстового поиска в одной системе, MyScale снижает затраты на инфраструктуру и обслуживание. Такая унификация позволяет выполнять совместные запросы и аналитику данных и создает единую основу данных для AI-приложений. MyScale также имеет MyScale Telemetry для полной наблюдаемости LLM-систем, чтобы вы могли эффективно мониторить и отлаживать их. По мере усложнения данных MyScale является перспективным решением, которое может работать с новыми модальностями данных и размерами баз данных, сохраняя вычислительную производительность и интеграцию между разными типами данных.
Ключевые различия
Когда речь идет об инструментах векторного поиска, MongoDB Atlas Vector Search и MyScale — два отличных варианта. Давайте сравним их, чтобы вы могли принять обоснованное решение для своего проекта.
Методология поиска
MongoDB Atlas Vector Search использует алгоритм Hierarchical Navigable Small World (HNSW) для индексирования и поиска векторных данных. Он создает многоуровневый граф векторного пространства и позволяет выполнять поиски Approximate Nearest Neighbor (ANN). Он также поддерживает поиски Exact Nearest Neighbors (ENN) для до 10 000 документов.
MyScale имеет несколько типов векторных индексов и метрик сходства. Он поддерживает распространенные метрики расстояния, такие как евклидово расстояние (L2), внутреннее произведение (IP) и косинусное сходство. MyScale имеет несколько алгоритмов индексирования: MSTG (Multi-Scale Tree Graph), ScaNN, IVFFLAT, IVFPQ, IVFSQ и HNSW. Это дает вам больше контроля над производительностью и точностью поиска.
Обработка данных
MongoDB Atlas Vector Search работает с гибкой документной моделью MongoDB. Вы можете хранить векторные эмбеддинги вместе с другими данными документов и выполнять поиск более контекстно и точно. Вы можете запрашивать любые данные, которые могут быть встроены размерностью до 4096, и сочетать поиск по векторному сходству с фильтрацией документов.
MyScale создан для обработки как структурированных, так и векторных данных. Он предназначен для аналитики в реальном времени и рабочих нагрузок машинного обучения, поэтому хорошо подходит для временных рядов, векторного поиска и полнотекстового поиска. Способность MyScale обрабатывать аналитические нагрузки как структурированных, так и векторизованных данных на одной платформе с архитектурой OLAP-базы данных уникальна.
Масштабируемость и производительность
MongoDB Atlas имеет Search Nodes, которые предоставляют выделенную инфраструктуру для рабочих нагрузок Atlas Search и Vector Search. Это означает оптимизированные вычислительные ресурсы и независимое масштабирование поисковых потребностей для лучшей производительности в масштабе.
MyScale построен на ClickHouse, архитектура которого известна своей высокой производительностью и масштабируемостью. Его проприетарный векторный движок MSTG использует NVMe SSD для повышения плотности данных и потенциально превосходит специализированные векторные базы данных как по производительности, так и по стоимости.
Гибкость и кастомизация
MongoDB Atlas Vector Search позволяет выполнять гибридный поиск, сочетая векторный поиск с полнотекстовым поиском для более детализированных результатов. Он также позволяет сочетать поиск по векторному сходству с фильтрацией документов для большей гибкости при построении запросов.
MyScale имеет нативную поддержку SQL, поэтому разработчики могут интегрировать векторный поиск, полнотекстовый поиск и традиционные SQL-запросы в одну систему. Этот SQL-ориентированный подход более знаком и доступен разработчикам с опытом работы с реляционными базами данных.
Интеграция и экосистема
MongoDB Atlas Vector Search интегрируется с популярными AI-сервисами и инструментами, поддерживает embedding-модели от OpenAI и VoyageAI. Работает с open-source фреймворками, такими как LangChain и LlamaIndex, для создания приложений, использующих Large Language Models (LLMs).
Интеграция MyScale явно не упоминается в документации, но его поддержка SQL подразумевает, что он может интегрироваться со многими SQL-совместимыми инструментами и фреймворками.
Простота использования
MongoDB Atlas Vector Search строится поверх существующей экосистемы MongoDB, поэтому если вы уже знакомы с MongoDB, кривая обучения будет более плавной.
SQL в MyScale для запросов к векторным данным может быть более доступен разработчикам с опытом SQL, но разнообразие алгоритмов индексирования и параметров потребует большего обучения и настройки для достижения лучшей производительности.
Стоимость
MongoDB имеет развитую экосистему, много документации, и разработчики знакомы с ним. Если вы уже используете MongoDB, добавление векторного поиска может быть очевидным решением.
Единый подход MyScale может снизить затраты на инфраструктуру и обслуживание за счет наличия нескольких функций в одной системе. Его векторный движок MSTG заявляет, что превосходит специализированные векторные базы данных и является более экономически эффективным.
Когда выбирать каждый из них
MongoDB Atlas Vector Search — лучший выбор, когда вы уже используете MongoDB для своих потребностей в базе данных и хотите добавить векторный поиск без внедрения еще одной системы. Он идеально подходит для приложений, которым нужно бесшовно интегрировать векторный поиск с документными данными, например рекомендательных систем или расширенного поиска товаров. Решение MongoDB отлично подходит, когда вам нужно объединить поиск по векторному сходству с фильтрацией документов, чтобы задавать более контекстные вопросы. Выбирайте MongoDB Atlas Vector Search, когда хотите использовать экосистему MongoDB, включая масштабируемость и интеграцию с популярными AI-инструментами.
MyScale — лучший выбор, когда вам нужна единая платформа, объединяющая SQL-базу данных, векторный поиск и полнотекстовый поиск. Она идеально подходит для приложений, которым нужно обрабатывать как структурированные, так и векторные данные в реальном времени, например AI-аналитику или сложный анализ временных рядов с векторными компонентами. Встроенная поддержка SQL в MyScale делает его отличным вариантом для команд с сильными навыками SQL, которые хотят выполнять векторный поиск с помощью привычного языка запросов. Выбирайте MyScale, когда вам нужна гибкость в алгоритмах векторного индексирования, вы хотите оптимизировать стоимость и производительность в масштабе или вам нужно решение, способное обрабатывать несколько типов данных и поисковых модальностей на одной платформе.
Заключение
MongoDB Atlas Vector Search бесшовно интегрируется с вашим существующим развертыванием MongoDB, обладает мощным векторным поиском и может сочетать векторный поиск с фильтрацией документов. MyScale — это единая платформа для SQL, векторного и полнотекстового поиска с гибким индексированием и встроенной поддержкой SQL для векторных запросов. Ваш выбор между ними будет зависеть от вашей существующей инфраструктуры, вашего сценария использования и вашей команды. Учитывайте такие факторы, как интеграция с документными данными, запросы на основе SQL, типы данных, с которыми вы работаете, и потребности в масштабируемости. Обе системы имеют надежный векторный поиск, но их сильные стороны подходят для разных сценариев и сред разработки.
Прочитайте это, чтобы получить обзор MongoDB и MyScale, но для их оценки вам нужно оценивать их на основе вашего сценария использования. Один инструмент, который может помочь в этом, — 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
Читать далее

Why Context Engineering Is Becoming the Full Stack of AI Agents
Discover how context engineering unifies prompts, RAG, and tools to build smarter, production-ready AI agents powered by Milvus.

Zilliz Cloud Introduces Advanced BYOC-I Solution for Ultimate Enterprise Data Sovereignty
Explore Zilliz Cloud BYOC-I, the solution that balances AI innovation with data control, enabling secure deployments in finance, healthcare, and education sectors.

Vector Databases vs. Key-Value Databases
Use a vector database for AI-powered similarity search; use a key-value database for high-throughput, low-latency simple data lookups.
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.


