云计算行业应用—大数据@音视频(二)

举报
图森破 发表于 2021/06/29 09:37:13 2021/06/29
【摘要】         在上节云计算行业应用—大数据@音视频(一)中,我们探讨了随着企业业务发展和产生消费数据量级的增加,大数据技术不断打破原有极限,相关技术不断演进,新的大数据架构层出不穷。本节我们将深入大数据行业应用,从上节讨论到的数据湖出发,结合音视频行业相关业务场景和相关大数据架构,更进一步的理解大数据技术和华为云相关服务的应用。1. 数据湖基本架构        数据湖是伴随企业业余和数据...

        在上节云计算行业应用—大数据@音视频(一)中,我们探讨了随着企业业务发展和产生消费数据量级的增加,大数据技术不断打破原有极限,相关技术不断演进,新的大数据架构层出不穷。本节我们将深入大数据行业应用,从上节讨论到的数据湖出发,结合音视频行业相关业务场景和相关大数据架构,更进一步的理解大数据技术和华为云相关服务的应用。

1. 数据湖基本架构

        数据湖是伴随企业业务和数据量成长起来的新一代的大数据基础设施,我们先从企业实际业务数据流出发,来进一步探索数据湖的架构。

音视频行业大数据业务流程

        上图所示的是音视频行业比较常见的数据流程和大数据架构以及与之相配套的数据处理基础设施。

        从数据流向上来看,业务侧产生的日志信息(点击、浏览、购买、收藏、音视频播放、评论等数据)通过埋点等操作收集到日志系统,再利用日志数据采集、聚合和传输系统传入分布式消息队列中间件进行后续的数据处理。分布式消息队列中间件具备高效可靠的消息异步传递机制,能够将收集到的日志数据传递给后端不同的系统,这也说明了数据湖需要丰富且强大的数据接入能力。这个业务实例中,数据被分别传送到了批量处理系统和实时处理系统进行批、流处理。可以看到,以对象存储服务构建的数据湖不仅存储了经过批、流处理的结构化数据,还存储了原始日志数据用于如机器学习等数据处理系统的使用。同时,流处理因为对实时性的要求,数据在接收过程中可能会存在一定的质量问题,此时可以利用批处理中沉淀的历史规范数据对流处理中的数据进行验证、补全等操作。

        此外,经过良好设计的schema和可共享的元数据对数据湖中数据的灵活性、可管理性及可追溯性都至关重要,这也直接影响了企业利用源源不断的数据构建数据仓库以及构建面向某一特定业务的数据集市的质量和能力。

        除了强大的存储能力和丰富的数据处理功能,为了保证企业业务高效、安全、灵活的部署、使用,数据湖还提供了强大的数据管理能力。管理能力具体又可分为基本管理能力和扩展管理能力。基本管理能力包括对各类元数据的管理、数据访问控制、数据资产管理;扩展管理能力包括任务管理、流程编排以及与数据质量、数据治理相关的能力。任务管理和流程编排主要用来管理、编排、调度、监测在数据湖系统中处理数据的各类任务。

        针对上述音视频业务实例中所需要的数据管理、运营能力,华为云提供一站式的云原生智能数据湖运营平台DGC来提供完整的智能数据管理能力。贴合企业实际业务,提供业务定制化的批量作业开发流、作业开发、脚本开发、资源管理、算子扩展、作业编排、作业调度、事件通知、增量集成、场景化迁移等能力。帮助企业快速构建围绕云原生数据湖的从数据接入到数据分析的端到端智能数据系统,紧密贴合企业业务,消除数据孤岛,统一数据标准,加快数据变现,实现企业大数据系统的不断迭代更新。

华为云数据湖治理、运营平台

        在介绍当前热门的数据湖架构之前我们结合音视频领域大数据流程实例进行了初探,下面我们将重点探索一下LambdaKappa这两个数据处理架构,了解它们是怎么在云原生数据湖的基础上解决实时数据处理中的弹性伸缩和容灾问题,以及怎样在支持离线和实时增量更新的同时保证可扩展性。

1.1. Lambda架构

 

