重磅版本发布|三大关键特性带你认识 Milvus 2.2.9 :JSON、PartitionKey、Dynamic Schema

news2024/12/23 23:25:00

亮点颇多、精彩程度堪比大版本的 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


  • 如果在使用 Milvus 或 Zilliz 产品有任何问题,可添加小助手微信 “zilliz-tech” 加入交流群。
  • 欢迎关注微信公众号“Zilliz”,了解最新资讯。

本文由mdnice多平台发布

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/612979.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

非常简单就能理解的 链表带环问题 你也能轻松学会!

文章目录 判断链表是否带环若链表带环找出环的入口其他高频的面试问题 判断链表是否带环 题目描述: 给定一个链表,判断链表中是否有环。 思路: 可以明确的是:若一个链表带环,那么用指针一直顺着链表遍历&#xff0c…

《嵌入式系统》知识总结10:使用位带操作操纵GPIO

位操作 汇编层面 外设控制常要针对字中某个位(Bit)操作 以字节编址的存储器地址空间中,需要3步骤(读出-修改-写回) 1.(从外设)读取包含该位的字节数据 2. 设置该位为0或1、同时屏蔽其他位&am…

微信小程序 <view></view>容器嵌套,wxss样式修改内部内部样式不产生效果

网上关于”微信小程序讲的知识很少“&#xff0c;微信开发文档对于新手不是很友好&#xff0c;但是建议一定要学会看文档。 问题如下&#xff1a; 我写了好几个<view></view> 容器嵌套&#xff0c;我在对内部容器包括的内容做修改时&#xff0c;不产生效果&#…

apache RocketMQ远程代码执行(CVE-2023-33246)

RocketMQ是阿里巴巴在2012年开发的分布式消息中间件&#xff0c;专为万亿级超大规模的消息处理而设计&#xff0c;具有高吞吐量、低延迟、海量堆积、顺序收发等特点。它是阿里巴巴双十一购物狂欢节和众多大规模互联网业务场景的必备基础设施。 RocketMQ的NameServer、Broker、…

【计算机网络之HTTP篇】Cookie与Session的区别

目录 Cookie 原理 缺点 Session 原理 区别 Cookie cookie是浏览器在本地存储数据的一种机制。 原理 当浏览器向服务器第一次发送请求时&#xff0c;服务器会向浏览器返回一个Cookie&#xff0c;此时 cookie记录着浏览器访问服务器的用户登录状态。 后续浏览器再次访问服…

[深度学习入门案例1]基于Keras的手写数字图像识别

文章目录 一、工具与环境 二、深度学习环境的搭建 1.安装Anaconda 2.创建虚拟环境 第1步&#xff1a;打开Anaconda的命令窗口&#xff0c;即Anaconda Prompt 第2步&#xff1a;使用命令创建指定版本的python环境&#xff08;这里以py36命令环境名称举例&#xff09; 3.切换…

深度解析MethodHandle方法句柄之findspecial方法的原理

网上看过太多关于MethodHandle方法句柄的文章&#xff0c;但是基本上没有人能把其中的findspecial方法讲清楚&#xff0c;特别是findspecial的第四个参数specialCaller, 相信大家都不明白是干嘛用的&#xff0c;网上给出的水文是很多都是说&#xff1a; 执行到specialCaller的父…

kafka二

练一练 需求&#xff1a;写一个生产者&#xff0c;不断的去生产用户行为数据&#xff0c;写入到kafka的一个topic中 生产的数据格式&#xff1a; 造数据 {"guid":1,"eventId":"pageview","timestamp":1637868346789} isNew 1 {&quo…

面了一个32岁的程序员,只因这一点,一眼看穿是培训班出来的,简历都是假的.....

首先&#xff0c;我说一句&#xff1a;培训出来的&#xff0c;优秀学员大有人在&#xff0c;我不希望因为带着培训的标签而无法达到用人单位和候选人的双向匹配&#xff0c;是非常遗憾的事情。 最近&#xff0c;在网上看到这样一个留言&#xff0c;引发了程序员这个圈子不少的…

Kafka安装及架构

kafka的特点 高吞吐量、低延迟&#xff1a;kafka每秒可以处理几十万条消息&#xff0c;它的延迟最低只有几毫秒&#xff0c;每个topic可以分多个partition, 由多个consumer group 对partition进行consume操作。可扩展性&#xff1a;kafka集群支持热扩展持久性、可靠性&#xf…

