OpenSearch против ClickHouse: выбор правильной базы данных для приложений GenAI
По мере развития приложений на базе ИИ важность возможностей векторного поиска для поддержки этих достижений трудно переоценить. В этой статье блога будут рассмотрены две известные базы данных с возможностями векторного поиска: OpenSearch vs ClickHouse. Каждая из них предоставляет надежные возможности для обработки векторного поиска — важной функции для таких приложений, как рекомендательные системы, поиск изображений и семантический поиск. Наша цель — предоставить разработчикам и инженерам понятное сравнение, помогающее решить, какая база данных лучше всего соответствует их конкретным требованиям.
Что такое векторная база данных?
Прежде чем сравнивать OpenSearch и ClickHouse, давайте сначала рассмотрим концепцию векторных баз данных.
Векторная база данных специально разработана для хранения и выполнения запросов к многомерным векторам, которые представляют собой числовые представления неструктурированных данных. Эти векторы кодируют сложную информацию, такую как семантическое значение текста, визуальные характеристики изображений или атрибуты продуктов. Обеспечивая эффективный поиск по сходству, векторные базы данных играют ключевую роль в приложениях ИИ, позволяя выполнять более продвинутый анализ и поиск данных.
Распространенные варианты использования векторных баз данных включают рекомендации товаров в электронной коммерции, платформы обнаружения контента, обнаружение аномалий в кибербезопасности, анализ медицинских изображений и задачи обработки естественного языка (NLP). Они также играют важную роль в Retrieval Augmented Generation (RAG) — методе, который повышает производительность больших языковых моделей (LLMs), предоставляя внешние знания для уменьшения таких проблем, как галлюцинации ИИ.
На рынке доступно множество типов векторных баз данных, включая:
- Специализированные векторные базы данных, такие как Milvus, Zilliz Cloud (полностью управляемый Milvus)
- Библиотеки векторного поиска, такие как Faiss и Annoy.
- Легковесные векторные базы данных, такие как Chroma и Milvus Lite.
- Традиционные базы данных с дополнениями для векторного поиска, способные выполнять векторный поиск небольшого масштаба.
И OpenSearch, и ClickHouse — это традиционные базы данных, которые развились и включили возможности векторного поиска в качестве дополнения.
Что такое OpenSearch? Обзор
OpenSearch — это надежный поисково-аналитический комплекс с открытым исходным кодом, который управляет разнообразными типами данных: структурированными, полуструктурированными и неструктурированными. Запущенный в 2021 году как управляемый сообществом форк Elasticsearch и Kibana, этот комплекс OpenSearch включает хранилище данных и поисковый движок OpenSearch, OpenSearch Dashboards для расширенной визуализации данных и Data Prepper для эффективного сбора данных на стороне сервера.
Построенный на прочной основе Apache Lucene, OpenSearch обеспечивает высокомасштабируемый и эффективный полнотекстовый поиск (поиск по ключевым словам), что делает его идеальным для обработки больших наборов данных. В последних выпусках OpenSearch значительно расширил свои поисковые возможности, включив векторный поиск через дополнительные плагины, что крайне важно для создания приложений на основе ИИ. OpenSearch теперь поддерживает широкий набор методов поиска на базе машинного обучения, включая традиционный лексический поиск, k-ближайших соседей (k-NN), семантический поиск, мультимодальный поиск, нейронный разреженный поиск и гибридные модели поиска. Эти улучшения интегрируют нейронные модели непосредственно в поисковую среду, позволяя генерировать эмбеддинги и выполнять поиск на лету в момент загрузки данных. Такая интеграция не только оптимизирует процессы, но и заметно повышает релевантность и эффективность поиска.
Недавние обновления еще больше расширили функциональность OpenSearch, представив такие возможности, как оптимизированный для диска векторный поиск, бинарное квантование и байтовое кодирование векторов в поисках k-NN. Эти дополнения, наряду с улучшениями в обработке задач машинного обучения и производительности поисковых запросов, вновь подтверждают статус OpenSearch как передового инструмента для разработчиков и предприятий, стремящихся максимально использовать свои данные. Поддерживаемый динамичным и совместно работающим сообществом, OpenSearch продолжает развиваться, предлагая комплексную, масштабируемую и адаптируемую платформу поиска и аналитики, которая выделяется как один из лучших вариантов для разработчиков, нуждающихся в расширенных поисковых возможностях в своих приложениях.
Что такое ClickHouse? Обзор
ClickHouse — это OLAP-база данных с открытым исходным кодом для аналитики в реальном времени с полной поддержкой SQL и быстрой обработкой запросов. Она отлично подходит для аналитических запросов благодаря полностью параллелизированному конвейеру выполнения запросов и может быстро выполнять векторный поиск. Она обладает высокой степенью сжатия (настраиваемой с помощью кодеков), поэтому может хранить и запрашивать большие наборы данных. Одно из ее главных преимуществ заключается в том, что она может обрабатывать наборы данных объемом в несколько ТБ, не будучи ограниченной памятью, поэтому это отличный инструмент для пользователей с большими векторными данными. Также поддерживает фильтрацию и агрегацию по метаданным, так что вы можете запрашивать векторы и их метаданные.
ClickHouse имеет функциональность векторного поиска через SQL, где операции векторного расстояния являются такими же, как и любые другие SQL-функции. Поэтому вы можете сочетать ее с традиционной фильтрацией и агрегацией. Отлично подходит для сценариев, где нужно запрашивать векторные данные вместе с метаданными или другой информацией. Также имеет экспериментальные индексы Approximate Nearest Neighbour (ANN) для более быстрого (но приблизительного) сопоставления. А также точное сопоставление посредством линейного сканирования строк с параллельной обработкой для скорости и эффективности.
ClickHouse отлично подходит для векторного поиска, когда нужно сочетать векторное сопоставление с фильтрацией или агрегацией метаданных. Особенно для очень больших наборов векторных данных, которые необходимо обрабатывать параллельно на нескольких ядрах CPU. ClickHouse также хорош, когда вам нужна поддержка SQL, а ваш набор векторных данных слишком велик, чтобы поместиться в индексах, работающих только в памяти. Также, если у вас уже есть связанные данные в ClickHouse или вы не хотите изучать еще один инструмент для управления миллионами векторов, ClickHouse может сэкономить вам время и ресурсы. Быстрое параллелизированное точное сопоставление и обработка больших наборов данных — это то, в чем ClickHouse силен, поэтому он предназначен для опытных пользователей поиска.
ClickHouse — это универсальная платформа для векторного поиска, особенно для больших наборов данных, требующих параллельной обработки, и когда вы сочетаете векторный поиск с фильтрацией и агрегацией на основе SQL. Не так хороша, как специализированные векторные базы данных, для небольших наборов данных, ограниченных памятью, или сценариев с высоким QPS, но может обрабатывать сложные запросы, включая метаданные, поэтому отлично подходит для разработчиков, которые знают SQL и нуждаются в быстром векторном поиске.
Сравнение OpenSearch и ClickHouse: ключевые различия для GenAI
Методология поиска
OpenSearch: Основанный на Apache Lucene, OpenSearch значительно продвинул свои поисковые возможности и теперь включает векторный поиск с поддержкой различных методов на базе машинного обучения, таких как k-ближайших соседей (k-NN), семантический поиск и гибридные модели поиска. Эти функции позволяют напрямую интегрировать нейронные модели для динамической генерации эмбеддингов, повышая как эффективность, так и релевантность поисковых операций.
ClickHouse: ClickHouse интегрировал возможности векторного поиска в свой SQL-движок, поддерживая операции вычисления векторного расстояния как SQL-функции. Это позволяет эффективно запрашивать векторные данные наряду с традиционными SQL-запросами, включая фильтрацию по метаданным и агрегацию. ClickHouse также предлагает возможности приближенного и точного сопоставления для векторных данных, оптимизированные за счет параллельной обработки для эффективной работы с большими наборами данных.
Обработка данных
OpenSearch: Управляет широким спектром типов данных, включая структурированные, полуструктурированные и неструктурированные данные. Недавние обновления с дисково-оптимизированным векторным поиском и улучшениями в кодировании байтовых векторов усилили его способность обрабатывать большие и сложные наборы данных, особенно в приложениях на базе ИИ.
ClickHouse: В первую очередь оптимизированный для OLAP с колоночной моделью данных, ClickHouse теперь также эффективно обрабатывает большие векторные наборы данных, поддерживая высокое сжатие и параллелизованную обработку данных. Он хорошо справляется с управлением большими объемами данных, не будучи ограниченным памятью, что делает его подходящим для масштабных аналитических запросов.
Масштабируемость и производительность
OpenSearch: Высоко масштабируемый, использует свою базу Lucene для выполнения эффективного полнотекстового и векторного поиска по большим наборам данных. Платформа спроектирована для горизонтального масштабирования, что повышает ее способность беспрепятственно справляться с ростом объема данных.
ClickHouse: Известный своей способностью быстро обрабатывать запросы благодаря полностью параллелизованному конвейеру выполнения запросов, ClickHouse превосходно масштабируется, особенно для аналитики в реальном времени на многотерабайтных наборах данных. Его архитектура позволяет выполнять быстрые запросы по большим и сложным наборам данных.
Гибкость и настройка
OpenSearch: Предоставляет широкую гибкость в моделировании данных и выполнении запросов, поддерживаемую богатым набором API и плагинов. Недавние улучшения поисковых возможностей обеспечивают высокую степень настройки, удовлетворяя разнообразные и развивающиеся потребности приложений.
ClickHouse: Хотя ClickHouse предлагает надежную поддержку SQL и возможности настройки через SQL-функции для векторного поиска, его гибкость больше сосредоточена на аналитических возможностях, чем на текстовом поиске. Его SQL-ориентированный подход предоставляет знакомые инструменты для тех, кто обладает опытом работы с SQL, позволяя выполнять сложные запросы в сочетании с векторными операциями.
Интеграция и экосистема
OpenSearch: Поддерживает сильную экосистему интеграций, совместимую с различными инструментами сбора, обработки и визуализации данных. Эта экосистема поддерживается динамичным и совместным сообществом, которое способствует его непрерывному развитию.
ClickHouse: Также обладает значительными возможностями интеграции, особенно с инструментами, поддерживающими аналитику и хранилища данных. Его способность обрабатывать SQL-запросы позволяет легко интегрироваться с существующими SQL-системами и рабочими процессами.
Простота использования
OpenSearch: Несмотря на свои сложные возможности, OpenSearch сохраняет управляемую кривую обучения, поддерживаемую comprehensive документацией и отзывчивым сообществом, что упрощает настройку и обслуживание.
ClickHouse: ClickHouse требует знакомства с продвинутым SQL и оптимизацией баз данных, что потенциально создает более крутую кривую обучения. Однако его подробная документация и активное сообщество предоставляют ценную поддержку новым пользователям.
Соображения стоимости
OpenSearch: Будучи решением с открытым исходным кодом, OpenSearch может быть экономически эффективным при самостоятельном управлении. Однако эксплуатационные расходы, особенно для крупных развертываний, могут быть значительными. Управляемые сервисы, такие как Amazon OpenSearch Service, удобны, но увеличивают стоимость.
ClickHouse: Высокие показатели сжатия данных и эффективные возможности обработки ClickHouse делают его экономически выгодным вариантом для крупномасштабного анализа данных. Хотя он обеспечивает преимущества по стоимости, особенно при работе с большими наборами данных, управляемые сервисы и премиальные функции могут увеличить общие затраты.
Функции безопасности
OpenSearch: Предлагает надежные функции безопасности, включая шифрование, управление доступом на основе ролей и ведение журналов аудита, обеспечивая комплексную защиту данных при передаче и хранении.
ClickHouse: Предоставляет основные функции безопасности, такие как шифрование SSL/TLS и управление доступом на основе ролей. Для достижения уровня комплексных функций безопасности, предлагаемых OpenSearch, могут потребоваться дополнительные меры защиты.
Когда выбирать OpenSearch и ClickHouse для GenAI
Выбирайте OpenSearch для векторного поиска, когда:
- Потребности в интегрированном поиске: Вы хотите объединить векторный поиск с традиционными возможностями полнотекстового поиска. OpenSearch поддерживает различные методологии поиска, включая k-ближайших соседей (k-NN), семантический поиск и гибридные модели, что позволяет реализовывать сложные сценарии поиска.
- Поиск и аналитика в реальном времени: Вам нужна возможность выполнять векторный поиск в реальном времени, а также требуются возможности аналитики и визуализации данных. OpenSearch может обрабатывать данные в реальном времени и предлагает инструменты для мгновенной визуализации данных и получения инсайтов.
- Улучшения на основе машинного обучения: Ваше приложение выигрывает от моделей машинного обучения, которые повышают точность и релевантность поиска, особенно при работе со сложными типами данных или при необходимости генерации эмбеддингов на лету.
Выбирайте ClickHouse для векторного поиска, когда:
- Высокопроизводительная аналитика: Вам требуются быстрые и эффективные запросы к очень большим наборам данных, особенно когда необходимо сочетать сопоставление векторов с детальной фильтрацией и агрегацией данных на основе SQL.
- Работа с массивными наборами данных: Ваши операции векторного поиска должны масштабироваться на большие объемы данных без ущерба для производительности. ClickHouse оптимизирован для эффективной работы с многотерабайтными наборами данных, что делает его идеальным для тяжелых аналитических нагрузок.
- Векторные операции на основе SQL: Вы предпочитаете использовать SQL для операций векторного поиска, интегрируя вычисления векторного расстояния непосредственно в SQL-запросы. Это особенно полезно, когда ваш векторный поиск необходимо сочетать со сложными SQL-запросами, включающими большие наборы данных.
Когда выбирать специализированную векторную базу данных?
Хотя OpenSearch и ClickHouse предлагают возможности векторного поиска через расширение, они не оптимизированы для крупномасштабных высокопроизводительных задач векторного поиска. Если ваше приложение зависит от быстрого и точного поиска сходства по миллионам или миллиардам многомерных векторов, например в распознавании изображений, рекомендациях для электронной коммерции или задачах NLP, специализированные векторные базы данных, такие как Milvus и Zilliz Cloud (управляемый Milvus), подойдут лучше. Эти базы данных созданы для обработки векторных данных в масштабе, используя продвинутые алгоритмы Approximate Nearest Neighbor (ANN) (например, HNSW, IVF ) и предлагая расширенные функции, такие как гибридный поиск (включая гибридный разреженный и плотный поиск, мультимодальный поиск, векторный поиск с фильтрацией метаданных и гибридный плотный и полнотекстовый поиск), прием данных в реальном времени и распределенную масштабируемость для высокой производительности в динамических средах.
С другой стороны, системы общего назначения, такие какOpenSearch и ClickHouse, подходят когда векторный поиск не является основным фокусом, и вы работаете со структурированными или полуструктурированными данными с меньшими наборами векторов или умеренными требованиями к производительности. Если вы уже используете эти системы и хотите избежать накладных расходов, связанных с внедрением новой инфраструктуры, плагины векторного поиска могут расширить их возможности и предоставить экономически эффективное решение для более простых задач векторного поиска меньшего масштаба.
Использование Open-source VectorDBBench для самостоятельной оценки и сравнения векторных баз данных
VectorDBBench — это инструмент бенчмаркинга с открытым исходным кодом, предназначенный для пользователей, которым требуются высокопроизводительные системы хранения и извлечения данных, особенно векторные базы данных. Этот инструмент позволяет пользователям тестировать и сравнивать производительность различных систем векторных баз данных, таких как Milvus и Zilliz Cloud (управляемый Milvus), используя собственные наборы данных, и определять наиболее подходящую для их сценариев использования. Используя VectorDBBench, пользователи могут принимать обоснованные решения на основе фактической производительности векторных баз данных, а не полагаться на маркетинговые заявления или неподтвержденные свидетельства.
VectorDBBench написан на Python и лицензирован под открытой лицензией MIT, что означает, что любой может свободно использовать, изменять и распространять его. Инструмент активно поддерживается сообществом разработчиков, стремящихся улучшать его функции и производительность.
Загрузите VectorDBBench из его репозитория GitHub, чтобы воспроизвести наши результаты бенчмарка или получить результаты производительности на своих собственных наборах данных.
Быстро ознакомьтесь с производительностью основных векторных баз данных в таблице лидеров VectorDBBench.
Прочитайте следующие блоги, чтобы узнать больше об оценке векторных баз данных.
Дополнительные ресурсы о VectorDB, GenAI и ML
Читать далее

Zilliz Cloud BYOC Now Available Across AWS, GCP, and Azure
Zilliz Cloud BYOC is now generally available on all three major clouds. Deploy fully managed vector search in your own AWS, GCP, or Azure account — your data never leaves your VPC.

How Zilliz Saw the Future of Vector Databases—and Built for Production
An inside look at how Zilliz built vector databases for real-world use, focusing on scalability, stability, and running them reliably at scale.

Will Amazon S3 Vectors Kill Vector Databases—or Save Them?
AWS S3 Vectors aims for 90% cost savings for vector storage. But will it kill vectordbs like Milvus? A deep dive into costs, limits, and the future of tiered storage.
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.


