BDTC 2020:从大教堂到集市

2020 中国大数据技术大会(BDTC)于 2021 年 1 月 23 日-24 日在长沙隆重召开。Zilliz 创始人、Linux Foundation AI & Data 基金会主席星爵,受邀担任了大会主论坛的演讲嘉宾,并发表了主题演讲**“从大教堂到集市 - Milvus 非结构化数据检索服务之路”**。

中国计算机学会 CCF 主办的 2020 中国大数据技术大会(BDTC)作为大数据领域极具影响力的行业盛会,已成功举办十二届,见证了大数据技术生态在中国的建立、发展和成熟。从 2008 年仅 60 余人参加的技术沙龙发展到当下数千人的技术盛宴,已经成为国内外大数据技术精英最期待的深度分享会和极具行业实践的专业大数据交流平台。本届大会聚焦智能时代,大数据技术的发展曲线以及大数据与社会各行业相结合的最新实践进展,精心策划并邀请到业内顶尖大数据应用的创建者和领航者参与到开源技术、人工智能、自然语言处理等专题和讨论。

在主论坛的报告中,星爵从数据库的源头出发,回顾了结构化数据、半结构化数据到如今的非结构化数据这三类数据类型的演变。与结构化和半结构化数据相比,非结构化数据的分析缺乏预定义的数据模型,需要针对具体应用场景通过人工智能和机器学习算法来挖掘其中的价值。在数据管理上,尽管存在 Amazon S3 和 Ceph 这类对象存储方案进行整体存储,但在数据分析层面,开发者还欠缺一个成熟且通用的分析处理工具。星爵由此大胆的提出了从特征向量出发,来搭建新一代数据搜索与分析系统的设想。即从基于数值、字符等显示语义的搜索进入到基于神经网络模型、embedding 特征向量等隐式语义的搜索。

对于非结构化的隐式语义搜索仍然面临着许多挑战,尤其是对于海量信息环境下的检索。将非结构化数据转化成特征向量后,特征向量本身包含着非常高的维度,由此带来非常大的计算量,计算复杂度,和丰富的相似度度量方法。正是这些挑战令非结构化数据处理变得异常复杂,但这也正说明解决这些痛点将会是解锁 AI 时代大规模商用软件的基础。

为了降低开发者构建非结构化数据分析处理类应用的成本,星爵带领团队开源了向量相似度搜索引擎 Milvus。Milvus 项目就是基于人工智能的场景下,针对特征向量提供集中的数据服务。截至到目前,Milvus 在 GitHub 上已经获得超过 4900 的标星,全球服务的企业用户超过 600 家,涵盖电商、互联网服务、生物制药、智慧城市等数十个细分行业和领域。

星爵在分享中提到:

“扩大的市场和用户同时也带来了新的技术挑战,意味着 Milvus 的标准需要设置的更高,正是这一初衷激发了团队对于软件架构更深层次的思考,让我们在数据分析系统层面有了新的理解。”

谈及主题报告的标题“从大教堂到集市”,开发者们应该都很熟悉这本开源运动的圣经,其中大教堂和集市分别对应了以传统商业公司为代表的集中式开发,和以开源软件世界为代表的并行和扁平化的开发结构。星爵在会上回顾了Milvus开源至今的各个版本迭代,在数据搜索系统架构上对“大教堂”与“集市”两个概念进行了全新的解读。“大教堂”对应着传统大型系统软件的架构方式,将近乎所有用户需要的功能集成进一套系统。“集市”对应着相对松散的系统架构,每个模块具有清晰的功能定位及接口,通过组合完成复杂功能。这与当前云原生数据分析生态和微服务架构的潮流一致,在 Milvus 项目的演进过程中,Milvus 社区将这个思想应用于数据搜索系统内部。

在 Milvus 早期的发展过程中,系统的内核选择了基于“大教堂”的模式进行开发。借助开源,快速收集到大量用户需求,场景众多且差异性大,例如推荐系统,化合物研究,基因制药,智慧城市,金融分析等等。基于不同行业用户的需求,在各个版本的演化中,Milvus 逐渐聚合了更加强大且细分的搜索功能,包括数据增删,实时搜索,多模态查询,标量字段过滤等。

图:大教堂架构-Milvus v0.x

然而面对日益增加的长尾用户市场和各具特色的数据分析需求,“大教堂”作为单体基础软件的范本,弊端也逐渐突显。一方面,长尾的需求要求持续的特性与功能集成,另一方面,也有不少重度用户要求功能的精简与系统核心能力的聚焦。高级用户基于成本需要,也提出了基于系统功能的进一步解耦以及按功能独立部署的诉求。在这样的背景下,Milvus 社区与用户进行了 3600 余次交流,对以往的场景、需求、系统设计经验进行了总结,决定抛弃原有的“大教堂”架构,转向更加灵活,且更加契合开源与云原生趋势的“集市”架构。整个系统进行了一次深度的拆解,使得存储、查询、索引构建、WAL 等组件充分解耦,并能够进行灵活的部署。

图: 集市架 构 - Milvus  v1.0

最后,星爵在报告总结中提到:

我相信软件工程的未来会越来越属于那些离开大教堂并拥抱集市的人。从大教堂到集市的转变,不只是开源软件协作的方式,也应该是在云原生环境和 AI 场景下,融入到数据分析生态中的必然选择。

想要了解更多关于主题报告的具体内容,或者对中国大数据技术大会主论坛感兴趣的小伙伴,可以点击左下方的 阅读原文 观看现场直播的回放。

欢迎加入 Milvus 社区

github.com/milvus-io/milvus | 源码

milvus.io | 官网

milvusio.slack.com | Slack 社区

zhihu.com/org/zilliz-11| 知乎

zilliz.blog.csdn.net | CSDN 博客

space.bilibili.com/478166626 | Bilibili

本文分享自微信公众号 - ZILLIZ(Zilliztech)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

点赞
收藏

评论区

加载中...

相关推荐

MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1

文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

皕杰报表之UUID

​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

2020年前端实用代码段,为你的工作保驾护航

有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )