技术干货

登陆 Azure、发布新版本……Zilliz 昨夜今晨发生了什么?

2023-11-24

By Zilliz

登陆 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 的需求。目前,Milvus 仍然默认使用 Etcd 作为 metadata storage, 但在 2.3.2 里增加了TiKV的选项,用户可以通过修改配置,使用 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 的【昨夜今晨】。

  • Zilliz

    Zilliz

准备好开始了吗?

立刻创建 Zilliz Cloud 集群,存储和检索您的向量。

免费试用 Zilliz Cloud