SingleStore vs Milvus: выбор подходящей векторной базы данных для ваших AI-приложений
Что такое векторная база данных?
Прежде чем сравнить SingleStore и Milvus, давайте сначала рассмотрим концепцию векторных баз данных.
Векторная база данных специально предназначена для хранения и выполнения запросов к многомерным векторам, которые являются числовыми представлениями неструктурированных данных. Эти векторы кодируют сложную информацию, такую как семантическое значение текста, визуальные признаки изображений или атрибуты продуктов. Обеспечивая эффективный поиск по сходству, векторные базы данных играют ключевую роль в приложениях ИИ, позволяя выполнять более продвинутый анализ и извлечение данных.
Распространенные варианты использования векторных баз данных включают рекомендации товаров в электронной коммерции, платформы обнаружения контента, обнаружение аномалий в кибербезопасности, анализ медицинских изображений и задачи обработки естественного языка (NLP). Они также играют важную роль в Retrieval Augmented Generation (RAG) — технике, которая повышает производительность больших языковых моделей (LLMs), предоставляя внешние знания для снижения таких проблем, как галлюцинации ИИ.
На рынке доступно множество типов векторных баз данных, включая:
- Специализированные векторные базы данных, такие как Milvus, Zilliz Cloud (полностью управляемый Milvus)
- Библиотеки векторного поиска, такие как Faiss и Annoy.
- Легковесные векторные базы данных, такие как Chroma и Milvus Lite.
- Традиционные базы данных с надстройками для векторного поиска, способные выполнять векторный поиск малого масштаба.
SingleStore — это распределенная реляционная система управления базами данных SQL с векторным поиском в качестве надстройки. Faiss — это легковесные библиотеки с открытым исходным кодом, созданные для эффективного векторного поиска. В этой статье сравниваются их возможности векторного поиска.
SingleStore: обзор и базовая технология
SingleStore сделала векторный поиск возможным, встроив его непосредственно в саму базу данных, поэтому вам не нужны отдельные векторные базы данных в вашем технологическом стеке. Векторы можно хранить в обычных таблицах базы данных и искать с помощью стандартных SQL-запросов. Например, вы можете искать похожие изображения товаров, одновременно фильтруя по ценовому диапазону, или исследовать эмбеддинги документов, ограничивая результаты конкретными отделами. Система поддерживает как семантический поиск с использованием FLAT, IVF_FLAT, IVF_PQ, IVF_PQFS, HNSW_FLAT и HNSW_PQ для векторного индекса, так и скалярное произведение и евклидово расстояние для сопоставления по сходству. Это особенно полезно для таких приложений, как рекомендательные системы, распознавание изображений и чат-боты ИИ, где сопоставление по сходству выполняется быстро.
В своей основе SingleStore создана для производительности и масштабирования. База данных распределяет данные по нескольким узлам, поэтому вы можете обрабатывать крупномасштабные операции с векторными данными. По мере роста данных вы можете просто добавлять больше узлов, и все будет готово к работе. Процессор запросов может объединять векторный поиск с SQL-операциями, поэтому вам не нужно выполнять несколько отдельных запросов. В отличие от баз данных, предназначенных только для векторов, SingleStore предоставляет эти возможности как часть полноценной базы данных, поэтому вы можете создавать функции ИИ без управления несколькими системами или выполнения сложных передач данных.
Для векторной индексации 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) для сфокусированной генерации текста и сопоставление изображений на основе векторных эмбеддингов. Объединяя это с традиционными функциями баз данных, SingleStore позволяет разработчикам создавать сложные AI-приложения с использованием синтаксиса SQL, сохраняя производительность и масштабируемость.
Обзор векторной базы данных Milvus
Milvus — это векторная база данных с открытым исходным кодом, изначально разработанная вокруг векторного поиска и поиска по сходству. Она обладает высокой производительностью и горизонтальной масштабируемостью до миллиардного масштаба и может эффективно работать в широком диапазоне сред — от ноутбуков до крупномасштабных распределенных систем. Milvus доступна как в виде программного обеспечения с открытым исходным кодом, так и в виде облачного сервиса (Zilliz Cloud).
Milvus поддерживает как минимум 11 методов индексации, включая HNSW (Hierarchical Navigable Small World), IVF (Inverted File), DiskANN, и CAGRA, что позволяет ей быстро выполнять поиск по большим объемам данных. В отличие от Cassandra, Milvus не является базой данных общего назначения, а представляет собой специализированный инструмент для неструктурированных данных и поиска по векторному сходству, что делает ее более специализированным решением.
Milvus является частью LF AI & Data Foundation и распространяется по лицензии Apache 2.0. Многие участники проекта являются экспертами в области высокопроизводительных вычислений (HPC) и имеют опыт создания и оптимизации крупномасштабных систем. Среди ключевых участников — специалисты из таких компаний, как Zilliz, ARM, NVIDIA, AMD, Intel, Meta, IBM, Salesforce и Microsoft.
Milvus предлагает три варианта развертывания: Milvus Lite, Standalone, and Distributed.
- Milvus Lite — это библиотека Python и ультралегкая версия Milvus. Она идеально подходит для быстрого прототипирования в Python или средах notebook, а также для небольших локальных экспериментов.
- Milvus Standalone — это вариант одноузлового развертывания Milvus, использующий модель клиент-сервер. Его можно рассматривать как аналог MySQL для Milvus, тогда как Milvus Lite похож на SQLite.
- Milvus Distributed — это распределенный режим Milvus, идеально подходящий для корпоративных пользователей, создающих крупномасштабные системы векторных баз данных или платформы векторных данных.
Ключевые различия
Методология поиска
SingleStore: Предлагает как точный поиск k-ближайших соседей (kNN), так и поиск приближенных ближайших соседей (ANN). В то время как точный kNN обеспечивает более высокую точность, ANN предоставляет более быстрые запросы для больших наборов данных, жертвуя некоторой точностью ради скорости. Поддержка SingleStore нескольких методов ANN (например, IVF_FLAT, IVF_PQ, HNSW_PQ) делает его универсальным для гибридных рабочих нагрузок, сочетающих традиционные SQL-запросы с векторным поиском.
Milvus: Специализируется на поиске векторного сходства с широкой поддержкой более чем 11 методов индексирования, включая HNSW, IVF, DiskANN и CAGRA. Эти индексы оптимизированы для производительности и гибкости, позволяя Milvus обрабатывать разнообразные сценарии векторного поиска в масштабе. Его варианты индексирования делают его лучшим выбором для задач чистого векторного поиска, требующих высокой настраиваемости. Milvus также поддерживает kNN, ANN, Range Search, Full-text search и Hybrid Search для более разнообразного набора поисковых запросов, что помогает находить наиболее релевантные результаты.
Обработка данных
SingleStore: Интегрирует векторные данные в реляционную базу данных общего назначения, храня векторы в columnstore-таблицах наряду со структурированными и полуструктурированными данными. Такая конфигурация обеспечивает бесшовную фильтрацию и агрегацию с помощью стандартных SQL-запросов, что делает ее идеальной для приложений, сочетающих структурированные метаданные с неструктурированными векторными данными.
Milvus: Сосредоточен исключительно на неструктурированных данных, что делает его специально предназначенным для таких сценариев использования, как распознавание изображений, поиск документов и рекомендательные системы. Если вы работаете с наборами данных, которые в основном представляют собой векторы без сильной зависимости от структурированных данных, Milvus предоставляет более специализированное решение.
Масштабируемость и производительность
SingleStore: Масштабируется горизонтально, распределяя данные между несколькими узлами. По мере роста ваших данных добавление узлов не представляет сложности, а его процессор SQL-запросов эффективно объединяет векторный поиск со стандартными операциями базы данных. Однако его векторные возможности являются частью более широкой системы баз данных, что может приводить к накладным расходам для чисто векторных рабочих нагрузок.
Milvus: Спроектирован для векторного поиска в масштабе миллиардов с горизонтальной масштабируемостью как ключевой функцией. Его распределенный режим обеспечивает высокую производительность для крупномасштабных развертываний. Архитектура Milvus оптимизирована для сценариев, где векторный поиск является основной рабочей нагрузкой, обеспечивая меньшую задержку и лучшую эффективность для таких случаев использования.
Гибкость и настройка
SingleStore: Обеспечивает гибкость в сочетании векторного поиска с SQL-операциями. Однако векторное индексирование ограничено конкретными конфигурациями (например, тип элементов F32, одноколоночные векторы в columnstore-таблицах). Такой структурированный подход подходит для приложений, которым требуется тесная интеграция с традиционными функциями баз данных.
Milvus: Предлагает широкие возможности настройки индексирования, параметров поиска и режимов развертывания. Благодаря таким вариантам, как Milvus Lite для встраиваемых сред, Milvus Standalone для локальных экспериментов и Distributed Milvus для крупномасштабных сред, он подходит для широкого спектра рабочих процессов.
Интеграция и экосистема
SingleStore: Отличается интеграцией со стандартными инструментами и рабочими процессами на основе SQL, позволяя разработчикам использовать знакомые технологии без крутой кривой обучения. Его совместимость с инструментами ИИ и аналитики повышает его полезность в гибридных приложениях.
Milvus: Сосредоточен на интеграциях с экосистемами ИИ и машинного обучения. Он поддерживает модели эмбеддингов и хорошо работает в конвейерах генерации с дополнением извлечением (RAG) и приложениях, требующих обработки плотных векторов. Его открытый исходный код также позволяет разработчикам расширять и адаптировать его под конкретные потребности.
Простота использования
SingleStore: Сочетает простоту SQL с векторными возможностями, делая его доступным для разработчиков, знакомых с реляционными базами данных. Однако структурированный подход к работе с векторами может потребовать корректировок для рабочих нагрузок с большим объемом неструктурированных данных.
Milvus: Спроектирован для векторного поиска с нуля и предлагает более специализированный опыт. Хотя его распределенный режим может добавлять сложности, standalone- и lite-версии упрощают эксперименты и развертывания меньшего масштаба.
Соображения по стоимости
SingleStore: Интегрируя векторный поиск в полноценную базу данных, SingleStore снижает необходимость в нескольких системах, потенциально уменьшая операционные расходы. Однако его ценообразование как базы данных общего назначения может включать функции, которые вам не нужны для нагрузок, специфичных для векторов.
Milvus: Open-source Milvus предоставляет экономичную точку входа с гибкостью масштабирования до управляемых сервисов, таких как Zilliz Cloud. Его фокус на векторном поиске гарантирует, что вы платите только за нужные вам функции.
Функции безопасности
SingleStore: Предлагает надежные функции безопасности корпоративного уровня, включая шифрование, аутентификацию и контроль доступа. Его комплексная функциональность базы данных делает его сильным выбором для приложений, требующих строгого соответствия требованиям.
Milvus: Хотя функции безопасности доступны, конкретика зависит от модели развертывания (например, standalone или cloud). Для корпоративных сценариев использования Zilliz Cloud предоставляет расширенные возможности безопасности.
Заключение
Выбирайте один из них в зависимости от вашего сценария использования и экосистемы:
SingleStore — если вам нужно гибридное решение, которое сочетает обработку структурированных данных с векторным поиском. Хорошо подходит для e-commerce или корпоративной аналитики, где SQL- и векторные запросы должны сосуществовать.
Milvus — если вам нужна векторная база данных, оптимизированная для крупномасштабных неструктурированных данных и AI-нагрузок. Хорошо подходит для проектов, которые сильно полагаются на поиск по сходству, таких как рекомендательные системы или системы retrieval-augmented generation.
Milvus — для векторно-ориентированных, удобных для разработчиков и масштабируемых решений. SingleStore — для структурированных данных и векторов в одной системе.
Прочитайте это, чтобы получить обзор SingleStore и Milvus, но для их оценки необходимо оценивать их на основе вашего сценария использования. Один инструмент, который может в этом помочь, — VectorDBBench, open-source инструмент бенчмаркинга для сравнения векторных баз данных. В конечном счете тщательный бенчмаркинг с вашими собственными наборами данных и шаблонами запросов будет ключом к принятию решения между этими двумя мощными, но разными подходами к векторному поиску в распределенных системах баз данных.
Использование open-source VectorDBBench для оценки и сравнения векторных баз данных самостоятельно
VectorDBBench — это open-source инструмент бенчмаркинга для пользователей, которым нужны высокопроизводительные системы хранения и извлечения данных, особенно векторные базы данных. Этот инструмент позволяет пользователям тестировать и сравнивать различные системы векторных баз данных, такие как Milvus и Zilliz Cloud (управляемый Milvus), используя собственные наборы данных, и находить ту, которая подходит для их сценариев использования. С VectorDBBench пользователи могут принимать решения на основе фактической производительности векторной базы данных, а не маркетинговых заявлений или слухов.
VectorDBBench написан на Python и распространяется под open-source лицензией MIT, что означает, что любой может свободно использовать, изменять и распространять его. Инструмент активно поддерживается сообществом разработчиков, стремящихся улучшать его функции и производительность.
Загрузите VectorDBBench из его GitHub repository, чтобы воспроизвести наши результаты бенчмарков или получить результаты производительности на собственных наборах данных.
Быстро ознакомьтесь с производительностью основных векторных баз данных в VectorDBBench Leaderboard.
Прочитайте следующие блоги, чтобы узнать больше об оценке векторных баз данных.
Дополнительные ресурсы о VectorDB, GenAI и ML
Читать далее

What Is a Vector Lakebase?
A Vector Lakebase is a unified, lake-native data architecture for AI that combines vector-database-grade serving with open lake storage, reusable lake-level indexes, and a shared semantic layer.

Why Teams Are Migrating from Weaviate to Zilliz Cloud — and How to Do It Seamlessly
Explore how Milvus scales for large datasets and complex queries with advanced features, and discover how to migrate from Weaviate to Zilliz Cloud.

Vector Databases vs. Graph Databases
Use a vector database for AI-powered similarity search; use a graph database for complex relationship-based queries and network analysis.
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.


