{"value":"### **Data Everywhere 系列活动-上海站 数据架构演进下的新挑战**\n![40db8c87594bcc0b5cdf453aedf76f4c.jpg](https://dev-media.amazoncloud.cn/17ae6e46a9fd43e89fc2fec6a309dfd9_40db8c87594bcc0b5cdf453aedf76f4c.jpg)\n\n2022年7月30日,亚马逊云科技 User Group 上海举办了主题为《数据架构演进下的新挑战》的 Data Everywhere 系列活动,此次活动在线上直播进行,云上观众踊跃参与。\n\n本次活动围绕大数据技术,展开一系列的分享,与大家交流数据计算与存储引擎不断演进的情况下,给企业架构带来的新机遇和新挑战。\n\n错过直播的小伙伴可点击 [阅读原文](https://www.slidestalk.com/w/1028) 下载资料及观看直播回放视频~\n### **大数据时代的新架构:计算+数据编排+存储**\n\n![1662260769105.png](https://dev-media.amazoncloud.cn/0217ebc065714054b9281dd0a0ee0eaf_1662260769105.png)\n\n**讲师介绍:**\n目前就职于 Alluxio 公司研发部门核心组:Alluxio 项目 PMC maintainer 。硕士毕业于哥伦比亚大学计算机科学系。作为 Alluxio 核心维护成员,发布了 Alluxio K8s HelmChart , 参与并主导了多个 Alluxio 系统 RPC 和内核的优化工作。\n\n**分享内容:**\n本次分享分为四个部分,讲师首先介绍了 Alluxio 诞生的背景,接着介绍 Alluxio 数据编排项目,然后深入 Alluxio 的核心设计,探索 Alluxio 的核心技术革新:统一数据编排层、高效数据读写、便捷数据管理、对异构环境的支持,最后分享了 Alluxio 的经典客户案例。\n\n#### **Part1: Alluxio 诞生的背景**\n刘老师首先介绍了大数据/ AI 世界的现状及纷繁复杂的数据平台带来的新挑战。\n\n![54140987873c6aaae8e2e8271715bcc0.png](https://dev-media.amazoncloud.cn/09b571246a19474d9b9dddfeece8166b_54140987873c6aaae8e2e8271715bcc0.png)\n\n- 大数据世界复杂多样,存储计算经历了数代更迭,碎片化信息灌输到数据系统和数据湖,产生越来越多数据孤岛。\n- 数据使用方有着强烈的对数据统一访问的需求。\n- 不同应用对存储和计算的需求扩展不同,引发了对存算分离的新架构的思考。\n\n![fcd2e88e72c7d23d3352a0e49ac77154.png](https://dev-media.amazoncloud.cn/72099b62141d4d8990dd986004445334_fcd2e88e72c7d23d3352a0e49ac77154.png)\n\n- 数据源所在多样,数据接入、数据同步、数据迁移复杂。\n- 多集群、多数据中心、多平台造成数据分析、数据平台适配、多平台混合架构、迁移的复杂性。\n\n大数据/ AI 的架构演进经历了由计算引擎和 HDFS 紧耦合,到同一集群上实现计算引擎与 HDFS 的解耦,到向未来兼容的更新更快更符合需求的混合异构框架:混合云化部署、支持更多计算框架、向对象存储过渡。\n\n![90e7214492fb33c02bfd77cbded92d82.png](https://dev-media.amazoncloud.cn/f11ce2f534104710bdeb0ddf31d01c14_90e7214492fb33c02bfd77cbded92d82.png)\n\n#### **Part2: 介绍 Alluxio 数据编排项目**\n\nAlluxio 项目源自加州大学伯克利分校 AMP 实验室,起源于李浩源博士的研究课题 Tachyon Nexus 项目,2015年成立公司推动 Allluxio 项目的产品与商业化, Alluxio 正在被 Facebook , Amazon , Microsoft , 百度、腾讯等多家头部科技公司及 PayPal , 中国移动、虎牙直播等金融和媒体行业公司使用。\n\n#### **Part3:深入 Alluxio 的核心设计 探索 Alluxio 的核心技术革新**\n\nAlluxio 在存储层和计算层加入一层抽象(统一的数据编排层),为数据分析和 AI 提供统一的数据访问接口,为数据的管理、迁移、缓存、缓存管理提供支持。\n\n![05d328e3e6ee9b6bd4d24e98b03c9c36.png](https://dev-media.amazoncloud.cn/d88be3b36ad44a6494700ab53d70e673_05d328e3e6ee9b6bd4d24e98b03c9c36.png)\n\n**统一的数据编排层**\n\nAlluxio 统一数据编排层将存储和计算分离,隐藏存储细节,降低了计算端的运维难度。\nAlluxio 支持多种底层存储如 HDFS , NFS , Ceph , S3 , Google Cloud 并将多个底层存储系统通过挂载形成文件系统树,提供统一的数据视图,用户无需关注底层存储细节,通过 Alluxio 统一的数据访问接口使用数据即可。\n\n![94a675e581d2102261dea99bfdccfa90.png](https://dev-media.amazoncloud.cn/a8bcc2451957498ebd54df6cdecad5d5_94a675e581d2102261dea99bfdccfa90.png)\n\n在 presto 中使用 Alluxio , 只需将 HDFS 路径更改为相应 Alluxio 路径(商业版甚至可自动完成这一步),然后用 SQL 即可照常读取表格。Spark 读写及 Spark RDD 在 Alluxio 中的使用也是如此,除了通过 Alluxio 统一接口访问数据外,应用端代码无需做出任何改动。\n\nAlluxio 的系统架构见下图。分为 Alluxio Client, Master, Worker 节点, Alluxio Worker 节点根据数据冷、热自动分配数据缓存(RAM/SSD/HDD),使用缓存提升数据访问性能, Alluxio 的底层支持挂载多种存储。\n\n![0daa13f33f833f3635f446a722b5c064.png](https://dev-media.amazoncloud.cn/75f42dacc0674820b55849cb5acccf0e_0daa13f33f833f3635f446a722b5c064.png)\n\n**高效的数据访问**\nAlluxio 将应用的热、温、冷数据对应内存、 SDD, HDD 不同缓存类型,自动动态调整对缓存资源的使用,当底层数据发生变动时, Alluxio master 与底层存储同步,更新 Alluxio 中的元数据,而缓存的同步过程将在下一次数据请求时延迟发生。\n\n![caceb0b723df3256fb81adb7bbb7c76a.png](https://dev-media.amazoncloud.cn/b47f03da773b44bdb18861fe207cafc1_caceb0b723df3256fb81adb7bbb7c76a.png)\n\n![fa02bf8cb3a191d5a634241459db95c7.png](https://dev-media.amazoncloud.cn/a4523eb5050d4fbda3140655f103566f_fa02bf8cb3a191d5a634241459db95c7.png)\n\nAlluxio 实现了对异步读写的优化,例如当应用首次读取某 1M 数据时,先从存储中读取这 1M 数据返回给应用,接着 Alluxio 缓存这 1M 数据附近的 64M 数据,以便下次高效读取数据。在应用写入数据时, Alluxio 将应用数据写入多个缓存副本,给应用写入完成的反馈,之后再将缓存数据持久化进底层存储。\n\n![5180b51ca5fefa8f2395b84d624b8c98.png](https://dev-media.amazoncloud.cn/91b8de8f960144a591defa2e09306342_5180b51ca5fefa8f2395b84d624b8c98.png)\n\n**便捷的数据管理**\n\n在数据管理方面 Alluxio 支持将多个底层存储挂载到同一个路径下,用户看到一个统一的视图,无需关注底层存储。当 HDFS 集群的存储规模有限时, Alluxio 将超过7天的冷数据挪入 S3 , 腾出空间放置热数据,节约 HDFS 资源。\n\n![6b7b14b9a65a52d6b9109692b940c1f9.png](https://dev-media.amazoncloud.cn/f20a545f23c4435497d3dfbc3aec5c5e_6b7b14b9a65a52d6b9109692b940c1f9.png)\n\n#### **异构环境的支持**\nAlluxio 将数据向计算移动,数据服务对于计算集群相当于本地数据,实现了存算分离,当弹性增加计算资源时,只需在新增服务器上安装 Alluxio , 无需创建数据副本,在计算集群服务器上的数据随着集群的缩减自动销毁。计算端的数据缓存节约了集群间网络开销,减轻了存储集群压力。\n\n![4c6ea3d69a8ec478b79b95cbb17a7dd0.png](https://dev-media.amazoncloud.cn/62d49101fb8d4e8e95c93e615d9ae237_4c6ea3d69a8ec478b79b95cbb17a7dd0.png)\n\n#### **Part4:Alluxio 的经典客户案例**\n\n客户案例 A : 在单一云中进行大规模数据分析\n问题:如何在低性能下削减开销?\n解决方案:Alluxio 通过缓存加速对 S3 的访问,节省 S3 存储开销。\n\n\n客户案例 B : 跨数据中心的 BI 及大数据分析\n问题:存储集群和计算集群分别部署在不同数据中心,计算资源不足。\n解决方案:在计算集群上部署 Alluxio , 通过分布式缓存技术提升数据分析性能。\n\n客户案例 C : 所有数据访问皆依靠 Alluxio 数据编排平台\n问题:多个数据孤岛导致效率低下和额外开销。\n解决方案:Alluxio 保障了数据视图与底层命名空间一致性,提供基于多个存储的统一视图,统一了数据孤岛,实现稳定高效数据分析,减少每次查询开销。\n\n客户案例 D : 构建基于公有云的跨地域虚拟数据湖\n问题:不同品牌在亚马逊云科技不同区域进行数据导入,形成数据孤岛,手动复制数据执行效率低下,网络出口代价高昂。\n解决方案:通过 Alluxio “零拷贝”构建跨地域虚拟数据湖为多种计算引擎提供数据访问服务。\n\n### **千亿级向量的管理与检索技术实践**\n![image.png](https://dev-media.amazoncloud.cn/2c55b765336b4e58ae233ed40473b913_image.png)\n\n**讲师介绍:**\n目前在 Zilliz 负责 Milvus 开源产品的技术管理和社区维护。他曾在 RSVP.ai 担任技术 VP , 负责打造多款在全球百强企业落地的 AI SaaS 产品。此前他先后在微软中国、谷歌美国和谷歌加拿大就职。高雨辰拥有滑铁卢大学计算机系硕士学位。\n\n**分享内容:**\n本次分享分为四个部分,讲师首先介绍了深度学习与 Embedding , 接着介绍了向量数据库,然后介绍了分布式向量数据库 Milvus2.0 , 最后分享了向量数据库的产品生态。\n\n#### **Part1: 深度学习与 Embedding**\n高老师首先形象描述了非结构化数据的快速增长。引用到了一组数据,宇宙中有约700亿亿(10的16次方)颗恒星,而到2025年人类拥有的数据量预计将达到 180ZB (10的21次方),其中超过80%为图片、文本、音频、视频、蛋白质结构等非结构化数据,并随大数据发展其比重日益增大。随着 5G 移动互联网时代的到来,短视频门槛越来越低,数据爆炸成为时代的一个趋势。\n\n![faa98a1f9090eff7a5862e971bf833e4.png](https://dev-media.amazoncloud.cn/8fe81d2c92f84ff4ae3ef365fc79b0a3_faa98a1f9090eff7a5862e971bf833e4.png)\n\n面对天文数字级别的非结构化数据,通过深度学习及 Embedding 技术分析非结构化数据取得了良好效果。\n\nEmbedding 是一项将高维向量转化为低维特征向量同时保留大部分语义特征的技术。高老师以电影推荐场景为例对 Embedding 进行形象化说明。我们可将影片按一维 children 到 adult 进行排放,而当一维不足以描述影片特征时,我们可将其扩展到二维,如下图。\n\n![4bb8a949cb0c025d10a439f54c3b76a9.png](https://dev-media.amazoncloud.cn/a5d894ebabe44f2a8e988ffd867ca48a_4bb8a949cb0c025d10a439f54c3b76a9.png)\n\n而在实际场景中,影片的特征向量往往上千、上万维,如此高的纬度使得存储成本、运算速度均受到影响。通过深度学习和 Embedding 技术,将高维输入向量投射为三维 Embedding , 同时保留语义信息,向量空间距离越相近,代表语义越相似。\n\n![50542ca64bf618015032c986b3009d4f.png](https://dev-media.amazoncloud.cn/fde1e781da3b49c9adc494eda39f80ff_50542ca64bf618015032c986b3009d4f.png)\n\nEmbedding 的应用场景有以下:\n- 推荐系统\n- 计算机视觉类应用,如以图搜图\n- 自然语言处理类应用,如问答系统和文本搜索\n- 搜索相似音频、歌曲\n- 蛋白质序列分析,蛋白质结构预测\n\n#### **Part2:向量数据库简介**\n向量索引与向量检索采用 Approximate nearest neighbor (ANN) 算法,已实现的向量检索引擎有 HNSW , ScaNN , DiskANN 等,它们各有优势,有的召回率高,有的检索速度快,有的内存或磁盘占用空间小。高老师对 IVF_Flat 和 HNSW 两种向量检索引擎进行了展开介绍。\n\n在17000个向量中搜索上传图片向量的最相近向量,若逐个比较需要17000次。\n\n- IVF_Flat-Search 将17000个向量按向量距离远近划分成256个桶,将上传图片向量与256个桶的中心向量进行比较,从中挑出8个 cluster, 比较次数为256次。再将上传图片向量与8个 cluster 里的向量进行比较,比较次数为742次。这样就将比较次数从17000次降低到998次, IVF_Flat-Search 的优点是召回率高。\n\n![224dff86e529913674565df90bab8306.png](https://dev-media.amazoncloud.cn/d319baa9602a495ba9fa40f38b74105d_224dff86e529913674565df90bab8306.png)\n\n- HNSW-Search 将17000个向量进行分层,每层为连通图,上层点少,越往下层点越多。比较时从最上层出发,每一层向目标向量逼近,相似度不断提高。比较次数从17000次降低到170次,实现了至少100倍以上优化。\n![6daaebd3ff404f3519e48aa17bc98975.png](https://dev-media.amazoncloud.cn/77030935cb504fd190299f170a294584_6daaebd3ff404f3519e48aa17bc98975.png)\n\n那么这些向量检索引擎能满足用户的终端需求吗?实际上,这些向量检索算法库,相较于工业界的生产环境还有相当大的距离,使用者需考虑如何进行增删改查、导入导出、扩展、高可用、抗灾、可见性、用户友好性等问题。正如 Elasticsearch 将 Lucene 进行产品化般, Milvus 使用市面上最优秀的开源向量检索引擎为算法内核,打造向量数据库产品,目前在 Github 上拥有11000多颗 star , 对向量检索引擎进行了产品化,以更好满足工业生产需求。\n\n![3bd6c60a651b5301f8f43cf7e706d543.png](https://dev-media.amazoncloud.cn/c1c861752ad14b00a0a34f54d0990eb9_3bd6c60a651b5301f8f43cf7e706d543.png)\n\n#### **Part3:介绍分布式向量数据库 Milvus2.0**\n\n高老师介绍了 Milvus 的设计理念:表和日志都能完整体现数据,就如同流和批为数据处理的两种方式, Milvus 是基于日志系统的分布式数据库,本着日志即数据的理念,日志的持久化即代表数据的持久化, Milvus 通过 Kafka , Pulsar 等组件保证日志的存储与持久化,具有无状态、架构轻、降低设计复杂度等优势。Milvus 架构图如下。\n\n![ab0a5b293121285aac1a308cf2afbc16.jpg](https://dev-media.amazoncloud.cn/044b8809c019467daaf72e0e1ff22629_ab0a5b293121285aac1a308cf2afbc16.jpg)\n\n#### **Part4:向量数据库的产品生态**\n高老师最后介绍了向量数据库的周边生态,包括向量数据库 GUI 工具 Attu, 向量可视化工具 Feder, X2Vector 工具 Towhee。\n\n![a4e8d4755229c6349b6b774415fabe15.png](https://dev-media.amazoncloud.cn/f39e5cf40fbe482387d63f0a24a00645_a4e8d4755229c6349b6b774415fabe15.png)\n\n![7b6816b2ed707cdb3bab827e2ea04002.png](https://dev-media.amazoncloud.cn/07fa1931cd4748f4becbff20beb23ca3_7b6816b2ed707cdb3bab827e2ea04002.png)\n\n#### **Q&A**\n\n如果想要上手 Milvus 这个工具的话,可以从哪里开始入手?\n答:Github Milvus 项目 [https://github.com/milvus-io/milvus](https://github.com/milvus-io/milvus) 有详细的使用说明,对入门上手友好。此外还可以参考我们的 Bootcamp 项目和 Towhee 等周边生态。\n\nMilvus2.0 相比1.0有哪些优势?\n答:Milvus 1.0 提供了向量数据库的单机版方案,随着近些年数据量的爆炸式增长, Milvus 1.0 用户数面临的数据量也在急剧上升, Milvus 2.0 由1.0的单机向分布式演变,以适应用户的需求。\n\n高老师的团队还在招人吗?加入团队需要什么能力?\n答:需要了解分布式技术和数据库底层技术,如果有一些 AI 经验也是加分项。Milvus 团队分为内核算法研究团队,向量数据库团队以及云原生平台团队。\n\n### **下一代云上分布式系统**\n\n![image.png](https://dev-media.amazoncloud.cn/404cf8bbd4bc427888a9a6486c97446c_image.png)\n\n**讲师介绍:**\n目前在 Airwallex 负责高可靠低延时的支付系统事务引擎的研发工作。他先后就职于谷歌、 eBay , 担任大数据后端工程师。工作之余,单栋热衷于开源,是上海 Linux 开发者社区的 maintainer.\n\n**分享内容:**\n本次介绍分为三个部分,讲师首先介绍了云时代分布式系统的需求背景及分布式系统的特征,然后回顾过去二十年分布式系统在互联网业界的发展,最后介绍了 Airwallex 分布式系统的实践。\n\n#### **Part1:云时代分布式系统的需求背景及特征**\n随着云时代的到来,业务越来越大,系统越来越复杂,对每个子系统可靠性的要求越来越高,单机可靠性无法保证的问题越来越突出,我们需要硬件上的按需灵活配置和低成本。\n\n![f6ebbb21697cd8ff1ca5a291151029c8.png](https://dev-media.amazoncloud.cn/c9a1a3f7f1a84e18adccd77ff448e664_f6ebbb21697cd8ff1ca5a291151029c8.png)\n\n今天我们讨论的分布式系统,应当突破单机的可靠性瓶颈,保障足够可靠性,实现更大规模的分布式系统,进一步提升系统容量,完成更复杂任务。\n\n![5352829ce9cd4231e3493fb067ceb6eb.png](https://dev-media.amazoncloud.cn/169aa7aacded4bb1bd1de17eb06087df_5352829ce9cd4231e3493fb067ceb6eb.png)\n#### **Part2:过去二十年分布式系统在互联网业界的发展**\n单老师介绍了云上分布式系统的理论研究。\n\n![d64cc3529095de6d730d76389fc5c657.png](https://dev-media.amazoncloud.cn/a87bf674b3f145c39d0ef4915bbee1d7_d64cc3529095de6d730d76389fc5c657.png)\n\n然后介绍了现有云上分布式核心系统包括:\n\n- **Etcd** : 分布式 KV 式锁服务,这是较为早期和传统的解决问题方式,可靠性较弱。\n- **TIDB**: 分布式关系向数据库系统\n- **Temporal** : 分布式业务流引擎\n\n![b7ef1ab01a6947db00d1077fd386a563.png](https://dev-media.amazoncloud.cn/14aac719bed2486b9f5fd72462bb7346_b7ef1ab01a6947db00d1077fd386a563.png)\n\n#### **Part3:Airwallex 分布式系统的实践**\nAirwallex 对分布式系统的需求:像 Etcd 一样轻量,不需要 TiDB 一样的通用,可以完成一部分 Temporal 的功能。\n\n![42ba10b755bcf18d7b4a6d1f02f8524c.png](https://dev-media.amazoncloud.cn/cf9f7be3a1274146965eb38e029bf7f2_42ba10b755bcf18d7b4a6d1f02f8524c.png)\n\n\n基于需求定义了 Airwallex 共识基础开发框架:\n\n- 对于有强一致保证下的低延迟需求系统,并不只有 Workflow 这一个使用场景。\n- 现有市面上的 Consensus library 对于二次开发者都不是很友好。\n- 基于分布式日志/轻量化内嵌 MQ 的共识 App 快速开发。\n\n单老师接着具体介绍了低延迟分布式日志/轻量化 MQ :\n- 整体接口非常接近一个 Channel , 有在 send() 之后通过 persist 才会被 recv() 函数获取。\n- 有一个 leader election 接口,来检查当前 leader 。\n- 类似的,但是倾向于高吞吐的解决方案\n\n最后介绍了 MQ 接口相比 KV 接口的优势:\n\n- 更灵活,方便二次开发人员实现各种功能。\n- 更贴近 consensus 的本质, latency 更低。\n\n### **亚马逊云科技 User Group 期待你的加入!**\n感谢本期活动的各位合作伙伴,期待参加本场 Meetup 的讲师、开发者和志愿者们,也欢迎云上持续关注的朋友们!欲知更多信息或活动预告,请持续关注微信公众号【**User Group**】\n\n#### **社区介绍**\n\n亚马逊云科技 User Group 开发者社区是一个为开发者们提供彼此学习、分享技术实践、培训进阶等活动的技术交流分享社区。\n\n#### **持续招募**\n\n我们正在招募讲师和和志愿者,如果你对开源社区分享与共建有兴趣,并有足够的空闲时间,愿意广交志同道合的朋友,欢迎加入我们!\n\n加入方式:公众号后台回复“**讲师**”或“**志愿者**”,填写报名表单即可!\n\n**微信交流群**\n关注公众号【User Group】\n后台即可获得各社区群二维码\n\n欢迎与我们共赴一场技术之约!\n\n[阅读原文](https://www.slidestalk.com/w/1028)","render":"<h3><a id=\"Data_Everywhere___0\"></a><strong>Data Everywhere 系列活动-上海站 数据架构演进下的新挑战</strong></h3>\n<p><img src=\"https://dev-media.amazoncloud.cn/17ae6e46a9fd43e89fc2fec6a309dfd9_40db8c87594bcc0b5cdf453aedf76f4c.jpg\" alt=\"40db8c87594bcc0b5cdf453aedf76f4c.jpg\" /></p>\n<p>2022年7月30日,亚马逊云科技 User Group 上海举办了主题为《数据架构演进下的新挑战》的 Data Everywhere 系列活动,此次活动在线上直播进行,云上观众踊跃参与。</p>\n<p>本次活动围绕大数据技术,展开一系列的分享,与大家交流数据计算与存储引擎不断演进的情况下,给企业架构带来的新机遇和新挑战。</p>\n<p>错过直播的小伙伴可点击 <a href=\"https://www.slidestalk.com/w/1028\" target=\"_blank\">阅读原文</a> 下载资料及观看直播回放视频~</p>\n<h3><a id=\"_8\"></a><strong>大数据时代的新架构:计算+数据编排+存储</strong></h3>\n<p><img src=\"https://dev-media.amazoncloud.cn/0217ebc065714054b9281dd0a0ee0eaf_1662260769105.png\" alt=\"1662260769105.png\" /></p>\n<p><strong>讲师介绍:</strong><br />\n目前就职于 Alluxio 公司研发部门核心组:Alluxio 项目 PMC maintainer 。硕士毕业于哥伦比亚大学计算机科学系。作为 Alluxio 核心维护成员,发布了 Alluxio K8s HelmChart , 参与并主导了多个 Alluxio 系统 RPC 和内核的优化工作。</p>\n<p><strong>分享内容:</strong><br />\n本次分享分为四个部分,讲师首先介绍了 Alluxio 诞生的背景,接着介绍 Alluxio 数据编排项目,然后深入 Alluxio 的核心设计,探索 Alluxio 的核心技术革新:统一数据编排层、高效数据读写、便捷数据管理、对异构环境的支持,最后分享了 Alluxio 的经典客户案例。</p>\n<h4><a id=\"Part1_Alluxio__18\"></a><strong>Part1: Alluxio 诞生的背景</strong></h4>\n<p>刘老师首先介绍了大数据/ AI 世界的现状及纷繁复杂的数据平台带来的新挑战。</p>\n<p><img src=\"https://dev-media.amazoncloud.cn/09b571246a19474d9b9dddfeece8166b_54140987873c6aaae8e2e8271715bcc0.png\" alt=\"54140987873c6aaae8e2e8271715bcc0.png\" /></p>\n<ul>\n<li>大数据世界复杂多样,存储计算经历了数代更迭,碎片化信息灌输到数据系统和数据湖,产生越来越多数据孤岛。</li>\n<li>数据使用方有着强烈的对数据统一访问的需求。</li>\n<li>不同应用对存储和计算的需求扩展不同,引发了对存算分离的新架构的思考。</li>\n</ul>\n<p><img src=\"https://dev-media.amazoncloud.cn/72099b62141d4d8990dd986004445334_fcd2e88e72c7d23d3352a0e49ac77154.png\" alt=\"fcd2e88e72c7d23d3352a0e49ac77154.png\" /></p>\n<ul>\n<li>数据源所在多样,数据接入、数据同步、数据迁移复杂。</li>\n<li>多集群、多数据中心、多平台造成数据分析、数据平台适配、多平台混合架构、迁移的复杂性。</li>\n</ul>\n<p>大数据/ AI 的架构演进经历了由计算引擎和 HDFS 紧耦合,到同一集群上实现计算引擎与 HDFS 的解耦,到向未来兼容的更新更快更符合需求的混合异构框架:混合云化部署、支持更多计算框架、向对象存储过渡。</p>\n<p><img src=\"https://dev-media.amazoncloud.cn/f11ce2f534104710bdeb0ddf31d01c14_90e7214492fb33c02bfd77cbded92d82.png\" alt=\"90e7214492fb33c02bfd77cbded92d82.png\" /></p>\n<h4><a id=\"Part2__Alluxio__36\"></a><strong>Part2: 介绍 Alluxio 数据编排项目</strong></h4>\n<p>Alluxio 项目源自加州大学伯克利分校 AMP 实验室,起源于李浩源博士的研究课题 Tachyon Nexus 项目,2015年成立公司推动 Allluxio 项目的产品与商业化, Alluxio 正在被 Facebook , Amazon , Microsoft , 百度、腾讯等多家头部科技公司及 PayPal , 中国移动、虎牙直播等金融和媒体行业公司使用。</p>\n<h4><a id=\"Part3_Alluxio___Alluxio__40\"></a><strong>Part3:深入 Alluxio 的核心设计 探索 Alluxio 的核心技术革新</strong></h4>\n<p>Alluxio 在存储层和计算层加入一层抽象(统一的数据编排层),为数据分析和 AI 提供统一的数据访问接口,为数据的管理、迁移、缓存、缓存管理提供支持。</p>\n<p><img src=\"https://dev-media.amazoncloud.cn/d88be3b36ad44a6494700ab53d70e673_05d328e3e6ee9b6bd4d24e98b03c9c36.png\" alt=\"05d328e3e6ee9b6bd4d24e98b03c9c36.png\" /></p>\n<p><strong>统一的数据编排层</strong></p>\n<p>Alluxio 统一数据编排层将存储和计算分离,隐藏存储细节,降低了计算端的运维难度。<br />\nAlluxio 支持多种底层存储如 HDFS , NFS , Ceph , S3 , Google Cloud 并将多个底层存储系统通过挂载形成文件系统树,提供统一的数据视图,用户无需关注底层存储细节,通过 Alluxio 统一的数据访问接口使用数据即可。</p>\n<p><img src=\"https://dev-media.amazoncloud.cn/a8bcc2451957498ebd54df6cdecad5d5_94a675e581d2102261dea99bfdccfa90.png\" alt=\"94a675e581d2102261dea99bfdccfa90.png\" /></p>\n<p>在 presto 中使用 Alluxio , 只需将 HDFS 路径更改为相应 Alluxio 路径(商业版甚至可自动完成这一步),然后用 SQL 即可照常读取表格。Spark 读写及 Spark RDD 在 Alluxio 中的使用也是如此,除了通过 Alluxio 统一接口访问数据外,应用端代码无需做出任何改动。</p>\n<p>Alluxio 的系统架构见下图。分为 Alluxio Client, Master, Worker 节点, Alluxio Worker 节点根据数据冷、热自动分配数据缓存(RAM/SSD/HDD),使用缓存提升数据访问性能, Alluxio 的底层支持挂载多种存储。</p>\n<p><img src=\"https://dev-media.amazoncloud.cn/75f42dacc0674820b55849cb5acccf0e_0daa13f33f833f3635f446a722b5c064.png\" alt=\"0daa13f33f833f3635f446a722b5c064.png\" /></p>\n<p><strong>高效的数据访问</strong><br />\nAlluxio 将应用的热、温、冷数据对应内存、 SDD, HDD 不同缓存类型,自动动态调整对缓存资源的使用,当底层数据发生变动时, Alluxio master 与底层存储同步,更新 Alluxio 中的元数据,而缓存的同步过程将在下一次数据请求时延迟发生。</p>\n<p><img src=\"https://dev-media.amazoncloud.cn/b47f03da773b44bdb18861fe207cafc1_caceb0b723df3256fb81adb7bbb7c76a.png\" alt=\"caceb0b723df3256fb81adb7bbb7c76a.png\" /></p>\n<p><img src=\"https://dev-media.amazoncloud.cn/a4523eb5050d4fbda3140655f103566f_fa02bf8cb3a191d5a634241459db95c7.png\" alt=\"fa02bf8cb3a191d5a634241459db95c7.png\" /></p>\n<p>Alluxio 实现了对异步读写的优化,例如当应用首次读取某 1M 数据时,先从存储中读取这 1M 数据返回给应用,接着 Alluxio 缓存这 1M 数据附近的 64M 数据,以便下次高效读取数据。在应用写入数据时, Alluxio 将应用数据写入多个缓存副本,给应用写入完成的反馈,之后再将缓存数据持久化进底层存储。</p>\n<p><img src=\"https://dev-media.amazoncloud.cn/91b8de8f960144a591defa2e09306342_5180b51ca5fefa8f2395b84d624b8c98.png\" alt=\"5180b51ca5fefa8f2395b84d624b8c98.png\" /></p>\n<p><strong>便捷的数据管理</strong></p>\n<p>在数据管理方面 Alluxio 支持将多个底层存储挂载到同一个路径下,用户看到一个统一的视图,无需关注底层存储。当 HDFS 集群的存储规模有限时, Alluxio 将超过7天的冷数据挪入 S3 , 腾出空间放置热数据,节约 HDFS 资源。</p>\n<p><img src=\"https://dev-media.amazoncloud.cn/f20a545f23c4435497d3dfbc3aec5c5e_6b7b14b9a65a52d6b9109692b940c1f9.png\" alt=\"6b7b14b9a65a52d6b9109692b940c1f9.png\" /></p>\n<h4><a id=\"_76\"></a><strong>异构环境的支持</strong></h4>\n<p>Alluxio 将数据向计算移动,数据服务对于计算集群相当于本地数据,实现了存算分离,当弹性增加计算资源时,只需在新增服务器上安装 Alluxio , 无需创建数据副本,在计算集群服务器上的数据随着集群的缩减自动销毁。计算端的数据缓存节约了集群间网络开销,减轻了存储集群压力。</p>\n<p><img src=\"https://dev-media.amazoncloud.cn/62d49101fb8d4e8e95c93e615d9ae237_4c6ea3d69a8ec478b79b95cbb17a7dd0.png\" alt=\"4c6ea3d69a8ec478b79b95cbb17a7dd0.png\" /></p>\n<h4><a id=\"Part4Alluxio__81\"></a><strong>Part4:Alluxio 的经典客户案例</strong></h4>\n<p>客户案例 A : 在单一云中进行大规模数据分析<br />\n问题:如何在低性能下削减开销?<br />\n解决方案:Alluxio 通过缓存加速对 S3 的访问,节省 S3 存储开销。</p>\n<p>客户案例 B : 跨数据中心的 BI 及大数据分析<br />\n问题:存储集群和计算集群分别部署在不同数据中心,计算资源不足。<br />\n解决方案:在计算集群上部署 Alluxio , 通过分布式缓存技术提升数据分析性能。</p>\n<p>客户案例 C : 所有数据访问皆依靠 Alluxio 数据编排平台<br />\n问题:多个数据孤岛导致效率低下和额外开销。<br />\n解决方案:Alluxio 保障了数据视图与底层命名空间一致性,提供基于多个存储的统一视图,统一了数据孤岛,实现稳定高效数据分析,减少每次查询开销。</p>\n<p>客户案例 D : 构建基于公有云的跨地域虚拟数据湖<br />\n问题:不同品牌在亚马逊云科技不同区域进行数据导入,形成数据孤岛,手动复制数据执行效率低下,网络出口代价高昂。<br />\n解决方案:通过 Alluxio “零拷贝”构建跨地域虚拟数据湖为多种计算引擎提供数据访问服务。</p>\n<h3><a id=\"_100\"></a><strong>千亿级向量的管理与检索技术实践</strong></h3>\n<p><img src=\"https://dev-media.amazoncloud.cn/2c55b765336b4e58ae233ed40473b913_image.png\" alt=\"image.png\" /></p>\n<p><strong>讲师介绍:</strong><br />\n目前在 Zilliz 负责 Milvus 开源产品的技术管理和社区维护。他曾在 RSVP.ai 担任技术 VP , 负责打造多款在全球百强企业落地的 AI SaaS 产品。此前他先后在微软中国、谷歌美国和谷歌加拿大就职。高雨辰拥有滑铁卢大学计算机系硕士学位。</p>\n<p><strong>分享内容:</strong><br />\n本次分享分为四个部分,讲师首先介绍了深度学习与 Embedding , 接着介绍了向量数据库,然后介绍了分布式向量数据库 Milvus2.0 , 最后分享了向量数据库的产品生态。</p>\n<h4><a id=\"Part1__Embedding_109\"></a><strong>Part1: 深度学习与 Embedding</strong></h4>\n<p>高老师首先形象描述了非结构化数据的快速增长。引用到了一组数据,宇宙中有约700亿亿(10的16次方)颗恒星,而到2025年人类拥有的数据量预计将达到 180ZB (10的21次方),其中超过80%为图片、文本、音频、视频、蛋白质结构等非结构化数据,并随大数据发展其比重日益增大。随着 5G 移动互联网时代的到来,短视频门槛越来越低,数据爆炸成为时代的一个趋势。</p>\n<p><img src=\"https://dev-media.amazoncloud.cn/8fe81d2c92f84ff4ae3ef365fc79b0a3_faa98a1f9090eff7a5862e971bf833e4.png\" alt=\"faa98a1f9090eff7a5862e971bf833e4.png\" /></p>\n<p>面对天文数字级别的非结构化数据,通过深度学习及 Embedding 技术分析非结构化数据取得了良好效果。</p>\n<p>Embedding 是一项将高维向量转化为低维特征向量同时保留大部分语义特征的技术。高老师以电影推荐场景为例对 Embedding 进行形象化说明。我们可将影片按一维 children 到 adult 进行排放,而当一维不足以描述影片特征时,我们可将其扩展到二维,如下图。</p>\n<p><img src=\"https://dev-media.amazoncloud.cn/a5d894ebabe44f2a8e988ffd867ca48a_4bb8a949cb0c025d10a439f54c3b76a9.png\" alt=\"4bb8a949cb0c025d10a439f54c3b76a9.png\" /></p>\n<p>而在实际场景中,影片的特征向量往往上千、上万维,如此高的纬度使得存储成本、运算速度均受到影响。通过深度学习和 Embedding 技术,将高维输入向量投射为三维 Embedding , 同时保留语义信息,向量空间距离越相近,代表语义越相似。</p>\n<p><img src=\"https://dev-media.amazoncloud.cn/fde1e781da3b49c9adc494eda39f80ff_50542ca64bf618015032c986b3009d4f.png\" alt=\"50542ca64bf618015032c986b3009d4f.png\" /></p>\n<p>Embedding 的应用场景有以下:</p>\n<ul>\n<li>推荐系统</li>\n<li>计算机视觉类应用,如以图搜图</li>\n<li>自然语言处理类应用,如问答系统和文本搜索</li>\n<li>搜索相似音频、歌曲</li>\n<li>蛋白质序列分析,蛋白质结构预测</li>\n</ul>\n<h4><a id=\"Part2_131\"></a><strong>Part2:向量数据库简介</strong></h4>\n<p>向量索引与向量检索采用 Approximate nearest neighbor (ANN) 算法,已实现的向量检索引擎有 HNSW , ScaNN , DiskANN 等,它们各有优势,有的召回率高,有的检索速度快,有的内存或磁盘占用空间小。高老师对 IVF_Flat 和 HNSW 两种向量检索引擎进行了展开介绍。</p>\n<p>在17000个向量中搜索上传图片向量的最相近向量,若逐个比较需要17000次。</p>\n<ul>\n<li>IVF_Flat-Search 将17000个向量按向量距离远近划分成256个桶,将上传图片向量与256个桶的中心向量进行比较,从中挑出8个 cluster, 比较次数为256次。再将上传图片向量与8个 cluster 里的向量进行比较,比较次数为742次。这样就将比较次数从17000次降低到998次, IVF_Flat-Search 的优点是召回率高。</li>\n</ul>\n<p><img src=\"https://dev-media.amazoncloud.cn/d319baa9602a495ba9fa40f38b74105d_224dff86e529913674565df90bab8306.png\" alt=\"224dff86e529913674565df90bab8306.png\" /></p>\n<ul>\n<li>HNSW-Search 将17000个向量进行分层,每层为连通图,上层点少,越往下层点越多。比较时从最上层出发,每一层向目标向量逼近,相似度不断提高。比较次数从17000次降低到170次,实现了至少100倍以上优化。<br />\n<img src=\"https://dev-media.amazoncloud.cn/77030935cb504fd190299f170a294584_6daaebd3ff404f3519e48aa17bc98975.png\" alt=\"6daaebd3ff404f3519e48aa17bc98975.png\" /></li>\n</ul>\n<p>那么这些向量检索引擎能满足用户的终端需求吗?实际上,这些向量检索算法库,相较于工业界的生产环境还有相当大的距离,使用者需考虑如何进行增删改查、导入导出、扩展、高可用、抗灾、可见性、用户友好性等问题。正如 Elasticsearch 将 Lucene 进行产品化般, Milvus 使用市面上最优秀的开源向量检索引擎为算法内核,打造向量数据库产品,目前在 Github 上拥有11000多颗 star , 对向量检索引擎进行了产品化,以更好满足工业生产需求。</p>\n<p><img src=\"https://dev-media.amazoncloud.cn/c1c861752ad14b00a0a34f54d0990eb9_3bd6c60a651b5301f8f43cf7e706d543.png\" alt=\"3bd6c60a651b5301f8f43cf7e706d543.png\" /></p>\n<h4><a id=\"Part3_Milvus20_147\"></a><strong>Part3:介绍分布式向量数据库 Milvus2.0</strong></h4>\n<p>高老师介绍了 Milvus 的设计理念:表和日志都能完整体现数据,就如同流和批为数据处理的两种方式, Milvus 是基于日志系统的分布式数据库,本着日志即数据的理念,日志的持久化即代表数据的持久化, Milvus 通过 Kafka , Pulsar 等组件保证日志的存储与持久化,具有无状态、架构轻、降低设计复杂度等优势。Milvus 架构图如下。</p>\n<p><img src=\"https://dev-media.amazoncloud.cn/044b8809c019467daaf72e0e1ff22629_ab0a5b293121285aac1a308cf2afbc16.jpg\" alt=\"ab0a5b293121285aac1a308cf2afbc16.jpg\" /></p>\n<h4><a id=\"Part4_153\"></a><strong>Part4:向量数据库的产品生态</strong></h4>\n<p>高老师最后介绍了向量数据库的周边生态,包括向量数据库 GUI 工具 Attu, 向量可视化工具 Feder, X2Vector 工具 Towhee。</p>\n<p><img src=\"https://dev-media.amazoncloud.cn/f39e5cf40fbe482387d63f0a24a00645_a4e8d4755229c6349b6b774415fabe15.png\" alt=\"a4e8d4755229c6349b6b774415fabe15.png\" /></p>\n<p><img src=\"https://dev-media.amazoncloud.cn/07fa1931cd4748f4becbff20beb23ca3_7b6816b2ed707cdb3bab827e2ea04002.png\" alt=\"7b6816b2ed707cdb3bab827e2ea04002.png\" /></p>\n<h4><a id=\"QA_160\"></a><strong>Q&A</strong></h4>\n<p>如果想要上手 Milvus 这个工具的话,可以从哪里开始入手?<br />\n答:Github Milvus 项目 <a href=\"https://github.com/milvus-io/milvus\" target=\"_blank\">https://github.com/milvus-io/milvus</a> 有详细的使用说明,对入门上手友好。此外还可以参考我们的 Bootcamp 项目和 Towhee 等周边生态。</p>\n<p>Milvus2.0 相比1.0有哪些优势?<br />\n答:Milvus 1.0 提供了向量数据库的单机版方案,随着近些年数据量的爆炸式增长, Milvus 1.0 用户数面临的数据量也在急剧上升, Milvus 2.0 由1.0的单机向分布式演变,以适应用户的需求。</p>\n<p>高老师的团队还在招人吗?加入团队需要什么能力?<br />\n答:需要了解分布式技术和数据库底层技术,如果有一些 AI 经验也是加分项。Milvus 团队分为内核算法研究团队,向量数据库团队以及云原生平台团队。</p>\n<h3><a id=\"_171\"></a><strong>下一代云上分布式系统</strong></h3>\n<p><img src=\"https://dev-media.amazoncloud.cn/404cf8bbd4bc427888a9a6486c97446c_image.png\" alt=\"image.png\" /></p>\n<p><strong>讲师介绍:</strong><br />\n目前在 Airwallex 负责高可靠低延时的支付系统事务引擎的研发工作。他先后就职于谷歌、 eBay , 担任大数据后端工程师。工作之余,单栋热衷于开源,是上海 Linux 开发者社区的 maintainer.</p>\n<p><strong>分享内容:</strong><br />\n本次介绍分为三个部分,讲师首先介绍了云时代分布式系统的需求背景及分布式系统的特征,然后回顾过去二十年分布式系统在互联网业界的发展,最后介绍了 Airwallex 分布式系统的实践。</p>\n<h4><a id=\"Part1_181\"></a><strong>Part1:云时代分布式系统的需求背景及特征</strong></h4>\n<p>随着云时代的到来,业务越来越大,系统越来越复杂,对每个子系统可靠性的要求越来越高,单机可靠性无法保证的问题越来越突出,我们需要硬件上的按需灵活配置和低成本。</p>\n<p><img src=\"https://dev-media.amazoncloud.cn/c9a1a3f7f1a84e18adccd77ff448e664_f6ebbb21697cd8ff1ca5a291151029c8.png\" alt=\"f6ebbb21697cd8ff1ca5a291151029c8.png\" /></p>\n<p>今天我们讨论的分布式系统,应当突破单机的可靠性瓶颈,保障足够可靠性,实现更大规模的分布式系统,进一步提升系统容量,完成更复杂任务。</p>\n<p><img src=\"https://dev-media.amazoncloud.cn/169aa7aacded4bb1bd1de17eb06087df_5352829ce9cd4231e3493fb067ceb6eb.png\" alt=\"5352829ce9cd4231e3493fb067ceb6eb.png\" /></p>\n<h4><a id=\"Part2_189\"></a><strong>Part2:过去二十年分布式系统在互联网业界的发展</strong></h4>\n<p>单老师介绍了云上分布式系统的理论研究。</p>\n<p><img src=\"https://dev-media.amazoncloud.cn/a87bf674b3f145c39d0ef4915bbee1d7_d64cc3529095de6d730d76389fc5c657.png\" alt=\"d64cc3529095de6d730d76389fc5c657.png\" /></p>\n<p>然后介绍了现有云上分布式核心系统包括:</p>\n<ul>\n<li><strong>Etcd</strong> : 分布式 KV 式锁服务,这是较为早期和传统的解决问题方式,可靠性较弱。</li>\n<li><strong>TIDB</strong>: 分布式关系向数据库系统</li>\n<li><strong>Temporal</strong> : 分布式业务流引擎</li>\n</ul>\n<p><img src=\"https://dev-media.amazoncloud.cn/14aac719bed2486b9f5fd72462bb7346_b7ef1ab01a6947db00d1077fd386a563.png\" alt=\"b7ef1ab01a6947db00d1077fd386a563.png\" /></p>\n<h4><a id=\"Part3Airwallex__202\"></a><strong>Part3:Airwallex 分布式系统的实践</strong></h4>\n<p>Airwallex 对分布式系统的需求:像 Etcd 一样轻量,不需要 TiDB 一样的通用,可以完成一部分 Temporal 的功能。</p>\n<p><img src=\"https://dev-media.amazoncloud.cn/cf9f7be3a1274146965eb38e029bf7f2_42ba10b755bcf18d7b4a6d1f02f8524c.png\" alt=\"42ba10b755bcf18d7b4a6d1f02f8524c.png\" /></p>\n<p>基于需求定义了 Airwallex 共识基础开发框架:</p>\n<ul>\n<li>对于有强一致保证下的低延迟需求系统,并不只有 Workflow 这一个使用场景。</li>\n<li>现有市面上的 Consensus library 对于二次开发者都不是很友好。</li>\n<li>基于分布式日志/轻量化内嵌 MQ 的共识 App 快速开发。</li>\n</ul>\n<p>单老师接着具体介绍了低延迟分布式日志/轻量化 MQ :</p>\n<ul>\n<li>整体接口非常接近一个 Channel , 有在 send() 之后通过 persist 才会被 recv() 函数获取。</li>\n<li>有一个 leader election 接口,来检查当前 leader 。</li>\n<li>类似的,但是倾向于高吞吐的解决方案</li>\n</ul>\n<p>最后介绍了 MQ 接口相比 KV 接口的优势:</p>\n<ul>\n<li>更灵活,方便二次开发人员实现各种功能。</li>\n<li>更贴近 consensus 的本质, latency 更低。</li>\n</ul>\n<h3><a id=\"_User_Group__224\"></a><strong>亚马逊云科技 User Group 期待你的加入!</strong></h3>\n<p>感谢本期活动的各位合作伙伴,期待参加本场 Meetup 的讲师、开发者和志愿者们,也欢迎云上持续关注的朋友们!欲知更多信息或活动预告,请持续关注微信公众号【<strong>User Group</strong>】</p>\n<h4><a id=\"_227\"></a><strong>社区介绍</strong></h4>\n<p>亚马逊云科技 User Group 开发者社区是一个为开发者们提供彼此学习、分享技术实践、培训进阶等活动的技术交流分享社区。</p>\n<h4><a id=\"_231\"></a><strong>持续招募</strong></h4>\n<p>我们正在招募讲师和和志愿者,如果你对开源社区分享与共建有兴趣,并有足够的空闲时间,愿意广交志同道合的朋友,欢迎加入我们!</p>\n<p>加入方式:公众号后台回复“<strong>讲师</strong>”或“<strong>志愿者</strong>”,填写报名表单即可!</p>\n<p><strong>微信交流群</strong><br />\n关注公众号【User Group】<br />\n后台即可获得各社区群二维码</p>\n<p>欢迎与我们共赴一场技术之约!</p>\n<p><a href=\"https://www.slidestalk.com/w/1028\" target=\"_blank\">阅读原文</a></p>\n"}