机智云的离线语音识别模组,让家电变得更加智能和便捷

随着人们对智能化生活的需求不断增加&#xff0c;离线语音模组越来越受到欢迎。它可以为家庭、工作和娱乐提供更加智能和便捷的服务&#xff0c;例如通过语音指令控制家居设备、查询天气信息、播放音乐等。 “小智同学&#xff0c;打开灯光” “调到最亮” “正转一档” 人工智…

Golden Gate (GGX) ZK 预编译: 彻底改变游戏玩法,成本降低千倍

Golden Gate (GGX) 作为一种新型跨链基础设施协议&#xff0c;解决了困扰 Web3.0 Layer1 和 Layer2 的跨链通信和流动性转换难题。 其解决方案主要涉及两个核心: 1) 与协议无关的通信&#xff0c;可以实现主流标准消息的传递&#xff0c;包括 IBC、XCMP 和 LayerZero 等标准。 …

2023 华为 Datacom-HCIE 真题题库 10/12--含解析

单项选择题 1.[试题编号&#xff1a;190585] &#xff08;单选题&#xff09;华为SD-WAN解决方案中&#xff0c;当CPE位 于NAT设备后的私网时&#xff0c;特别是两个站点的CPE同时位于NAT设备后的私网时&#xff0c;CPE之 间需要使用NAT穿越技术。华为SD-WAN解决方案中使用以下…

驱动开发--根文件系统

1、单片机开发属于嵌入式开发吗&#xff1f; 广义&#xff1a;单片机开发属于嵌入式开发---&#xff08;嵌入式微处理器开发&#xff09; 一般不带mmu&#xff08;地址映射&#xff09; 狭义&#xff1a;单片机开发不属于嵌入式 ---&#xff08;Linux嵌入式开发&#xff09;一…

python数据分析学习笔记之matplotlib、numpy、pandas

为了学习机器学习&#xff0c;在此先学习以下数据分析的matplotlib&#xff0c;numpy&#xff0c;pandas&#xff0c;主要是为自己的学习做个记录&#xff0c;如有不会的可以随时查阅。希望大家可以一起学习共同进步&#xff0c;我们最终都可以说&#xff1a;功不唐捐&#xff…

刷完这套八股文,15K不能再少了...

前言 大家好&#xff0c;最近有不少小伙伴在后台留言&#xff0c;得准备面试了&#xff0c;又不知道从何下手&#xff01;为了帮大家节约时间&#xff0c;特意准备了一份面试相关的资料&#xff0c;内容非常的全面&#xff0c;真的可以好好补一补&#xff0c;希望大家在都能拿…

hive中如何计算字符串中表达式

比如 select 1(2-3)(-4.1-3.1)-(4-3)-(-3.34.3)-1 col ,1(2-3)(-4.1-3.1)-(4-3)-(-3.34.3)-1 result \ 现在的需求式 给你一个字符串如上述col 你要算出result。 前提式 只有和-的运算&#xff0c;而且只有嵌套一次 -(4-3)没有 -(-4(3-(31)))嵌套多次。 第一步我们需要将运…

springboot项目的社区/博客系统

课前导读&#xff1a; 你学完一篇&#xff0c;你就多会一项技能&#xff0c;多多少少对你还是有点帮助的不是吗&#xff1f;~~~ 这是博主网页的url&#xff1a;优文共享社区 开发环境&#xff1a;JDK1.8&#xff0c;IDEA2021&#xff0c;MySQL5.7&#xff0c;Windows11 开发技术…

float变量与“零值”的比较

目录 1.问题的引出&#xff1a; 2.解决方案 <1>:自定义精度 <2>:系统提供的精度 3.总结 1.问题的引出&#xff1a; 浮点数在存储的时候&#xff0c;会存在精度的损失。 那么在浮点数进行比较的时候&#xff0c;可不可以使用 来进行比较&#xff0c;测试代码…

PHP——流程控制语句

if…else语句 几乎所有程序设计语言都有if语句&#xff0c;它按照条件选择执行不同的代码片段&#xff0c;PHP的if语句格式为 if&#xff08;条件&#xff09; {if 条件返回为TRUE执行的语句体; } else {if 条件返回FALSE执行的语句体&#xff1b; } 如果条件为真&#xff0c;就…