重磅版本发布|三大关键特性带你认识 Milvus 2.2.9 :JSON、PartitionKey、Dynamic Schema
亮点颇多、精彩程度堪比大版本的 Milvus 2.2.9 来啦!
随着 LLM 的持续火爆,众多应用开发者将目光投向了向量数据库领域,而作为开源向量数据库的领先者,Milvus 也充分吸收了大量来自社区、用户、AI 从业者的建议,把重心投入到了开发者使用体验上,以简化开发者的使用门槛。本次新版本不仅可以支持 JSON 类型,还增加了 Dynamic Schema、PartitionKey、Database 支持等,也增加了一些类似“支持用户自定义 task 调度策略”的小功能。
此外,我们也进行了部分优化,例如优化高过滤比例场景下的查询性能、减少流式数据的内存拷贝等。
总体而言,拥有诸多新特性加持的 Milvus 2.2.9 不仅满足了社区用户的迫切需求,也在一定程度上降低了用户的使用门槛,使用体验拉满!本文将带大家全方位解读 Milvus 2.2.9 的新特性,前方丰富信息量预警……
图片
新特性
- 支持 JSON 类型
JSON 类型是社区中呼声最高的 feature 之一。在真实的使用场景中,大量用户会结合向量数据以及向量的元信息一起使用,例如在知识增强场景中,用户不仅仅会在 Milvus 中存储 Embedding 之后的文本,还会存储文本的一些元信息如标题、作者、创作时间等等,用户使用这些元信息最大的需求是要随着业务场景的变化灵活调整。
JSON 类型的 schemaless 特点很好地满足了用户对灵活性的需求。在 2.2.9 中用户可以写入并使用 JSON 做数据过滤,同时 Milvus 对 JSON 类型也会使用 SIMD 加速查询性能。未来,我们还会对 JSON 类型中的字段增加索引,进一步提升标量、向量混合查询的性能。
- Dynamic Schema
在支持了 JSON 类型后,Milvus 可以通过简单的 SDK 封装满足用户动态 schema 的需求。2.2.9 以后的 SDK 中会增加 High Level API,在 High Level API 中会自动将动态的字段填入 collection 隐藏的 JSON 字段中。对于用户开发者来说,只需关注业务字段即可,大大降低了用户的心智负担和使用门槛。
- PartitionKey
区别于 Milvus 已有的 Partition 功能,PartitionKey 功能会根据用户指定的列作为分区主键,在使用的过程中也无需使用 loadPartition、releasePartition 等 API。对于用户而言,不仅真正做到了使用简单,同时解除了现有 Partition 4096 数量的限制。
个数无上限的 PartitionKey 能够极大地复用资源,比如要开发一款面向百万级用户以上的个性化的 AI 应用,最直接的做法是每个用户单独开一套集群或开一个 collection,但这无疑是对资源的巨大浪费。而如果将所用用户的向量数据放在同一个 collection 中,势必会面临查询性能的问题,此时可以将用户 ID 作为 PartitionKey,按照用户 ID 将数据进行分区,可以在资源使用和高性能之间取得很好的平衡。
- 支持 Database
在 2.2.9 之前 Milvus 为了简化用户的使用,暂时隐藏了 Database,用户直接访问 Collection 即可。随着 Milvus 在越来越多的生产环境中落地,用户对于权限隔离、资源隔离等运维类需求也越来越多。在 Milvus 2.2.9 中,我们将 Database 层级暴露给用户,同时对 Database 增加了权限认证能力。值得注意的是,使用 2.2.8 及之前版本的用户升级后,原有的 collection 会被放在默认 Database 中。
- 支持阿里云 OSS
Milvus 作为一款云原生向量数据库,存储引擎可以很容易对接到兼容 S3 协议的对象存储上。支持阿里云的对象存储也比较容易,使用阿里云的用户在配置中将 cloudProvider 置为阿里云即可使用。
功能增强
支持用户自定义task调度策略;
支持表达式中使用单引号字符串;
大大降低standalone模式下磁盘使用量;
提升Load/Release性能。
其他优化
除了增加新特性,我们也进行了部分优化调整:
优化高过滤比例场景下的查询性能;
使用 SIMD 加速标量过滤;
减少流式数据的内存拷贝。
问题修复
除了新增和优化相应的特性和功能外,我们也修复了大量社区中反馈的与稳定性、业务逻辑相关的 bug:
修复 DiskANN 磁盘占用无法被清理的问题;
修复了由于无效的 Numpy 数组文件导致的批量插入 panic 问题;
修正了 Int8~Int32 类型的空结果集;
修复了在 balance 已被释放 collection 时发生的 panic;
解决了会话停止在失去连接后变得卡住的问题;
修复了获取未索引 segment 逻辑不正确导致 panic 的问题;
解决了配额影响下使用不存在集合时会 panic 的问题;
修正刷新可能过早通知完成的问题。
点击了解更多信息:https://milvus.io/docs/release_notes.md#229
技术干货
一次解决三大成本问题,升级后的 Zilliz Cloud 如何造福 AIGC 开发者?
对于应用开发而言,成本问题向来是企业和开发者关注的重点,更迭迅速、变化莫测的 AIGC 时代更是如此。这里的成本既指软件开发成本,也包括硬件成本、维护成本。Zilliz Cloud 可以一次性解决这三大问题,帮助开发者降低开发成本、优化硬件成本、减少维护成本。
2023-7-6技术干货
当一个程序员决定穿上粉裤子
如何找到和你时尚风格相似的明星?AI + Milvus=?
2023-8-23技术干货
打磨 8 个月、功能全面升级,Milvus 2.3.0 文字发布会现在开始!
七大变化详解 Milvus 2.3.0
2023-9-1