Lambda架构

        Lambda架构是一种能够高效处理海量数据、实时数据的数据处理技术,其高效性来源于大吞吐量、低延时以及良好的容错性。获客成本的提高对数据深度挖掘和精细化管理提出了更高的要求,为了满足如千人千面这类实时性要求高的计算场景,流式计算引擎应运而生,如StormSpark StreamingFlink等。Lambda架构的核心理念是“批流一体”,利用流处理引擎处理实时数据,预测基础模型更新内容,同时将作为“预测燃料”的不同事件存入批处理系统。为了解决系统面对的海量事件以及增量处理任务,Lambda架构将数据处理流程分为了三层:离线层(batch layer),加速层(speed layer),服务层(serving layer)。

  • 离线层

        数据流一分为二,每个数据样本都会同时发给离线层和加速层。所有进入离线层的数据流被数据湖中基于内存的数据库或NoSQL类数据库永久的存储下来,之后离线层会使用如MapReduceSpark或一些机器学习方法对数据进行处理并由此对接下来的内容进行预测。

  • 加速层

        事件溯源是指使用事件进行预测的同时实时更新存储系统,加速层会享用离线层事件溯源成果。离线层中的数据处理会涉及增量程序,MapReduce或机器学习模型的更新,模型会被加速层进一步用来处理新数据。这样,加速层借助富集过程得到的结果,保证服务层请求响应延迟处于低位;加速层也几乎只处理实时数据,计算负荷较低,延迟有保障。

  • 服务层

        从离线层得到离线视图,加速层得到准实时视图,统一送给服务层。服务层使用这些信息处理等候的查询。

        Lambda架构是准实时处理架构,既能抵御故障又具备可扩展性,在离线层和加速层的加持下,不断将新数据存入数据湖中并保证既有数据的完整性和可靠性。

Lambda架构下的音视频推荐系统

        上图展示的是音视频行业根据用户行为(浏览、观看、点击、收藏、评论、购买等),依托数据湖及Lambda架构进行千人千面音视频推荐的推荐系统架构。日志数据通过客户端的埋点进行收集并存储在数据湖中,经过清洗的数据流分别进入批、流处理系统分别进行模型的训练和基于当前模型的对于实时数据的推理预测处理,批、流处理后的数据上报给客户业务后端,其作为整体框架的服务层将推荐结果统一推送给客户端,完成客户端的推荐业务。

1.2. Kappa架构

        批、流一体的Lambda架构固然强大,但是复杂的架构和逻辑也带来了更大的编码开销和部署及迁移的成本;此外,某些企业业务针对具体场景重新离线训练一遍模型的益处不大。因此,新的架构Kappa由此诞生。

Kappa架构

        Kappa架构是在离线层对满足企业业务需求不是必须项时的一个合理选项。该架构适合实时处理不同事件,所有业务请求都能通过加速层对实时数据流的处理得到满足,大大减低了“批流分离”处理链路的研发复杂性。

        Kappa架构删除了离线层,将数据通道以消息队列如Kafka进行代替。数据依旧以流处理为主,但是全量数据存储在了数据湖,当需要进行离线分析或者改进了现有算法再次计算的时候,则将数据湖中的历史数据再次经过消息队列重新处理一次即可。

2. 湖仓一体

数据分析演进分析

        数据规模和复杂性的提高使得企业用户对数据处理分析的实时性和融合性提出了更高的要求,“湖仓一体”的发展方向开始出现,它打破了数据湖与数据仓库之间的壁垒,使割裂的数据得以融合,减少数据分析中的搬迁,实现统一的数据管理。

        传统的数据湖和数据仓库有各自的重点解决方向和局限性:

        传统数据湖主要以离线批量计算为主,因此不支持数据仓库的数据管理能力,难以提高数据质量;数据入湖时效性差,不支持实时更新,数据无法强一致性;主题建模不友好,无法直接通过历史数据拉链建模;同时交互分析通常将数据搬迁到数据仓库平台,造成分析链路长,数据冗余存储;批、流等场景融合不够,无法满足企业的海量数据诉求。

        数据仓库满足不了对于非结构化数据的分析需求;同时仓与湖之间难以互联互通,数据协同效率较低,无法支持跨平台透明访问,形成了数据孤岛;缺乏全局数据视图,不同平台接口差异和不同开发管理工具,造成用户开发使用复杂,数据分别管理维护代价高体验差。

        湖仓一体的出现试图去融合数据仓库和数据湖这两者之间的差异,通过将数仓与数据湖融合,使得存储变得更为廉价和弹性,同时数据质量得到提升,减小了数据冗余。在湖仓一体lakehouse的构建中,ETL起了非常重要的作用,它能够将未经规整的数据湖层数据转换成数仓层结构化的数据。

        华为云为企业用户提供了湖仓一体的解决方案,涵盖了分布式存储、大数据、数据仓库、数据治理、机器学习等能力。参考架构如下:

湖仓一体解决方案

数据湖架构演化

  • 数据存储层

        数据存储层基于云原生架构,通过对象存储服务OBS统一管理湖&仓,实现湖仓共享存储资源池,针对同一份元数据定义支持各种场景,提供API方便各类工具和引擎直接访问数据。

        OBS作为华为云数据湖战略底座,有4个核心点:

        提供融合的数据平面,以对象语义+文件语义沟通构建统一的数据基础底座,具备对象存储的横向扩展能力,同时支持一份数据多接口读写,使一份数据满足多种计算引擎的数据读取需求,让数据不跑路,尽量避免数据冗余,降低存储成本;

        提供满足各类非结构化数据的协议访问和客户端工具,满足公网、内网各平面数据互通,支持各类业务数据的访问;

        提供高性能的全局缓存以应对性能风暴。因为如果实现了融合的数据平面和多种协议的访问,必然会面临同一份数据高并发访问的问题。OBS构建了一个高性能的全局缓存,只要任一节点读取到了数据对象,就能够被其他节点并发访问内存,从而大大提升系统并发性能,降低磁盘IO压力;

        掌握编码容错技术(ECerasure code),以数据冗余检测替代一份数据存多份的多副本技术,以更低成本、更高技术含量为云存储池提供相同甚至更高数据可靠性。将磁盘空间利用率从三副本33%提升到80%,节省硬件成本,实现磁盘空间利用率40%提升。

湖仓一体数据底座

  • 计算引擎层

        计算引擎层把事物能力引入数据湖,通过河图引擎HetuEngine实现跨域多源统一访问,湖仓数据互通协同,数据免搬迁:

        通过CarbonDataHudi数据存储引擎实现数据实时、增量更新,数据T+0实时入湖,大幅缩短传统T+1T+2时延。引入增量处理框架,实现数据湖事物能力,支持入湖过程UpdateDelete等;

        HetuEngine支持跨源跨域统一SQL访问,用户层基于统一的标准SQL接口,对接多个数据源(HDFSHBASEDWS等),提供秒级交互式访问,满足各种统计分析、多表Join关联等,让分析建模人员数据分析更容易,降低访问门槛;

        打破数据墙,支持数据湖与数据仓库间的数据互联互通、跨平台协同计算,数据面搬迁。用户可以基于一份数据进行批、流、交互式融合分析,贴源加工、整合关联、主题加工等都在湖内,数据不出湖,分析链路短,加速业务创新。

  • 运营管理层

        运营管理层提供统一的数据开发和治理环境,具备安全管理功能,支持多引擎任务统一开发和编制,数据统一建模和质量监测,实现湖仓一致的开发治理体验。

结语

        云计算行业应用—大数据在音视频行业应用到这就告一段落了,云计算相关技术服务繁多,架构复杂,很难通过几篇文章全面展开,不过很高兴有此机会可以一个行业的一隅出发来进行探讨,希望各位读者能够指出文章的不足,多多交流探讨。

 

参考

A brief introduction to two data processing architectures Lambda and Kappa for Big DataIman Samizadeh

mp.weixin.qq.com/s/Il6vVOb84yhD2asRZJlgiw

https://mp.weixin.qq.com/s/zYab7IHbmYw6aZ06TyeJDQ

http://3ms.huawei.com/km/blogs/details/9328145

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。