登陆 Azure、发布新版本……Zilliz 昨夜今晨发生了什么?
【Zilliz Day & Night】为 Zilliz 新开设的一档栏目,将定期更新 Zilliz 的最新动向,包括技术、产品、官方活动等。本期将和大家同步 Zilliz Cloud 和 Milvus 的产品及技术动态。
01.Zilliz Cloud 登陆 Microsoft Azure
Zilliz Cloud 正式登陆 Microsoft Azure(美东地区)!
这不仅意味着用户可以在 Azure 上面轻松部署及管理向量数据库,也标志着 Zilliz Cloud 已经全面覆盖包括 AWS、GCP、阿里云在内的全球主流云平台。未来,Zilliz Cloud 也将通过不断地完善和升级,更好地为用户服务,包括:在 Azure 的其他区域上线,以满足不同地域用户的部署需求;在 Azure Marketplace 上线,帮助用户简化管理及付款流程等。
除了与 Microsoft Azure 合作的好消息,Zilliz Cloud 也迎来大升级,增加诸多新特性,以便增强开发者的数据管理和查询功能。
众所周知,动态的数据管理的重点之一在于高效的 Data Ingestion。目前,Milvus 和 Zilliz Cloud 已经支持 Upsert、Kafka Connector、Airbyte,旨在简化数据处理和集成流程,为开发人员提供更高效的工具以管理复杂的数据。
其中,Upsert 可以帮助用户简化数据更新流程;接入 Kafka Sink Connector 后,向量数据可以无缝丝滑地通过前者实时导入 Milvus 或 Zilliz Cloud 向量数据库中,助力实时生成式 AI 应用;在 Milvus 和 Zilliz Cloud 中集成 Airbyte,则可以增强大语言模型(LLM)和向量数据库中的数据获取和使用流程,增强开发者存储、索引和搜索高维向量数据的能力,大大简化生成式聊天机器人和产品推荐等应用搭建流程。
不止如此,Zilliz Cloud 还在 RBAC 方面进行了重大升级,例如定制访问控制新的项目成员角色,提高项目级安全性。AWS 欧洲法兰克福区域的开区也为用户提供了更多选择,帮助用户满足不同的技术和监管需求。从新版本开始,Zilliz Cloud 还允许用户删除自己的账户和组织,为用户在账户管理方面提供了更多的控制性和灵活性……升级足以证明 Zilliz Cloud 在满足各种企业需求方面的适应性和能力。
02.Milvus 接连升级新版本
近期,Milvus 团队也陆续发布了 2.3.2、2.3.3 两个小版本,其中 2.3.2 包含了不少原计划在 2.3.0 中发布的新功能,例如:新增 Array 数据类型、支持复杂 Delete 表达式、支持 TiKV 存储元数据、初步支持 fp16 类型向量、大幅改进滚动升级体验、不兼容变更以及性能优化。
新增 Array 数据类型。Array 类型在数据库中有着非常重要的应用场景,尤其是交集、并集等查询过滤场景,例如在电商的搜索场景中需要对商品标签先挑选再搜索的场景,此时商品标签就可以存储为 string 类型的 Array,搜索时将用户挑选的标签作为过滤条件就可以进行高级搜索,使得搜索的结果更精确。对于 Array 类型的详细使用方式详见文档 (https://milvus.io/docs/array_data_type.md).
支持复杂 Delete 表达式。出于架构简洁、稳定的目的 Milvus 2.x 一直以来支持主键删除表达式,但从用户数据管理的视角按照复杂表达式删除数据一直是刚需,例如按天滚动清理老数据、为了满足 GDPR 按用户 id 清理数据等场景。从 2.3.2 开始,Milvus 的 Delete 接口正式支持了复杂表达式,此表达式语法与查询 DSL 保持一致。需要注意的是如果要使用复杂表达式,需要保证 collection 已经 load 才能使用,此外删除过程不能保证原子性。
支持 TiKV 存储元数据。从 2.x 诞生之初,Milvus 就在使用 Etcd 存储元数据,经过两年多的生产实践,暴露了一些 Etcd 的不足。首先是存储容量小,随着用户数据规模变大、使用场景更复杂 Milvus 的元数据存储逐渐成为瓶颈;其次是扩展性不足,当数据量从小规模扩展到海量时,很难同步扩展,一定要在集群建设之初做好规划。TiKV 是知名数据库 TiDB 的内核,扩展性、稳定性、面向海量数据的场景经过多年生产场景精打磨,已经相当成熟,而且 Milvus 元数据的存储格式就是 KV 形式,TiKV 很好地满足了 Milvus 的需求。从 2.3.2 开始用户可以通过修改配置,使用 TiKV 存储元数据。
初步支持 fp16 类型向量。fp16 类型在机器学习领域有着广泛的应用,相较于 fp32 类型存储空间降低了一半,但对模型的效果影响不大。很多 embedding 模型支持输出 fp16 向量。从 2.3.2 开始,Milvus 在接口层面初步支持了 fp16 类型向量,在索引层面各个索引对 fp16 的支持参差不齐,需要进行深度的改造,所以目前在构建索引时会转换成 fp32 类型向量再构建。Milvus 的索引引擎 knowhere 正在积极推进改造索引,在后续版本中会将会支持完整的 fp16 类型索引,同时 bf16、int8 等类型的向量也会逐步支持。
大幅改进滚动升级体验。滚动升级是分布式系统重要的运维能力,Milvus 在 2.2 系列中开始支持滚动升级,但从 2.2 到 2.3 版本跨度大、代码差异巨大,并且 2.3 中清理了众多遗留代码以及初期不合理的设计,所以从 2.2 滚动升级到 2.3 成为了一个棘手的问题。社区中很多用户还停留在 2.2 系列,为了让用户尽快使用到 2.3,Milvus 社区经过众多测试以及优化,支持用户从 2.2.15 滚动升级到 2.3.2。此外在优化的过程中解决了众多滚动升级的问题,将升级期间的查询影响降低到了 5 分钟以内。
性能优化。主要的性能优化包括:通过最小化数据复制操作来优化数据加载;使用批量 varchar 读取简化了大容量插入的过程;在填充数据时删除了不必要的偏移检查,提升召回阶段的性能;解决了大量插入数据场景下的高 CPU 消耗问题。
不兼容变更。包括彻底删除了 TimeTravel 相关代码;废弃 MySQL 作为元数据库的支持。
以上就是 Zilliz 近期的产品变化,欢迎大家持续关注 【Zilliz Day & Night】栏目,了解 Zilliz 的【昨夜今晨】。
评论