SingleStore против Aerospike: выбор подходящей векторной базы данных для ваших AI-приложений
Что такое векторная база данных?
Прежде чем сравнивать SingleStore и Aerospike, давайте сначала рассмотрим концепцию векторных баз данных.
Векторная база данных специально разработана для хранения и выполнения запросов к многомерным векторам, которые являются числовыми представлениями неструктурированных данных. Эти векторы кодируют сложную информацию, такую как семантическое значение текста, визуальные признаки изображений или атрибуты продуктов. Обеспечивая эффективный поиск по сходству, векторные базы данных играют ключевую роль в AI-приложениях, позволяя выполнять более продвинутый анализ и извлечение данных.
Распространенные сценарии использования векторных баз данных включают рекомендации продуктов в электронной коммерции, платформы обнаружения контента, обнаружение аномалий в кибербезопасности, анализ медицинских изображений и задачи обработки естественного языка (NLP). Они также играют важную роль в Retrieval Augmented Generation (RAG) — методе, который повышает производительность больших языковых моделей (LLMs), предоставляя внешние знания для уменьшения проблем, таких как AI-галлюцинации.
На рынке доступно множество типов векторных баз данных, включая:
- Специализированные векторные базы данных, такие как Milvus, Zilliz Cloud (полностью управляемый Milvus)
- Библиотеки векторного поиска, такие как Faiss и Annoy.
- Легковесные векторные базы данных, такие как Chroma и Milvus Lite.
- Традиционные базы данных с расширениями векторного поиска, способные выполнять векторный поиск в небольших масштабах.
SingleStore — это распределенная реляционная система управления базами данных SQL, а Aerospike — также распределенная масштабируемая база данных NoSQL. Обе имеют векторный поиск в качестве расширения. В этой статье сравниваются их возможности векторного поиска.
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) для сфокусированной генерации текста и сопоставления изображений на основе векторных embeddings. Сочетая это с традиционными функциями базы данных, SingleStore позволяет разработчикам создавать сложные AI-приложения с использованием синтаксиса SQL, сохраняя производительность и масштабируемость.
Aerospike: обзор и базовая технология
Aerospike — это NoSQL-база данных для высокопроизводительных приложений реального времени. В нее была добавлена поддержка векторного индексирования и поиска, поэтому она подходит для сценариев использования векторных баз данных. Векторная возможность называется Aerospike Vector Search (AVS) и находится в Preview. Вы можете запросить ранний доступ у Aerospike.
AVS поддерживает только индексы Hierarchical Navigable Small World (HNSW) для векторного поиска. Когда в AVS выполняются обновления или вставки, данные записи, включая вектор, записываются в Aerospike Database (ASDB) и сразу становятся видимыми. Для индексирования каждая запись должна иметь как минимум один вектор в указанном векторном поле индекса. Можно иметь несколько векторов и индексов для одной записи, поэтому одни и те же данные можно искать разными способами. Aerospike рекомендует назначать upserted-записи определенному set, чтобы вы могли их отслеживать и выполнять с ними операции.
У AVS есть уникальный способ построения индекса: он выполняется конкурентно на всех узлах AVS. В то время как обновления векторных записей записываются напрямую в ASDB, записи индекса обрабатываются асинхронно из очереди индексирования. Это выполняется пакетами и распределяется по всем узлам AVS, поэтому используются все CPU cores в кластере AVS, и процесс масштабируется. Производительность ingestion сильно зависит от памяти хоста и конфигурации storage layer.
Для каждого элемента в очереди индексирования AVS обрабатывает вектор для индексирования, строит кластеры для каждого вектора и фиксирует их в ASDB. Запись индекса содержит копию самого вектора и кластеры для этого вектора на заданном уровне графа HNSW. Индексирование использует vector extensions (AVX) для параллельной обработки single instruction, multiple data.
Во время ingestion AVS выполняет запросы для “pre-hydrate” кэша индекса, потому что записи в кластерах взаимосвязаны. Эти запросы не считаются query requests, но отображаются как чтения на уровне storage layer. Таким образом, кэш заполняется релевантными данными и может улучшить производительность запросов. Это показывает, как AVS обрабатывает векторные данные и строит индексы для similarity search, чтобы масштабироваться для поиска по многомерным векторам.
Ключевые различия
Методология поиска
SingleStore предлагает несколько вариантов векторных индексов: FLAT, IVF_FLAT, IVF_PQ, IVF_PQFS, HNSW_FLAT, HNSW_PQ. Это дает вам варианты для разных сценариев использования — от точных совпадений до приближенного поиска ближайших соседей. Aerospike Vector Search (AVS) поддерживает только индексы HNSW. HNSW хорошо подходит для многих случаев, но более широкий набор вариантов индексирования в SingleStore дает вам больше контроля над компромиссом между скоростью и точностью в ваших поисковых запросах.
Данные и интеграция
SingleStore имеет векторный поиск, встроенный в свою SQL-базу данных. Вы можете комбинировать векторный поиск со стандартными SQL-запросами, чтобы фильтровать результаты по обычным полям данных, таким как цены или категории. Одна база данных покрывает как ваши векторные, так и традиционные потребности в данных. Aerospike использует NoSQL-подход, ориентированный на высокопроизводительные приложения реального времени. Его возможность векторного поиска (AVS) более новая и в настоящее время находится в Preview, требует раннего доступа от Aerospike.
Масштабируемость и производительность
Обе базы данных масштабируются по-разному. SingleStore имеет распределенную архитектуру, в которой вы можете добавлять узлы по мере роста ваших данных. Его обработчик запросов объединяет векторные и SQL-операции в одном запросе. AVS от Aerospike выполняет построение индексов параллельно на всех узлах, использует векторные расширения для параллельной обработки. Он также предварительно прогревает кэш индекса, чтобы повысить производительность запросов. Производительность загрузки данных сильно зависит от памяти хоста и конфигурации хранилища.
Гибкость реализации
SingleStore требует, чтобы векторные индексы создавались на columnstore-таблицах и отдельных столбцах, хранящих векторные данные, и в настоящее время поддерживает только тип элементов F32. Aerospike позволяет иметь несколько векторов и индексов для отдельных записей, что дает вам больше гибкости в том, как вы ищете по своим данным. Но Aerospike рекомендует конкретные практики, например назначать upserted-записи определенным sets для мониторинга.
Простота использования и интеграции
SingleStore может быть более привлекательным для команд, знакомых с SQL, поскольку он использует стандартный синтаксис SQL как для векторных, так и для традиционных запросов. Это может снизить порог входа для разработчиков, хорошо владеющих SQL. NoSQL-подход Aerospike может потребовать большего обучения для команд, привыкших к традиционным SQL-базам данных, но может быть плюсом для команд, уже работающих с NoSQL-системами.
Когда использовать
SingleStore подходит для приложений, которым нужны как традиционные операции с базой данных, так и векторный поиск в одной системе. Он идеально подходит для проектов, где структурированные данные соседствуют с векторами, например для e-commerce-платформ, которым нужен поиск похожих товаров с фильтрацией по цене, или систем рекомендаций контента, которые объединяют пользовательские предпочтения с метаданными контента. Вы можете использовать привычный синтаксис SQL для векторных операций, поэтому это отличный выбор для команд с экспертизой в SQL, которые хотят добавить AI-функции без управления отдельными векторными базами данных.
Aerospike лучше всего подходит для высокопроизводительных приложений реального времени, где важна скорость. Его параллельное построение индексов и предварительно прогретый кэш делают его отличным вариантом для сценариев вроде рекомендательных движков реального времени или live-поиска похожих изображений. Наличие нескольких векторов на запись полезно для приложений, которым нужны разные векторные представления одних и тех же данных, например для мультимодальных AI-систем, обрабатывающих и текст, и изображения, или систем, которые используют разные embedding-модели для одного и того же контента.
Заключение
Выбор между SingleStore и Aerospike зависит от ваших потребностей. SingleStore отлично подходит для объединения традиционных операций с базой данных и векторного поиска, имеет несколько типов индексов и интеграцию с SQL. Aerospike предназначен для высокопроизводительных операций реального времени благодаря своей реализации HNSW и параллельной обработке. Ваше решение должно основываться на вашем существующем технологическом стеке, экспертизе команды (SQL vs NoSQL), требованиях реального времени и том, нужны ли вам комбинированные запросы с традиционными типами данных. Также имейте в виду, что векторный поиск Aerospike более новый и находится в preview, тогда как SingleStore предлагает более зрелое решение для векторного поиска.
Прочитайте это, чтобы получить общее представление о SingleStore и Aerospike, но для их оценки вам нужно оценивать их с учетом вашего сценария использования. Один инструмент, который может в этом помочь, — VectorDBBench, open-source инструмент для бенчмаркинга и сравнения векторных баз данных. В конечном итоге тщательное бенчмаркинг-тестирование на ваших собственных наборах данных и шаблонах запросов будет ключевым для принятия решения между этими двумя мощными, но разными подходами к векторному поиску в распределенных системах баз данных.
Использование open-source VectorDBBench для самостоятельной оценки и сравнения векторных баз данных
VectorDBBench — это open-source инструмент для бенчмаркинга для пользователей, которым нужны высокопроизводительные системы хранения и извлечения данных, особенно векторные базы данных. Этот инструмент позволяет пользователям тестировать и сравнивать различные системы векторных баз данных, такие как Milvus и Zilliz Cloud (управляемый Milvus), используя собственные наборы данных, и находить ту, которая подходит для их сценариев использования. С VectorDBBench пользователи могут принимать решения на основе фактической производительности векторных баз данных, а не маркетинговых заявлений или слухов.
VectorDBBench написан на Python и распространяется по open-source лицензии MIT, что означает, что любой может свободно использовать, изменять и распространять его. Инструмент активно поддерживается сообществом разработчиков, стремящихся улучшать его функции и производительность.
Скачайте VectorDBBench из его репозитория GitHub, чтобы воспроизвести наши результаты бенчмаркинга или получить результаты производительности на ваших собственных наборах данных.
Быстро ознакомьтесь с производительностью популярных векторных баз данных на VectorDBBench Leaderboard.
Прочитайте следующие блоги, чтобы узнать больше об оценке векторных баз данных.
Дополнительные ресурсы о VectorDB, GenAI и ML
Читать далее

Migrating Self-Managed Milvus to Zilliz Cloud for >99% Latency Reduction
Step-by-step guide to migrating 50M vectors from self-managed Milvus to Zilliz Cloud using milvus-backup. Achieve >99% query latency reduction with zero data loss.

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.

Announcing the General Availability of Zilliz Cloud BYOC on Google Cloud Platform
Zilliz Cloud BYOC on GCP offers enterprise vector search with full data sovereignty and seamless integration.
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.


