离线实时一体化新能力解读| 学习笔记

本文涉及的产品
实时数仓Hologres,5000CU*H 100GB 3个月
实时计算 Flink 版,5000CU*H 3个月
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
简介: 快速学习离线实时一体化新能力解读

开发者学堂课程【云原生一体化数仓新能力解读课程离线实时一体化新能力解读】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址https://developer.aliyun.com/learning/course/1193/detail/18109


离线实时一体化新能力解读

 

内容介绍:

一、实时离线一体化概述

二、实时离线一体化优势

三、实时离线一体化产品新能力解读

四、实时离线一体产品新能力渐进计算

五、实时离线一体产品新能力物化视图

六、实时离线一体化数仓架构

七、实时离线一体化数仓数据建模

八、实时离线一体化案例场景

 

一、实时离线一体化概述


前面讲过第一代、第二代、第三代实时数仓的演进,从离线数仓发展到实时数仓到第三代的演进过程。

image.png

演进后的实时离线一体化的数仓以及一些新的能力建设,从非常复杂的一个架构演进到化繁为简的实时离线一体化架构的演进,主要在后续的应用场景里面用于海量数据的数据治理、离线分析、实时分析、数仓集市、多模分析、机器学习在线模型等场景。解决方案在适用的场景里面,主要适用于数据实时分析+离线分析、海量数据计算+分析实时性要求较高的业务,相结合的时候可以用实时离线一体化的解决方案,比如有些业务可能时效性比较低的、不需要用到实时的一些数据上的分析,那在这个过程中可以还是传统的解决方案数仓;那如果相对于我们实际应用业务场景里面,比如类似于在线告警、在线预测,我们可以理解为在总线里面没有用到离线数仓的数据和实时数据结合的时候,比如典型的FlinkHologres去做实时性比较高的实时数仓的一个解决方案。老师介绍实时离线一体化主要想侧重强调适配于离线业务和实时在线业务的综合应用场景,这样就可以解决多元、多样流量数据和业务数据的分析服务业务。

 

二、实时离线一体化优势


接下来介绍实时离线一体化的具体优势,主要分四块,讲完这个优势之后我们会拆解成优势对应到整个数仓的开发电路里面去讲具体的一些共用点、做了哪些新的能力。从数据品类来看,分为实时数据和离线数据,也就是所有数据都有做到支持,MaxCompute 最大的特点就是支持流式数据写入即可见、即可查。

image.png

1、数据写入

从数据写入的通道来看,它支持的是批量数据通道、流式数据通道和实时数据通道,以前我们针对于数据写入做的比较多的是中间插件的支持,就是从一个数据源、消息服务等把数据写入到 MC 中间,零代码开发可以用到一些MC支持的插件来做,而 Hologres 本身就有高性能写入、实时写入、更新、可查的能力,但MCHologres 相结合批量数据写入、流式数据写入、实时数据写入。

 

2、数据计算

第二部分就是数据的计算,它是多引擎的支持,第一个基于 MC-SQL,它是支持 EB量级的数据计算,在 MC 的引擎里面支持到 FlinkSparkMC-SQLHologres 多引擎,

海外竞品将数据写入到数仓之后分五批处理,流式处理;现在 MC 支持的是写入进来后可以用 Spark 流式处理,也可以用 SQL 去处理,还可以用批量处理,后面老师要介绍的是介于批处理和流处理之间的,多引擎支持下就是实时计算延时是到秒级乃至毫秒级,单个作业的吞吐量可达到百万级。

 

3MaxComputeHologres 互通

第三部分主要是讲基于实时离线一体化之后的数仓的互通,也就是从离线数仓到实时数仓中间数据的互通,现在 MaxCompute Hologres 是做到了存储互访打通,支持外表、直读;可以直读 MC 的数据,从 MC 到  Hologres 现在已经上线的功能是通过外表去读取,其它的功能很快也会上线。下一个优点就相当于同一份数据可以用一个实时引擎、一个离线引擎去做处理,可以实现移动数据在不移动的情况页面,也就是在离线数据处理完可以在实时数仓去做汇总,或者从实时数仓读实时数据结合离线数据去做融合的数据计算和分析。

 

