TiDB против Aerospike: выбор правильной векторной базы данных для ваших AI-приложений
Что такое векторная база данных?
Прежде чем сравнивать TiDB и Aerospike, давайте сначала рассмотрим концепцию векторных баз данных.
Векторная база данных специально разработана для хранения и запросов высокоразмерных векторов, которые являются числовыми представлениями неструктурированных данных. Эти векторы кодируют сложную информацию, такую как семантическое значение текста, визуальные признаки изображений или атрибуты продуктов. Обеспечивая эффективный поиск по сходству, векторные базы данных играют ключевую роль в приложениях ИИ, позволяя выполнять более продвинутый анализ и извлечение данных.
Распространенные варианты использования векторных баз данных включают рекомендации товаров в электронной коммерции, платформы обнаружения контента, обнаружение аномалий в кибербезопасности, анализ медицинских изображений и задачи обработки естественного языка (NLP). Они также играют важную роль в генерации с дополненным извлечением (RAG) — методе, который повышает производительность больших языковых моделей (LLMs), предоставляя внешние знания для снижения таких проблем, как галлюцинации ИИ.
На рынке доступно множество типов векторных баз данных, включая:
- Специализированные векторные базы данных, такие как Milvus, Zilliz Cloud (полностью управляемый Milvus)
- Библиотеки векторного поиска, такие как Faiss и Annoy.
- Легковесные векторные базы данных, такие как Chroma и Milvus Lite.
- Традиционные базы данных с надстройками векторного поиска, способные выполнять векторный поиск небольшого масштаба.
TiDB — это традиционная база данных, а Aerospike также является распределенной, масштабируемой NoSQL-базой данных. Обе имеют векторный поиск в качестве надстройки. В этой статье сравниваются их возможности векторного поиска.
TiDB: обзор и ключевая технология
TiDB, разработанная PingCAP, — это распределенная SQL-база данных с открытым исходным кодом, которая предлагает возможности гибридной транзакционной и аналитической обработки (HTAP). Она совместима с MySQL, что упрощает ее внедрение для команд, уже знакомых с экосистемой MySQL. Распределенная SQL-архитектура TiDB обеспечивает горизонтальную масштабируемость, как у NoSQL-баз данных, сохраняя при этом реляционную модель SQL-баз данных, что делает ее очень гибкой для обработки как транзакционных, так и аналитических нагрузок.
Одной из ключевых сильных сторон TiDB является ее HTAP-архитектура, которая позволяет обрабатывать транзакционные (OLTP) и аналитические (OLAP) нагрузки в одной базе данных, снижая необходимость в отдельных системах. Кроме того, совместимость TiDB с MySQL упрощает интеграцию в существующие среды, которые используют MySQL, без значительных изменений в коде приложения. База данных также поддерживает автоматическое шардирование, автоматически распределяя данные по узлам для повышения производительности чтения и записи при сохранении строгой согласованности.
TiDB поддерживает векторный поиск через интеграцию с внешними библиотеками и плагинами, обеспечивая эффективное управление векторизованными данными и выполнение запросов к ним. Эта функция в сочетании с HTAP-архитектурой TiDB делает ее универсальным вариантом для компаний, которым нужны возможности векторного поиска наряду с транзакционными и аналитическими нагрузками. Распределенная архитектура TiDB позволяет ей обрабатывать крупномасштабные векторные запросы после выполнения необходимых настроек.
Хотя включение функций векторного поиска в TiDB требует дополнительной настройки, SQL-совместимость системы позволяет разработчикам сочетать векторный поиск с традиционными реляционными запросами. Эта гибкость делает TiDB подходящей для сложных приложений, которым требуются как векторный поиск, так и возможности реляционной базы данных, предлагая комплексное решение для разнообразных потребностей управления данными.
Aerospike: обзор и базовая технология
Aerospike — это NoSQL-база данных для высокопроизводительных приложений реального времени. Она добавила поддержку векторной индексации и поиска, поэтому подходит для сценариев использования векторных баз данных. Эта векторная возможность называется Aerospike Vector Search (AVS) и находится в Preview. Вы можете запросить ранний доступ у Aerospike.
AVS поддерживает только индексы Hierarchical Navigable Small World (HNSW) для векторного поиска. Когда в AVS выполняются обновления или вставки, данные записи, включая вектор, записываются в Aerospike Database (ASDB) и сразу становятся видимыми. Для индексации каждая запись должна иметь как минимум один вектор в указанном векторном поле индекса. У одной записи может быть несколько векторов и индексов, поэтому одни и те же данные можно искать разными способами. Aerospike рекомендует назначать записи, добавленные через upsert, определённому набору, чтобы вы могли отслеживать их и выполнять над ними операции.
У AVS уникальный способ построения индекса: он выполняется конкурентно на всех узлах AVS. Хотя обновления векторных записей записываются напрямую в ASDB, индексные записи обрабатываются асинхронно из очереди индексации. Это выполняется пакетами и распределяется по всем узлам AVS, поэтому используются все CPU-ядра в кластере AVS, и процесс масштабируется. Производительность загрузки данных сильно зависит от памяти хоста и конфигурации слоя хранения.
Для каждого элемента в очереди индексации AVS обрабатывает вектор для индексации, строит кластеры для каждого вектора и фиксирует их в ASDB. Индексная запись содержит копию самого вектора и кластеры для этого вектора на заданном уровне графа HNSW. Индексация использует векторные расширения (AVX) для параллельной обработки по принципу single instruction, multiple data.
AVS выполняет запросы во время загрузки данных, чтобы «предварительно гидратировать» кэш индекса, поскольку записи в кластерах взаимосвязаны. Эти запросы не учитываются как поисковые запросы, но отображаются как чтения на уровне хранения. Таким образом, кэш заполняется релевантными данными и может улучшить производительность запросов. Это показывает, как AVS обрабатывает векторные данные и строит индексы для поиска по сходству, чтобы масштабироваться для поиска по высокоразмерным векторам.
Ключевые различия
TiDB поддерживает векторный поиск через внешние интеграции и сохраняет своё ядро как распределённую SQL-базу данных с возможностями HTAP. Она совместима с MySQL и сочетает векторный поиск с традиционными реляционными запросами.
Aerospike использует более специализированный подход с Aerospike Vector Search (AVS), который использует только индексацию HNSW. Он позволяет конкурентно строить индексы на узлах и использует векторные расширения для параллельной обработки.
Методология поиска:
TiDB интегрирует векторный поиск через плагины, SQL- и векторные запросы могут работать вместе. Aerospike использует только индексы HNSW с асинхронными очередями индексации для повышения производительности.
Данные:
TiDB обрабатывает транзакционные и аналитические рабочие нагрузки с автоматическим шардированием. Aerospike обрабатывает векторные данные асинхронно, обеспечивая немедленную видимость обновлений, тогда как индексные записи обрабатываются пакетами.
Масштабируемость:
TiDB автоматически распределяет данные по узлам и поддерживает согласованность. Распределённая индексация Aerospike использует все CPU-ядра в кластере и масштабируется в зависимости от памяти хоста и хранилища.
Интеграция:
TiDB вписывается в MySQL-среды и поддерживает как SQL-, так и векторные операции. AVS от Aerospike больше сосредоточен на векторном поиске, но тесно интегрируется с основной базой данных Aerospike.
Когда выбирать TiDB
TiDB лучше всего подходит для корпоративных приложений, которым нужны как традиционные операции с базами данных, так и векторный поиск, особенно в средах MySQL. Его архитектура HTAP идеально подходит для организаций со смешанными рабочими нагрузками — от обычных транзакций до сложной аналитики — которым нужен векторный поиск. Совместимость с MySQL означает, что существующие команды могут внедрить его с минимальными изменениями в своих приложениях и рабочих процессах.
Когда выбирать Aerospike
Aerospike лучше всего подходит для приложений, где высокопроизводительный векторный поиск является главным приоритетом, особенно в режиме реального времени. Его система AVS с параллельным построением индексов и оптимизацией векторной обработки идеально подходит для приложений, которым нужен быстрый поиск векторного сходства в масштабе, таких как рекомендательные движки, системы распознавания изображений или другие приложения на базе ИИ, которые ставят скорость поиска выше традиционных операций с базами данных.
Заключение
TiDB и Aerospike предназначены для разных сценариев использования в области векторного поиска. TiDB — это полноценная база данных с векторными возможностями, идеально подходящая для компаний, которым нужны как традиционные операции с базами данных, так и векторный поиск. Aerospike — это высокопроизводительный векторный поиск с оптимизированной индексацией, идеально подходящий для специализированных приложений векторного поиска. Выбирайте то, что вам нужно: полнофункциональную базу данных с векторным поиском (TiDB) или специализированное решение для векторного поиска (Aerospike).
Прочитайте это, чтобы получить обзор TiDB и Aerospike, но для их оценки вам нужно исходить из вашего сценария использования. Один из инструментов, который может в этом помочь, — VectorDBBench, инструмент сравнительного тестирования с открытым исходным кодом для сравнения векторных баз данных. В конечном счете тщательное бенчмаркинг-тестирование на ваших собственных наборах данных и шаблонах запросов будет ключевым фактором при принятии решения между этими двумя мощными, но разными подходами к векторному поиску в распределенных системах баз данных.
Использование open-source VectorDBBench для самостоятельной оценки и сравнения векторных баз данных
VectorDBBench — это инструмент сравнительного тестирования с открытым исходным кодом для пользователей, которым нужны высокопроизводительные системы хранения и извлечения данных, особенно векторные базы данных. Этот инструмент позволяет пользователям тестировать и сравнивать различные системы векторных баз данных, такие как Milvus и Zilliz Cloud (управляемый Milvus), используя свои собственные наборы данных, и находить ту, которая подходит для их сценариев использования. С VectorDBBench пользователи могут принимать решения на основе фактической производительности векторных баз данных, а не маркетинговых заявлений или слухов.
VectorDBBench написан на Python и распространяется по open-source лицензии MIT, что означает, что любой может свободно использовать, изменять и распространять его. Инструмент активно поддерживается сообществом разработчиков, стремящихся улучшать его функции и производительность.
Скачайте VectorDBBench из его репозитория GitHub, чтобы воспроизвести наши результаты бенчмарков или получить результаты производительности на своих собственных наборах данных.
Быстро ознакомьтесь с производительностью основных векторных баз данных в рейтинге VectorDBBench.
Прочитайте следующие блоги, чтобы узнать больше об оценке векторных баз данных.
Дополнительные ресурсы о VectorDB, GenAI и ML
Читать далее

Smarter Autoscaling in Zilliz Cloud: Always Optimized for Every Workload
With the latest upgrade, Zilliz Cloud introduces smarter autoscaling—a fully automated, more streamlined, elastic resource management system.

Why AI Databases Don't Need SQL
Whether you like it or not, here's the truth: SQL is destined for decline in the era of AI.

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.


