使每个开发人员都能使用强大且熟悉的 SQL 构建生产级 GenAI 应用程序。
MyScaleDB 是 SQL 矢量数据库,使开发人员能够使用熟悉的 SQL 构建生产就绪且可扩展的 AI 应用程序。它构建在ClickHouse之上,并针对 AI 应用和解决方案进行了优化,使开发人员能够有效管理和处理海量数据。
使用 MyScaleDB 的主要优点包括:
完全兼容 SQL
快速、强大且高效的向量搜索、过滤搜索和 SQL 向量连接查询。
使用 SQL 和向量相关函数与 MyScaleDB 交互。无需学习复杂的新工具或框架 - 坚持您所知道和喜爱的内容。
AI 应用的生产就绪
一个经过时间考验的统一平台,用于管理和处理结构化数据、文本、矢量、JSON、地理空间、时间序列数据等。查看支持的数据类型和函数
通过将向量与丰富的元数据相结合,进行全文搜索,并进行高精度、高效率的任意比例过滤搜索,提高了 RAG 精度1 。
无与伦比的性能和可扩展性
MyScaleDB 利用尖端的 OLAP 数据库架构和先进的矢量算法来实现闪电般快速的矢量操作。
随着数据的增长,轻松且经济高效地扩展您的应用程序。
MyScale Cloud 为完全托管的 MyScaleDB 提供针对十亿级数据的高级功能2 。与使用自定义 API 的专用矢量数据库相比,MyScale 功能更强大、性能更佳且更具成本效益,同时更易于使用。这使得它适合大型程序员社区。此外,与带有 pgvector 的 PostgreSQL 或带有矢量扩展的 ElasticSearch 等集成矢量数据库相比,MyScale 消耗的资源更少,并且在结构化和矢量联合查询(例如过滤搜索)方面实现了更高的准确性和速度。
完全兼容 SQL
统一的结构化和矢量化数据管理
十亿级向量的毫秒级搜索
高度可靠且可线性扩展
强大的文本搜索和文本/矢量混合搜索功能
复杂的 SQL 向量查询
通过 MyScale Telemetry 实现 LLM 可观察性
MyScale将SQL数据库/数据仓库、矢量数据库、全文搜索引擎三个系统高效地统一到一个系统中。它不仅节省基础设施和维护成本,还可以实现联合数据查询和分析。
请参阅我们的文档和博客,了解有关 MyScale 独特功能和优势的更多信息。我们的开源基准测试提供了与其他矢量数据库产品的详细比较。
ClickHouse 是一种流行的开源分析数据库,由于其列式存储具有高级压缩、跳过索引和 SIMD 处理功能,因此在大数据处理和分析方面表现出色。与 PostgreSQL 和 MySQL 等使用行存储和主要优化进行事务处理的事务数据库不同,ClickHouse 具有更快的分析和数据扫描速度。
结构化搜索和向量搜索相结合的关键操作之一是过滤搜索,即首先按其他属性进行过滤,然后对剩余数据执行向量搜索。列式存储和预过滤对于确保过滤搜索的高精度和高性能至关重要,这就是我们选择在 ClickHouse 之上构建 MyScaleDB 的原因。
虽然我们在很多方面修改了 ClickHouse 的执行和存储引擎,以确保快速且经济高效的 SQL 矢量查询,但与通用 SQL 处理相关的许多功能(#37893、#38048、#37859、#56728、#58223)已被修改。回馈 ClickHouse 开源社区。
使用 MyScaleDB 最简单的方法是在 MyScale Cloud 服务上创建实例。您可以从支持 5M 768D 矢量的免费 Pod 开始。在此处注册并查看 MyScaleDB QuickStart 以获取更多说明。
要快速启动并运行 MyScaleDB 实例,只需提取并运行最新的 Docker 映像:
docker run --name myscaledb --net=主机 myscale/myscaledb:1.8.0
注意:Myscale 的默认配置仅允许 localhost ip 访问。对于docker run启动方式,需要指定
--net=host
来访问当前节点上以docker方式部署的服务。
这将使用默认用户default
且无密码启动 MyScaleDB 实例。然后,您可以使用clickhouse-client
连接到数据库:
docker exec -it myscaledb clickhouse-client
使用以下推荐的目录结构和docker-compose.yaml
文件的位置:
> 树 myscaledb myscaledb ├── docker-compose.yaml └── 卷 └── 配置 └── 用户.d └── 自定义用户配置.xml 3个目录,2个文件
定义您的部署的配置。我们建议从docker-compose.yaml
文件中的以下配置开始,您可以根据您的具体要求进行调整:
版本:'3.7'服务:myscaledb:图像:myscale / myscaledb:1.8.0tty:trueports: - '8123:8123' - '9000:9000' - '8998:8998' - '9363:9363' - '9116:9116'网络:myscaledb_network:ipv4_address:10.0.0.2卷: - ${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:资源:限制:CPU:“16.00”内存:32Gbnetworks: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> </网络> <配置文件>默认</配置文件> <配额>默认</配额> <访问管理>1</访问管理> </默认> </用户> </点击屋>
注意:custom_users_config配置允许您使用默认用户通过docker compose访问部署数据库服务的节点上的数据库。如果要访问其他节点上的数据库服务,建议创建一个可以通过其他IP访问的用户。详细设置请参见:MyScaleDB 创建用户。您还可以自定义MyScaleDB的配置文件。将
myscaledb
容器中的/etc/clickhouse-server
目录复制到本地驱动器,修改配置,并将目录映射添加到docker-compose.yaml
文件以使配置生效:- ${DOCKER_VOLUME_DIRECTORY:-.}/volumes/config:/etc/clickhouse-server
使用以下命令使其运行:
cd myscaledb docker 组成-d
使用以下命令访问 MyScaleDB 命令行界面。
docker exec -it myscaledb-myscaledb-1 clickhouse-client
您现在可以运行 SQL 语句。请参阅执行 SQL 查询。
支持的构建环境是带有 LLVM 15.0.7 的 Ubuntu 22.04。
请参阅脚本文件夹。
用法示例:
LLVM_VERSION=15 sudo -E bash 脚本/install_deps.sh sudo apt-get -y 安装 rustc 货物 yasm bash 脚本/config_on_linux.sh bash 脚本/build_on_linux.sh
生成的可执行文件将位于MyScaleDB/build/programs/*
中。
有关如何创建带有向量索引的 SQL 表并执行向量搜索的信息,请参阅向量搜索文档。建议在开源MyScaleDB中创建向量索引时指定TYPE SCANN
。
-- 创建一个body_vector长度为384的表CREATE TABLE default.wiki_abstract (`id` UInt64、`body` 字符串、`title` 字符串、`url` 字符串、`body_vector` 数组(Float32)、约束 check_length 检查长度(body_vector) = 384) 引擎 = MergeTreeORDER BY id;
-- 从 S3 上的 parquet 文件插入数据INSERT INTO default.wiki_abstract SELECT * FROM s3('https://myscale-datasets.s3.ap-southeast-1.amazonaws.com/wiki_abstract_with_vector.parquet','Parquet');
-- 在 body_vector 上构建带有 Cosine 指标的 SCANN 向量索引ALTER 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 ID, 标题, 距离(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 新闻或更新
在 Twitter 上关注@MyScaleDB
在 LinkedIn 上关注@MyScale
阅读 MyScale 博客
倒排索引和高性能关键字/向量混合搜索(从 1.5 开始支持)
支持更多存储引擎,例如ReplacingMergeTree
(从1.6开始支持)
使用 MyScaleDB 和 MyScale Telemetry 实现 LLM 可观察性
以数据为中心的法学硕士
使用 MyScaleDB 进行自动化数据科学
MyScaleDB 根据 Apache 许可证版本 2.0 获得许可。查看许可证文件的副本。
我们特别感谢这些开源项目,我们在此基础上开发了 MyScaleDB:
ClickHouse - 用于大数据的免费分析 DBMS。
Faiss - 由 Meta 的基础人工智能研究中心提供的用于高效相似性搜索和密集向量聚类的库。
hnswlib - 仅标头 C++/python 库,用于快速近似最近邻居。
ScaNN - Google Research 的可扩展最近邻居库。
Tantivy - 受 Apache Lucene 启发并用 Rust 编写的全文搜索引擎库。
请在此处了解为什么元数据过滤对于提高 RAG 准确性至关重要。 ↩
通过MyScale Cloud提供MSTG(多尺度树图)算法,通过基于磁盘的存储实现高数据密度,并在十亿级矢量数据上实现更好的索引和搜索性能。 ↩