4、分析应用

第四部分就是分析应用,分析服务一体化。这里面有一个比较大的特点,就是MC本身支持的数据交互查询是秒级别的,因为 MC 提供的查询加速的能力。在海外一些竞品里面,单产品数仓里也是提供查询加速的,它满足的场景就是秒级或者延时性高一点的秒级别,亚秒级的能力和毫秒级的能力可以分析应用对接到 Hologres,支持海量数据秒级的即席查询。

 

三、实时离线一体化产品新能力解读


image.png

下面根据实时离线一体化产品的优点,来拆分成整个数仓开发里面对应的产品能力。在数仓的开发过程中,可以看从数据源到数据写入,再到最新系统的业务聚合以及到数据分析的服务,这些服务之后又接了AI报表,实际上就是我们在数据分析服务或者一些在线应用场景里面,有第三方分析产品应用的服务端,已经有AI产品的在线分析服务。此时我们可以直接对接到数据分析服务的接口,也可以对接到MC 数仓里面的海量数据等,可以根据自己的应用场景去定。

接下来讲已经开发支持的产品能力。在数据源这一层做出了第三方的一些插件,比如 Kafka ConnectorLogstash ConnectorFlink Connector

在数据写入层就是批量数据通道,批量数据通道以及流式数据通道很快会提供基于数据写入的多享资源,相当于商业化。目前我们学过的计算资源是公共集群、免费提供的,对于大业务量需求的时候可能会有延时出现,那么后续会发布多享资源的涉外来满足大业务量的需求,即将也会发布 upsert 的能力,我们可以在业务库里面,实时把数据同步更新到 MC

第三部分数据清洗就是在我们使用MC的过程当中,支持了 updatadelete 一些能力。

在这个过程中,也用了聚合这层做了物化视图和渐进计算。

在数据分析&服务这层,MC 相应的能力就是 MCQA 付费无感支持,以及已经开发交涉的过程中 MCQA 预付费的、独享资源的查询等能力。后续就是相对于数据服务的对接以及第三方的应用对接,如果用户是预付费用户,可以基于已购资源去切分出对应的资源组;作为独立的、用于产业加速的资源来满足包点包月用户,在MC 的数仓下面去做数据分析、服务,另外如果我们对付费服务有更高的、交互式的详细要求,对接到 Hologres 也可以和 Hologres 对接是通过 MC Holo 的外表支持以及 Holo  MC 的能力支持来实现数据的互通。后续的一些规划领域我们会做数据源的打通、表元素的打通以及即将要发布的 MC Holo 直读能力的功能上线。

另外在上层报表的分析过程中,也做了生态的一些介入;然后在线服务,比如说有一些AI的在线模型、在线训练,会直接对接到 MC 数仓的数据去做在线的试验。

这些层就包括了已发布功能和待发布功能,蓝色部分是待发布的功能,绿色部分是规划功能。

 

四、实时离线一体化产品新能力渐进计算


image.png

相对已发布、待发布和规划功能,接下来讲的是实时离线一体化产品新能力渐进计算。渐进计算是一种能够通过处理增量数据并维护中间状态来完成计算的产品能力。如上图有一张交易表,这个交易表是在某个日期里面,比如12点、1点、2点的时间点里面它有很多的交易数据,也就是说通过渐进计算,我们可以把每个小时汇总的交易订单金额和交易订单完成一次小型的统计,会汇总每一个小时然后生成一个单独文件,还有它会适当的把我们的交易明细数据完成轻度的汇总,查的时候就不需要再去明细数据表里面统计一个小时或者近几个小时的数据,可以通过渐进计算完成轻度汇总之后,直接去查已经汇总好的、每个小时之间统计的汇总数据。

这个例子告诉我们:交易数据比如这个交易订单数据也可以近实时或者实时写入到MC 的,还可以实时写入到 Hologres 的,可以根据我们的业务需要来做,比如写到 Hologres,相当于从订单数据到 Hologres 里面,我们可以在流式里面做实时计算去完成它的小时级别的窗口统计数据,去做轻度汇总;如果选择MC里面,我们可以通过渐进计算去完成它小时级别的轻度汇总统计,这个过程中我们做到了实时数据的实时写入,到近实时的轻度汇总、到上层的一些聚合以及直接对数据分析服务去提供数据各种查询。

讲完了渐进计算的用法和概念,再看一下它用户的优势,实际上就是可以根据数据按窗口周期存储以及对查询近期的数据可以减少计算、提高效率,也就是我们每次去查的时候,不要去查明细表而是查它的轻度汇总,这样无论是速度还是体量都会得到提升,以及在后续的连接性的链路流程,比如我们从交易订单数据的数据,两个代号,然后通过流式写入到 MC,然后在 MC 完成渐进计算的轻度汇总以及到后续数据的消费,这个链路是实时的。上面从 Flink Hologres 肯定是实用性非常高的,但如果实用性要求没有那么高,就可以走渐进计算的产品能力。

 

五、实时离线一体产品新能力物化视图


image.png


新能力里面的物化视图,物化视图是包括一个查询结果的数据库对象,它是远程数据的本地副本。它具体的优势,先看一个例子,如图是订单表保存的明细记录以及保存组织机构的数据,比如我们去查数据汇总的时候,肯定是先把两张表的数据去做关联,我们可以看一下用户的代码示例,代码示例会写他的名字,汇总订单金额,然后去查两张表的关联。

使用物化视图我们可以把汇总表实现成一个视图表,视图表相当于取代了用户去写汇总统计的脚本,查的时候就直接查这个视图表,就是单表的去查已经统计分析的汇总性的数据。这个过程中,我们用的视图是根据可以支持的用户去设置数据更新的频率,最快的是五分钟。用途与优势就是我们在整个计算的环节里面,比如我们订单表数据实时的写入,它通过物化视图每五分钟更新,可以实现我们用数据的近实时来实现它的汇总统计查询。如果这条链路是在 Hologres ,就相当于它可以走实时数仓的一条链路去做,那 MC 提供的能力就是满足于当前客户的数据,实时性要求也高但不是实时的,近五分钟、十分钟的数据可以满足再来 MC 里面,通过物化视图来做到数据汇总。

实际上在链路里面也可以叠加成流式数据或者批量数据写入,之后可以在 MC 数仓里面可以通过渐进计算、物化视图来完成数据的一些汇总。那么针对于各种之后的数据我们提供了数据服务,在 MC 的基础上面可以通过传递加速来提供秒级别的数据分析,如果对销售查询相应的反馈时间有延时性要求,或者对延时性要求比较高的,此时可以把收到的汇总数据,在做数据汇总时把它汇总到 Hologres 这一层,通过 Hologres 来提供对外的数据分析服务能力。

 

六、实时离线一体化数仓架构


image.png


从架构来看,化繁为简之后的一个架构就是从左到右是跟 Hub 一个数据总线,可以通过数据总线来把数据直接写到 MC 离线数仓,也可以通过 DataHub 把数据写入到 Hologres,中间可以通过 Flink 去做实时数据的消费。它也有两条链路,如果有业务要求,对时间要求非常高,那相当于走实时数仓的链路,就是在 Hub 的数据,然后通过 Flink 来完成实时数据的计算,写入到Hologres来提供数据产品实时大屏的应用。另外一个就是对项目上面的数据实时性要求不高的,也可以在 DataHub 那边数据直接写入到 MaxCompute

还有就是在实时计算Flink版去消费实在线数据的时候,也有就是有一部分的指标需要呈现到离线数仓,用离线数仓的其它数据来做综合计算,然后此时可以通过Holo来读我们指标缺口的一些数据。这个时候通过 Hologres 来提供在线数据分析服务的能力,但是它底层的数据也可以是 Holo 的、也可以是 MC 的,中间是打通了HoloMaxCompute 直读的能力。也有 MC-Hologres 外表实时,那它的直读能力也正在减。

在这个架构里面主要体现的是离线实时一体化,离线数仓和实时数仓也可以去跟数据湖的数据互通的。还有一个场景就是在线模型训练,数据从 MC 沉淀到数据湖,或者直接把数据沉淀到 MC、直接沉淀到数据湖。另外强调的是基于现在化繁为简的实时离线一体化的架构,我们提供了那三个维度的服务能力:第一个是实时链路,实时链路是通过 Flink 比如去消费调好的数据,实时写入到 Hologres 来提供服务;第二个是低延时,那就是数据通过分开的或者通过总线写入到 MaxCompute 然后再应用物化视图进行预处理来提供业务的激活,然后用查询加速来提供秒级别的分析服务能力,这个过程中可以通过渐进计算或者物化视图,它消除了对作业管理的环节,也就是简化了数据变成一个新的汇总,在计算过程当中的一些处理,可以自动完成它的汇总,不需要在定时的去调动作业来达到这个效果。

另外就是 MaxCompute 的一个传统能力,就是我们整个数仓针对于这种数据源在已经大量计算、大量作业的情况下,基于 MC 传统的一些批处理上面来做数仓的数据分析处理。

 

七、实时离线一体化数仓数据建模


image.png

电信运营商流量采集业务的分析。如图是通过一个雪花模型来演示一下数仓常用的建模方法。这个例子里面突出来的是实事表,就是运营商的流量表,它是一个实时数据的表。就这个数据表关联的一些维度表,跟实事表来构建实时的流量数据的雪花模型。那数据模型做完之后数仓里面的数据分层怎么做:比如 MaxCompute Hologres 怎么来结合、上去应用对接 Hologres 怎么来做数据分层?

image.png

ads 是采集的具体的流量表数据,然后同步到MC或者直接写到 Hologres 。假设我们的数据是写到了 MC ,为什么会写到 MC ,可能要根据其它的历史数据来做一些汇总的分析,包括查一个沉积的规则事件表,那在 dwd 离线数据这一层,直接针对于清洗完之后的数据来形成采集流入的数据,已经采集机规则事件的数据。这个汇总的过程中,先讲一下标准的场景,如果是一个完善的、就是刚刚说的离线跟实时数据的结合的场景,我们可以把dws的数据汇总到 Hologres ;汇总到 Hologres 有两种,第一种是在 MC,这个汇总表可以用一个分区表来实现,可以把流量表里面某一个时间或者某一个事项规则相符的数据,在中区表里面去做新的汇总,那相对于汇总表再去完成采集规则事件的事件统计,包括流量数据平均值的一些统计分析。此图是想简单演示一下我们在实时离线一体化的群体架构里面怎么去做数据建模,怎么去做数仓的分层。

 

八、实时离线一体化案例场景


image.png

接下来的场景去讲一下实时数据和离线数据的融合计算。如图从左到右可以看是实时摄入,后面有实时订单的一个表,然后通过实时计算去达到实时订单数据的指标计算来写入到 Hologres 。从下往上看是通过 MaxCompute 去做离线的用户商家的累计汇总,这个累计汇总,我们在向 Holo 里面去写的时候,其实在 Holo 表里面形成了一个商家用户的汇总表。这个汇总表如果从分区表来看,可以把它理解成离线的数据是在日期维度的,比如昨天或者前天这种日期维度的T+1的汇总,那么当天的数据说明是从知识链路写过来的,它写出来的是当天的一个分区,实际上就是在 Holo 汇总里面它可以是两种处理方式。最终是通过 Holo 对上层业务提供数据服务分析能力。


image.png


看一个融合分析的场景,最后的例子是基于车联网离线标准的实时离线一体的场景。从左往右看是数据的来源,比如车端的数据、CAN 总线、用户行为、车载TBox,通过 DataHub 数据总线从左往右分别写入离线数仓,以及通过数据计算去消费它的实时数据,写到 HologresHologres MC 中间又是互通的,此时就可以用数据服务这方面去提供在线的分析服务,同时也可以从 Holo 里面去读取离线产生的批处理的计算结果,就是T+1的数据。也有比如类似于每五分钟更新的物化视图或者渐进计算数仓的汇总的表数据,同时离线数仓也去处理基于用户中心以及主机厂系统、还有一些归档数据,这些数据相当于是在 MC 处理完的一些业务或者T+1的一些数据。

数据处理完之后,我们有数据归档到 OSS;这些数据在数据服务端提供标准的自动驾驶的AI机器学习,它是基于 OSS 方面的。其实这个链路也可以直接访问到MC,此场景也是标准的,有用到离线,也有用到实时数据,它是一个标准的实时离线一体化的应用产品。老师讲此场景时主要对标的是实时离线一体的场景,去适合用这个,但并不是我们找解决方案的时候一定是这个,也可以是这条链路下来,比如DataHub Flink 再到 Hologres 来提供实时数仓的在线分析服务能力;也可以是从数据源到 DataHub 再到 MC 来提供T+1或者T+加几分钟这种近实时或者离线的数据分析服务。

相关实践学习
AnalyticDB MySQL海量数据秒级分析体验
快速上手AnalyticDB MySQL,玩转SQL开发等功能!本教程介绍如何在AnalyticDB MySQL中,一键加载内置数据集,并基于自动生成的查询脚本,运行复杂查询语句,秒级生成查询结果。
阿里云云原生数据仓库AnalyticDB MySQL版 使用教程
云原生数据仓库AnalyticDB MySQL版是一种支持高并发低延时查询的新一代云原生数据仓库,高度兼容MySQL协议以及SQL:92、SQL:99、SQL:2003标准,可以对海量数据进行即时的多维分析透视和业务探索,快速构建企业云上数据仓库。 了解产品 https://www.aliyun.com/product/ApsaraDB/ads
相关文章
|
7月前
|
消息中间件 存储 NoSQL
离线与实时数据开发方案
离线与实时数据开发方案
131 0
|
4月前
|
消息中间件 监控 关系型数据库
Serverless 应用的监控与调试问题之实时离线数仓一体化常用的解决方案有什么问题
Serverless 应用的监控与调试问题之实时离线数仓一体化常用的解决方案有什么问题
|
7月前
|
数据挖掘
离线大数据分析的应用
离线大数据分析的应用
|
6月前
|
消息中间件 数据采集 关系型数据库
离线数仓(三)【业务日志采集平台搭建】(2)
离线数仓(三)【业务日志采集平台搭建】
|
6月前
|
消息中间件 前端开发 Kafka
离线数仓(二)【用户行为日志采集平台搭建】(1)
离线数仓(二)【用户行为日志采集平台搭建】
|
6月前
|
存储 消息中间件 Kafka
离线数仓(三)【业务日志采集平台搭建】(1)
离线数仓(三)【业务日志采集平台搭建】
|
6月前
|
消息中间件 存储 JSON
离线数仓(二)【用户行为日志采集平台搭建】(2)
离线数仓(二)【用户行为日志采集平台搭建】
|
7月前
|
存储 消息中间件 SQL
分钟级实时数据分析的背后——实时湖仓产品解决方案
袋鼠云在结合当前数据湖技术的基础上,建设实时湖仓平台,满足客户“快、精、准”的数据需求。本文将详细介绍实时湖仓产品解决方案,让企业能够更专注地去解决他们的业务价值。
160 0
|
存储 数据采集 安全
阿里云实时数仓的优势
阿里云实时数仓的优势
176 1
|
canal SQL 弹性计算
实时数据及离线数据上云方案
本实验通过使用CANAL、DataHub、DataWorks、MaxCompute服务,实现数据上云,解决了数据孤岛问题,同时把数据迁移到云计算平台,对后续数据的计算和应用提供了第一步开山之路。