Предоставьте каждому разработчику возможность создавать приложения GenAI промышленного уровня с помощью мощного и знакомого SQL.
MyScaleDB — это векторная база данных SQL, которая позволяет разработчикам создавать готовые к использованию и масштабируемые приложения искусственного интеллекта с использованием знакомого SQL. Он построен на основе ClickHouse и оптимизирован для приложений и решений искусственного интеллекта, что позволяет разработчикам эффективно управлять и обрабатывать огромные объемы данных.
Ключевые преимущества использования MyScaleDB включают в себя:
Полностью SQL-совместимый
Быстрый, мощный и эффективный векторный поиск, фильтрованный поиск и запросы на соединение SQL-векторов.
Используйте SQL с векторными функциями для взаимодействия с MyScaleDB. Нет необходимости изучать новые сложные инструменты или платформы — придерживайтесь того, что вы знаете и любите.
Готовность к использованию приложений искусственного интеллекта
Единая и проверенная временем платформа для управления и обработки структурированных данных, текстовых, векторных, JSON, геопространственных данных, данных временных рядов и многого другого. См. поддерживаемые типы данных и функции.
Повышена точность RAG за счет объединения векторов с богатыми метаданными, полнотекстового поиска и выполнения высокоточного и высокоэффективного поиска с фильтром в любом соотношении 1 .
Непревзойденная производительность и масштабируемость
MyScaleDB использует передовую архитектуру базы данных OLAP и передовые векторные алгоритмы для молниеносных векторных операций.
Масштабируйте свои приложения без особых усилий и с минимальными затратами по мере роста ваших данных.
MyScale Cloud предоставляет полностью управляемую MyScaleDB с функциями премиум-класса для обработки данных миллиардного масштаба 2 . По сравнению со специализированными векторными базами данных, использующими специальные API, MyScale является более мощным, производительным и экономичным, но при этом остается более простым в использовании. Это делает его подходящим для большого сообщества программистов. Кроме того, по сравнению с интегрированными векторными базами данных, такими как PostgreSQL с pgvector или ElasticSearch с векторными расширениями, MyScale потребляет меньше ресурсов и обеспечивает более высокую точность и скорость для структурированных и векторных совместных запросов, таких как фильтрованный поиск.
Полная совместимость с SQL.
Единое управление структурированными и векторизованными данными
Миллисекундный поиск по векторам миллиардного масштаба
Высокая надежность и линейное масштабирование
Мощные функции текстового поиска и гибридного текстового/векторного поиска.
Сложные векторные запросы SQL
Наблюдение за LLM с помощью MyScale Telemetry
MyScale объединяет три системы: базу данных/хранилище данных SQL, векторную базу данных, а также систему полнотекстового поиска в одну систему высокоэффективным образом. Это не только экономит затраты на инфраструктуру и обслуживание, но также позволяет осуществлять совместные запросы данных и анализ.
Дополнительную информацию об уникальных функциях и преимуществах MyScale можно найти в нашей документации и блогах. Наш тест с открытым исходным кодом обеспечивает детальное сравнение с другими продуктами векторных баз данных.
ClickHouse — это популярная аналитическая база данных с открытым исходным кодом, которая превосходно справляется с обработкой и анализом больших данных благодаря своему столбчатому хранилищу с улучшенным сжатием, индексацией с пропуском и обработкой SIMD. В отличие от транзакционных баз данных, таких как PostgreSQL и MySQL, которые используют хранилище строк и основные оптимизации для обработки транзакций, ClickHouse имеет значительно более высокую скорость анализа и сканирования данных.
Одной из ключевых операций при объединении структурированного и векторного поиска является поиск с фильтром, который включает сначала фильтрацию по другим атрибутам, а затем выполнение векторного поиска по оставшимся данным. Столбцовое хранилище и предварительная фильтрация имеют решающее значение для обеспечения высокой точности и высокой производительности поиска с фильтром, поэтому мы решили построить MyScaleDB поверх ClickHouse.
Хотя мы модифицировали механизм выполнения и хранения ClickHouse во многих отношениях, чтобы обеспечить быстрые и экономичные векторные запросы SQL, многие функции (#37893, #38048, #37859, #56728, #58223), связанные с общей обработкой SQL, были изменены. внес свой вклад в сообщество открытого исходного кода ClickHouse.
Самый простой способ использовать MyScaleDB — создать экземпляр в сервисе MyScale Cloud. Вы можете начать с бесплатного модуля, поддерживающего векторы 5M 768D. Зарегистрируйтесь здесь и ознакомьтесь с MyScaleDB QuickStart для получения дополнительных инструкций.
Чтобы быстро запустить экземпляр MyScaleDB, просто извлеките и запустите последний образ Docker:
docker run --name myscaledb --net=host myscale/myscaledb:1.8.0
Примечание. Конфигурация Myscale по умолчанию разрешает доступ только по IP-адресу локального хоста. Для метода запуска Docker Run вам необходимо указать
--net=host
для доступа к службам, развернутым в режиме Docker на текущем узле.
Это запустит экземпляр MyScaleDB с пользователем по default
и без пароля. Затем вы можете подключиться к базе данных с помощью clickhouse-client
:
docker exec -it клиент кликхауса myscaledb
Используйте следующую рекомендуемую структуру каталогов и расположение файла docker-compose.yaml
:
> дерево myscaledb myscaledb ├── docker-compose.yaml └── тома └── конфигурация └── пользователи.д └── custom_users_config.xml 3 каталога, 2 файла
Определите конфигурацию для вашего развертывания. Мы рекомендуем начать со следующей конфигурации в файле docker-compose.yaml
, которую вы можете настроить в соответствии с вашими конкретными требованиями:
версия: '3.7'services: myscaledb:image: myscale/myscaledb:1.8.0tty: trueports: - '8123:8123' - '9000:9000' - '8998:8998' - '9363:9363' - '9116:9116'сети: myscaledb_network:ipv4_address: 10.0.0.2volumes: - ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/data:/var/lib/clickhouse - ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/log:/var/log/clickhouse-server - ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/config/users.d/custom_users_config.xml:/etc/clickhouse-server/users.d/custom_users_config.xmldeploy: ресурсы: ограничения: процессор: "16,00" память: 32 ГБсети: myscaledb_network: драйвер: BridgeIPam: драйвер: по умолчанию конфигурация: - подсеть: 10.0.0.0/24
custom_users_config.xml
:
<кликхаус> <пользователи> <по умолчанию> <пароль></пароль> <сети> <ip>::1</ip> <ip>127.0.0.1</ip> <ip>10.0.0.0/24</ip> </сети> <профиль>по умолчанию</профиль> <quota>по умолчанию</quota> <access_management>1</access_management> </по умолчанию> </пользователи> </кликхаус>
Примечание. Конфигурация custom_users_config позволяет использовать пользователя по умолчанию для доступа к базе данных на узле, где служба базы данных развернута, с помощью Docker Compose. Если вы хотите получить доступ к службе базы данных на других узлах, рекомендуется создать пользователя, доступ к которому можно получить через другие IP-адреса. Подробные настройки см. в разделе Создание пользователя MyScaleDB. Вы также можете настроить файл конфигурации MyScaleDB. Скопируйте каталог
/etc/clickhouse-server
из контейнераmyscaledb
на локальный диск, измените конфигурацию и добавьте сопоставление каталогов в файлdocker-compose.yaml
, чтобы конфигурация вступила в силу:- ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/config:/etc/clickhouse-server
Используйте следующую команду, чтобы запустить ее:
компакт-диск myscaledb докер составить -d
Получите доступ к интерфейсу командной строки MyScaleDB, используя следующую команду.
docker exec -it myscaledb-myscaledb-1 кликхаус-клиент
Теперь вы можете запускать операторы SQL. См. Выполнение SQL-запросов.
Поддерживаемая среда сборки — Ubuntu 22.04 с LLVM 15.0.7.
Пожалуйста, посмотрите папку скриптов.
Пример использования:
LLVM_VERSION=15 сценариев sudo -E bash/install_deps.sh sudo apt-get -y установить Rusc Cargo yasm сценарии bash/config_on_linux.sh сценарии bash/build_on_linux.sh
Полученные исполняемые файлы будут находиться в MyScaleDB/build/programs/*
.
См. документацию по векторному поиску, чтобы узнать, как создать таблицу SQL с векторным индексом и выполнить векторный поиск. Рекомендуется указывать TYPE SCANN
при создании векторного индекса в MyScaleDB с открытым исходным кодом.
-- Создайте таблицу с body_vector длиной 384CREATE TABLE default.wiki_abstract (`id` UInt64,`body` String,`title` String,`url` String,`body_vector` Array(Float32),CONSTRAINT check_length CHECK length(body_vector) = 384) ENGINE = MergeTreeORDER BY id;
-- Вставить данные из файлов паркета в S3INSERT INTO default.wiki_abstract SELECT * FROM s3('https://myscale-datasets.s3.ap-southeast-1.amazonaws.com/wiki_abstract_with_vector.parquet','Parquet');
-- Постройте векторный индекс SCANN с метрикой Cosine в таблице body_vectorALTER TABLE default.wiki_abstract ADD VECTOR INDEX vec_idx body_vector TYPE SCANN('metric_type=Cosine'); --- Запросите ход построения индекса из таблицы `vector_indices` -- Подождите, пока прогресс индекса становится `Built`SELECT * FROM system.vector_indices;
-- Выполнить векторный поиск и вернуть первые 5 результатов.SELECT идентификатор, заголовок, расстояние(body_vector, [-0,052, -0,0146, -0,0677, -0,0256, -0,0395, -0,0381, -0,025, 0,0911, -0,0429, -0,0592, 0,0017, -0,0358, -0,0464, -0,0189, -0,0192, 0,0544, -0,0022, -0,0292, -0,0474, -0,0286, 0,0746, -0,013, -0,0217, -0,0246, -0,0169, 0,0495, -0,0947, 0,0139, 0,0445, -0,0262, -0,0049, 0,0506, 0,004, 0,0276, 0,0063, -0,0643, 0,0059, -0,0229, -0,0315, 0,0549, 0,1427, 0,0079, 0,011, -0,0036, -0,0617, 0,0155, -0,0607, 0,0258, -0,0205, 0,0008, -0,0547, 0,0329, -0,0522, -0,0347, 0,0921, 0,0139, -0,013, 0,0716, -0,0165, 0,0257, -0,0071, 0,0084, -0,0653, 0,0091, 0,0544, -0,0192, -0,0169, -0,0017, -0,0304, 0,0427, -0,0389, 0,0921, -0,0622, -0,0196, 0,0025, 0,0214, 0,0259, -0,0493, -0,0211, -0,119, -0,0736, -0,1545, -0,0578, -0,0145, 0,0138, 0,0478, -0,0451, -0,0332, 0,0799, 0,0001, -0,0737, 0,0427, 0,0517, 0,0102, 0,0386, 0,0233, 0,0425, -0,0279, -0,0529, 0,0744, -0,0305, -0,026, 0,1229, -0,002, 0,0038, -0,0491, 0,0352, 0,0027, -0,056, -0,1044, 0,123, -0,0184, 0,1148, -0,0189, 0,0412, -0,0347, -0,0569, -0,0119, 0,0098, -0,0016, 0,0451, 0,0273, 0,0436, 0,0082, 0,0166, -0,0989, 0,0747, -0,0, 0,0306, -0,0717, -0,007, 0,0665, 0,0452, 0,0123, -0,0238, 0,0512, -0,0116, 0,0517, 0,0288, -0,0013, 0,0176, 0,0762, 0,1284, -0,031, 0,0891, -0,0286, 0,0132, 0,003, 0,0433, 0,0102, -0,0209, -0,0459, -0,0312, -0,0387, 0,0201, -0,027, 0,0243, 0,0713, 0,0359, -0,0674, -0,0747, -0,0147, 0,0489, -0,0092, -0,018, 0,0236, 0,0372, -0,0071, -0,0513, -0,0396, -0,0316, -0,0297, -0,0385, -0,062, 0,0465, 0,0539, -0,033, 0,0643, 0,061, 0,0062, 0,0245, 0,0868, 0,0523, -0,0253, 0,0157, 0,0266, 0,0124, 0,1382, -0,0107, 0,0835, -0,1057, -0,0188, -0,0786, 0,057, 0,0707, -0,0185, 0,0708, 0,0189, -0,0374, -0,0484, 0,0089, 0,0247, 0,0255, -0,0118, 0,0739, 0,0114, -0,0448, -0,016, -0,0836, 0,0107, 0,0067, -0,0535, -0,0186, -0,0042, 0,0582, -0,0731, -0,0593, 0,0299, 0,0004, -0,0299, 0,0128, -0,0549, 0,0493, 0,0, -0,0419, 0,0549, -0,0315, 0,1012, 0,0459, -0,0628, 0,0417, -0,0153, 0,0471, -0,0301, -0,0615, 0,0137, -0,0219, 0,0735, 0,083, 0,0114, -0,0326, -0,0272, 0,0642, -0,0203, 0,0557, -0,0579, 0,0883, 0,0719, 0,0007, 0,0598, -0,0431, -0,0189, -0,0593, -0,0334, 0,02, -0,0371, -0,0441, 0,0407, -0,0805, 0,0058, 0,1039, 0,0534, 0,0495, -0,0325, 0,0782, -0,0403, 0,0108, -0,0068, -0,0525, 0,0801, 0,0256, -0,0183, -0,0619, -0,0063, -0,0605, 0,0377, -0,0281, -0,0097, -0,0029, -0,106, 0,0465, -0,0033, -0,0308, 0,0357, 0,0156, -0,0406, -0,0308, 0,0013, 0,0458, 0,0231, 0,0207, -0,0828, -0,0573, 0,0298, -0,0381, 0,0935, -0,0498, -0,0979, -0,1452, 0,0835, -0,0973, -0,0172, 0,0003, 0,09, -0,0931, -0,0252, 0,008, -0,0441, -0,0938, -0,0021, 0,0885, 0,0088, 0,0034, -0,0049, 0,0217, 0,0584, -0,012, 0,059, 0,0146, -0,0, -0,0045, 0,0663, 0,0017, 0,0015, 0,0569, -0,0089, -0,0232, 0,0065, 0,0204, -0,0253, 0,1119, -0,036, 0,0125, 0,0531, 0,0584, -0,0101, -0,0593, -0,0577, -0,0656, -0,0396, 0,0525, -0,006, -0,0149, 0,003, -0,1009, -0,0281, 0,0311, -0,0088, 0,0441, -0,0056, 0,0715, 0,051, 0,0219, -0,0028, 0,0294, -0,0969, -0,0852, 0,0304, 0,0374, 0,1078, -0,0559, 0,0805, -0,0464, 0,0369, 0,0874, -0,0251, 0,0075, -0,0502, -0,0181, -0,1059, 0,0111, 0,0894, 0,0021, 0,0838, 0,0497, -0,0183, 0,0246, -0,004, -0,0828, 0,06, -0,1161, -0,0367, 0,0475, 0,0317]) AS distanceFROM default.wiki_abstractORDER BY distance ASCLIMIT 5;
Мы стремимся постоянно совершенствовать и развивать MyScaleDB для удовлетворения постоянно меняющихся потребностей индустрии искусственного интеллекта. Присоединяйтесь к нам в этом захватывающем путешествии и станьте частью революции в управлении данными ИИ!
Раздор
Поддерживать
Получайте последние новости и обновления MyScaleDB.
Следите за @MyScaleDB в Твиттере.
Подпишитесь на @MyScale в LinkedIn
Читать блог MyScale
Инвертированный индекс и эффективный гибридный поиск по ключевым словам и векторам (поддерживается с версии 1.5)
Поддержка большего количества механизмов хранения, например ReplacingMergeTree
(поддерживается с версии 1.6).
Наблюдение за LLM с помощью MyScaleDB и MyScale Telemetry
LLM, ориентированный на данные
Автоматическая обработка данных с помощью MyScaleDB
MyScaleDB лицензируется по лицензии Apache версии 2.0. Просмотрите копию файла лицензии.
Мы выражаем особую благодарность за эти проекты с открытым исходным кодом, на основе которых мы разработали MyScaleDB:
ClickHouse — бесплатная СУБД аналитики больших данных.
Faiss — библиотека для эффективного поиска по сходству и кластеризации плотных векторов, разработанная Meta's Fundamental AI Research.
hnswlib — библиотека C++/python только для заголовков для быстрого приближения ближайших соседей.
ScaNN — масштабируемая библиотека ближайших соседей от Google Research.
Tantivy — библиотека полнотекстовой поисковой системы, вдохновленная Apache Lucene и написанная на Rust.
Узнайте, почему фильтрация метаданных имеет решающее значение для повышения точности RAG. ↩
Алгоритм MSTG (многомасштабный древовидный график) предоставляется через MyScale Cloud, обеспечивая высокую плотность данных за счет дискового хранилища и лучшую производительность индексации и поиска в векторных данных миллиардного масштаба. ↩