Hologres+Flink企业级实时数仓核心能力介绍-2024实时数仓Hologres线上公开课03

本文涉及的产品
实时数仓Hologres,5000CU*H 100GB 3个月
实时计算 Flink 版,1000CU*H 3个月
云原生数据仓库AnalyticDB MySQL版,基础版 8ACU 100GB 1个月
简介: 本次分享由阿里云产品经理骆撷冬(观秋)主讲,主题为“Hologres+Flink企业级实时数仓核心能力”,是2024实时数仓Hologres线上公开课的第三期。课程详细介绍了Hologres与Flink结合搭建的企业级实时数仓的核心能力,包括解决实时数仓分层问题、基于Flink Catalog的Streaming Warehouse实践,并通过典型客户案例展示了其应用效果。

Hologres+Flink企业级实时数仓核心能力介绍-2024实时数仓Hologres线上公开课03


内容介绍:

一、Hologres+Flink企业级实时数仓核心能力

二、解决实时数仓分层问题

三、Hologres+Flink企业级实时数仓核心能力基于

四、Flink Ctalog 的Streaming Warehouse

五、实践典型客户案列

 

本次分享的主题是Hologres+Flink企业级实时数仓核心能力介绍-2024实时数仓Hologres线上公开课03,由Hologres产品经理骆撷冬(观秋)分享。

课程链接:https://developer.aliyun.com/live/254101

更多学习内容可跳转阿里云培训中心https://edu.aliyun.com/

image.png

本内容关于Hologres+Flink搭建起企业级实时数仓核心能力解读


一、Hologres+Flink企业级实时数仓核心能力

image.png

1. 简介

随着业务发展,业务对于时效性的要求在逐渐提升,各种场景都需要实施。比如春晚实时直播大屏双11gmv实时大屏、实时个性化推荐等,各种场景对数据的时效性有着非常高的要求。随着实时性要求的发展,大数据技术也开始发展出实时数仓的概念。

相比于传统的离线数仓,有明确的方法论,通过离线的定时调度来实现调度方式通过ods- dwd-dws -ads这样明确的数仓分层方式来完成,是离线数仓的搭建,但是实时数仓在业内并没有明确的方法论,实践方案多没有标准方法也没有明确的数据流转的方法论。所以业内提出了streamingwherehouse的概念,本质上是希望能够解决数据实时流动的问题,从而解决数据实时分层的问题,这是企业及实时数仓的本质。

2.传统实时数仓分层多方案

image.png

2.1基于flink+kafka实时数仓分层方案

实时数据经过flink实时处理加工后,将最终结果写入到kY6引擎中应用来查询。通过flinkkafka的反复交互,实现数据从ods到dwd到dws每一层收藏构件业务,如果需要查询中间层,需要把中间层的数据实时写到实时数仓中来供应业务使用这样的架构优势在于,数仓层次是完备的各层值级间也很清晰,整个处理链路也相对分工明确

这样的架构有多个劣势:

(1)大量的数据同步任务。资源消耗非常大,处理链路非常复杂。

(2)中间层的kafka的数据无法直接排查费用性差。如果需要中间数据可读,需把数据双写到仓中。

(3)无法做到快速响应schema动态变化,比如百色沟原表,发生了夹裂改数据类型等情况,会使整个数据链路都需要做改动

2.2定时调度数仓方

image.png

通过flink把数据源的数据实时写实数仓中形成dwd层。再通过数仓或周边工具的高频调度能力以分钟级为例来构建dws和ads层实现分钟级的数据增量更新,最终供下游使用它的优势在于成本相对flink+kafka来说更低也偏向于成熟劣势在于它增加了数仓数据处理电路的延时,整个实数仓退化成了净实数仓。并且调度层级越多,延时越大。

2.3.化视

image.png

flink负责将原表数据实时写入实时数仓中来形成dwd层,再通过实时数仓的雾化视图来加工形成bws或者ads层,最终为下游做服务。这样的架构优势在于整个数仓的处理加工的链路功能都是系统内置的,并且物化图的结果能够提供一些高QPS查和简单查询能力不足之处在于业内在实时图方面的能力成熟。对于算计各方面的支持都有限。其次,很多系统提供的基本上都是一种时效性比较差的P模式的通常无法满足持续仓对于时效性的需求。


二、解决实时数仓分层问题

1.通过Hologres+Flink来解决实时数仓分层的问题

image.png

Hologres+Flink是阿里云一站式实时入仓batchgres包含多方面的数据应用能力,olap多维分析,包括在线服务的检查能力,包括仓一体,量计算和大模型服务等。

Hologres是一款支持各种场景的一站式的实时数仓。传统实时数仓可以解决亚秒级交互式分析的能力支持行业共存的方式,可以实现高吞吐的数据实时写入更新Hologres通过兼容达摩院自研proxima向量引擎,从而实现向量进行高性能计算。同时Hologres还支持一系列高可用架构实现业务的弹性高可用以及业务的负载隔离。

2.基于Flink+Hologres的streaming warehouse 方案

image.png

数据源通过mysql或其他数据源通过flink 实时写入hologres中,形成ods层。hologres支持binlog,可以提供表的增量变化信息,来成为flink语言表,通过flink 全增量消费hologres元表,加工后再写入hologres中形成dwd层。dwd层的数据再次生成binlog的供flink消费,再次写入hologres 中,形成聚合层DWS以此最终为下游提供服务。

这样的架构优势有:

1解决传统中间层kafka数据不易查不易更新、不易修正这些问题hologres是一款实时数据,仓库数据写入即可查。不管聚合层dws层还是中间ods dwd层,每一层都实时可查,实时更新。

2中间层,不仅可以供flink消费,还可以供下游直接提供服务,比如业务直接查询oddst或dwd做olap分析,甚至是做在线服务等场景都可以直接实现。

(3)整个链路的数据都是复用的模型统一,架构简化,一份存储一份引擎

hologres与Flink结合形成streaming warehouse方案得益于hologres与Flink多年以来的深度集成主要分四个方面。

image.png

(1)hologres可以作为flink的原表因为hologres支持生成binlog类似于传统数字数据库的binlog可以供flink进行消费,以此实现多方面能力,包括全量能数据读取,binlog数据读取、cdc读取以及全能量一体化读取。

(2)hologres可以作为flinkhologres支持行存或者行列共存的模式。以此可以用flink来进行表关联。本质上对于hologres,对于表的检查基于高性能的防表的检查能力,可以提供对于表的百万rps查询。

(3)hotokafka可以作为flink的结果表格,hologres支持强大的实时数据写入能力与整行更新能力,完美匹配flink对于结构表的要求。同时hologres还支持宽表高性能的局部更新能力,可以极大程度地简化flink多流教育场景。

(4)整个链路通过flink创建Hologres catalog来完成flink支持holgress catalog实现统一的原数据服务,以此可以支撑整库原表整库同步以及schema- evolution数据类型变更,包括加力等场景,通过四个方面的深度集成,来承载flinkhologres搭建screaming warehouse解决方案。


三、Hologres+Flink企业级实时数仓核心能力

screaming warehouse解决方案依托于hologres的三大核心能力:binlog行列并存和资源隔离。

1.binlog

image.png

可以助力整个实时数仓链路的数据实时流动。类似于传统数据库,比如masygy或pg的binlog可以用来记录单表数据修改日志,包括insert deletebefore,update四种数据事件类型可以提供表的增量变化信息,有多种场景的应用。首先最重要的就是用于本所说的解决方案,在数仓分层间进行数据的实时加工,可以通过flink 全增量消费holo表加工之后再次写入holo实现整个全链路数据的实时流动,还有其他一些场景。比如可以进行多实力之间的数据同步数据的行列转换以及数据的变化检测。

holdress的binlog表包含图所示的这些字段

image.png

这些字段用来记录用户的表数据变更的信息。通过flink+hologres binlog就可以实现状态的全链路的事件实时驱动开发。

2.行列并存

1行列并存核心能力是hologres 核心共享能力行业共存可以助力高性能的binlog消费,以及高性能的微表观点。hologres支持行列共存的表存储格式,一张表可以同时存储一份行存数据和一份列存数据。下游只感知到一张表可以用于多个场景。比如作为实数层的中间层,ods层或dwd层可以生成binlog表存储的行列构成的方式来供flink进行高性能的binlog消费本质上就是高性能的点查来完成实时数仓的分层。第2点是可以作为flink的尾表来实现高性能的实时检查,以此来完成高性能的表办理完成dwd层表的实施构建。第3点,典型应用场景是所有的表,如果存储成了行列共存,不仅可以完成上述两种场景binlog消费,以及实时检查,这些表还都可以同时用于对接下游业务系统用作olap分析。以下是holo的三种表存储格式包括行存,列存和行列共存,分别可以面向不同的场景

image.png

3.hologres的资源能力

hlogres的资源能力最重要的能力推出了计算组实力高级的可以实现极致的负载隔离的一个架构架构图,如图所示。

image.png

首先是一个弹性弹性的计算存储分离的格式。在存储层只有一份存储,在计算层,把一个实力分隔成不同的计算组,以此来实现计算之间的完全隔离。比如可以通过一份数计算组来实现离线写入,通过一份计算组来做实时写入,通过一份计算组来做olap查询,通过第四份计算组来做在线在线服务。整个架构共享一份存储对于不同的计算组之间计算资源完全完全隔离,可以实现写隔离、读写隔离、读读隔离等多种隔离方式。并且每一个计算组可以支持独立的弹性rop通融。

对于业务层的应用来说,使用统一的n的point来为下游提供服务。通过标准的c口接口,实现复载的自动录自动路由、自动切换,以此来实现极致的负载隔离。那么针对于hologres+flink搭建实时入仓的场景而言,就可以实现hologres写入使用一份计算binlog使用另外一个计算。对于业务的olap查询场景,在线服务场景,也可以分别使用不同的计算来承载以此实现极致的负载隔离。


四、基于Flink Ctalog 的Streaming Warehouse实践

1.典型的电商场景

image.png

典型的电商平台Streaming Warehouse构建好的架构。电商平台的数据源存储在mycql,包括orders订单表、orderspay支付表以及product catalog商品信息三张表。

首先通过flinkcatalog功能,将mycql整个的数据实时同步到hologres中,形成ods

第二步,通过flink的多流效应以及表关联能力,ods层的三张表实时打翻,形成dwg层写入到hotogres

第三步,通过flink的实施指标计算实施聚合能力实时聚合Orders表中的不同维度,形成dws写入hologres。DWS层可以直接为下游用户特征推荐系统提供服务。

步,统计信息查询的运营需求可以通过Dwd层的管理hologres表来承担

2.ODS实时同步

image.png

首先第一步是ods层的实时同步能力。业务将存储订单支付和商品信息三张表通过flink 的catalog功能,可以直接将mysql整库实时同步到中形成ods。右边的c口,只需要通过在flink中创建flink catalog后通过crazytabase as语句,即可将mysql 整库同步到hologres 中,整个操作步骤简化,数据同步效率极度提升。

image.png

ods同步的场景中,有很多功能是hologres +flink 共建的非常的易用。

2.1对于表结构变更,支持自动同步

通过flink catalog,就可以实现原数据的自动发现和管理,再配合great table as的语法,实现数据的同步和表结构自动变更同时支持读取数据的变更以及表结构的问题变更并且实时同步到下游的Hologres表中,并且数据和表结构的变更都可以保证顺序。

2.2整库同步

对于业务业界的整个同步能力而言,在以前有明显的缺点,一是库同步需要浪费很多资源二是会对于上游的数据库产生比较大的压力。hologres 加blink,可以通过great database as语法配合catolog来实现不同步功能解决传统整同步能力带来的诸多问题

2.3分库分表合并同步。

image.png

传统数据库通常为了解决数据量较大的难题时,会选择进行分库分表操作。对于实时入仓hologres而言,只需要把数据存储到同一张表中,依托于hologres的强大的mpp架构,就可以实现对于下游的在线分析在线查询阿里云flink实现了对于原表分表合并同步的核心,只需要通过create tables语法以及对于原表正则表达式,就可以将原表的数据库的分库分表高效的合并同步到下游的hologres中。

3.DWD实时构建

image.png

当时数据实时写入ODS后,hologres表中生成Binlogflink 来读取hologres ods 层binlog,并且采用多流合并、表关联等等方式,把订单交易商品三张表打成一个大表,并且实时写入hologresdwd层形成订单汇总表。

具体c口通过greatable 语句形成dwd表的创建通过flink  c口中两个insert语句可以实现多流合并和维表关联。

3.1 orders表的实施打

通过和商品表的维表关联,形成实时打的能力。

3.2写入交易相关的信息

对于insert语句,最重要的本质上的能力就是每一个Insert语句都是对于DWDoders 这张表的局部更新,通过两个局部更新语句,最终将hologres 的bwd orders这张表实时打宽形成订单汇总表的构件。DWD实时打宽的能力中,其中很重要的一步是多流合并。

image.png

对于传统的多流合并的能力,通过flink +kafka来实现的多流交易能力无法使用维表关联的方式,成本非常高,非常复杂,需要将多流使用flink的多流join把结果写到卡kafka或者Date hup中,再通过复印的加工一层形成ads或dws层下游服务。

但是对于blink+hologres 的方案,可以依托于holo的强大的局部更新,也就是部分更新的能力把多张流同时写入到holo表中。同时针对于表也在这个过程中实现表关联,每条流只是更新HOLO表的部分裂,形成实时表,从而来简化操作,同时节约计算成本。

dwd层实施构建Hologres做到这样高的性能的实时写入与更新依托于Hologres的一个高级功能fixplan。传统的Holo引擎,针对于一条c口是需要经过优化器生产执行计划,经过协调器,查询引擎、存储引擎等多个组件,最终完成了c口的执行。但如果使用了fixplan,则可以绕过优化器、协调器等多个组件直接使用固定的plan来实现数据的高性能实时写入与更新。这个功能也有测试结果作为参考下图。

image.png

针对于open only写入无主键表的场景隐私写入有主见表的场景两种数据更新场景。几乎都可以达到近百万,甚至是2百万的rps依托于fix plan功能。可以实现对于数据的高性能实施写入与更新,从而完成DWD层的实时构建。

4.DWS层的实时聚合

image.png

当构件完成DWD层后再次生成HologresBinlog,通过flank读取hologres的Dwd层的binlog数据来进行实时指标的聚合计算。比如可以形成用户维度的聚合表,也可以形成商户维度的聚合表等,取决于业务需求。最终把每一个维度的聚合表,分别写入到Hologres的dws层的表中,形成实时聚合表。整个c口如图所示,首先我们可以再通flink c口就可以完成两个聚合表的创建,再通过flink cql执行写入。

在写入过程中,完成聚合计算,即可以完成整个 dws层的构件。

5.应用

image.png

当整个数据的分层和加工完成之后,业务可以通过hologres查询数据,并且应用到业务层业务可以直接查询dwd层的数据,如图场景6的C口。对于宽表数据来展示实时报表统计最近30天每个品类的订单总量、退单总量等信息,可以通过直接查询层的明细表来明细拍表来实现同样,对于下游有一些在线服务的场景,比如根据用户特征来推荐商品,本质上是对dws users这张表的检查比如根据商铺特征推荐商品这样的场景可以直接查询dws层的hologres 表来提供百万级的qps查询


五、典型客户案列

三七手游是holo使用flink+hologres 搭建实时数仓的典型客户。通过Hologres 完成了整个实时数仓的架构升级,实现统一数据平台。在使用flink+hologres 架构如图所示。

image.png

1. 构建缺点

通过flink数据原则,数据经过flink +kafka收藏搭建方式来形成实时数仓分层。其次,将实时数据通过flink写入到数据仓库和数据服务中来形成离线收藏的搭建。当实时数仓和离线数仓搭建完成之后,针对于下游的不同业务需求,使用不同的开源引擎进行服务。对于进行查询的需求,通过impala对接报表。对于交互分析大屏而言可以使用hologres来完成报表分析。对于一些实时分析实时查询的需求,通过Doris来做下分析。这样的架构非常复杂且割裂主要缺点包括两个方面一个方面是1t2链路非常复杂,开元flink  缺少以smart evolution能力当上游的数据源的表结构发生变更,每次变更需要重启blank任务,运维操作复杂。其次,对于数据湖而言,估计的查询性能有待提升,客户需要额外使用,presso来做加速等一个链路非常冗余。第二方面是OLAP架构冗余查询整个架构里的OLAP组件非常多需要开发在不同的c口之间切换,整个操作非常繁琐。且这些开源的OLAP屏查询引擎技能,很难满足日益增长的业务需求。第三方面整个架构系统非常多,每不同的系统会带来不同的存储,整个存储方面冗余,成本显著增加。造成整个架构非常复杂,运维非常困难。使用Hologre +Flink+max构建出了实时离线一体化的收藏架构后,客户的痛点得到了极大的满足。

2. 计划后的架构及优势

image.png

中左下角所示,实时数仓使用的是Flink+Hologres 形成实时数仓分层。关于离线数仓,通过Date or+maxcom cute离线数据完成时实时数仓分层,数仓和离线数仓之间,可以通过Holo像xcompute写入数据来实现离线数据归档,也可以通过max -compute,如Hologres来完成对于实时数据的修正,holo也可以直接对接max -compute来实现数据的加速查询和联邦查询holdress作为一款统一数仓出口为下游的数据分析提供服务。这样的架构带来了明显的业务收益。

首先整个数据处理链路是写入可见的百万级的数据更新,可以实现毫秒级的延时业务的时效性得到了显著提升。

第二,阿里云的flink+hologres 可以加速,可以提供完整的study的能力。上游数据发生了表结构的变更不需要重启flink作业,可以显著降低开发和运维管理难度。

第三,实数链路中,flink直接读取hologres binlog,以此替换kafka可以减少数据的流转。

第四,作为统一数据服务出口来提供服务查询毫秒延时,相比flicos性能提升超过100%,在教育场景性能快了10倍,整个架构简化、更加灵活,运维变得简单,业务更敏捷。

三七手游将整个架构应用于很多业务场景,包括但不限于买量优化报表分析、精细化运营、用户画像分析、智能诊断等多种场景。

image.png

欢迎扫码加入Hologres 和 Flink钉钉交流群购买59元Hologres 15000c位值计算资源抵扣包以及59元Flink计算资源抵扣包。

 

相关实践学习
阿里云云原生数据仓库AnalyticDB MySQL版 使用教程
云原生数据仓库AnalyticDB MySQL版是一种支持高并发低延时查询的新一代云原生数据仓库,高度兼容MySQL协议以及SQL:92、SQL:99、SQL:2003标准,可以对海量数据进行即时的多维分析透视和业务探索,快速构建企业云上数据仓库。 了解产品 https://www.aliyun.com/product/ApsaraDB/ads
相关文章
|
2月前
|
存储 SQL 监控
实时数仓和离线数仓还分不清楚?看完就懂了
本文通俗易懂地解析了实时数仓与离线数仓的核心区别,涵盖定义、特点、技术架构与应用场景,助你快速掌握两者差异,理解数据处理的“快慢之道”。
实时数仓和离线数仓还分不清楚?看完就懂了
|
5月前
|
存储 消息中间件 OLAP
基于 Flink+Paimon+Hologres 搭建淘天集团湖仓一体数据链路
本文整理自淘天集团高级数据开发工程师朱奥在Flink Forward Asia 2024的分享,围绕实时数仓优化展开。内容涵盖项目背景、核心策略、解决方案、项目价值及未来计划五部分。通过引入Paimon和Hologres技术,解决当前流批存储不统一、实时数据可见性差等痛点,实现流批一体存储与高效近实时数据加工。项目显著提升了数据时效性和开发运维效率,降低了使用门槛与成本,并规划未来在集团内推广湖仓一体架构,探索更多技术创新场景。
1201 3
基于 Flink+Paimon+Hologres 搭建淘天集团湖仓一体数据链路
|
6月前
|
消息中间件 存储 监控
Lalamove基于Flink实时湖仓演进之路
本文由货拉拉国际化技术部资深数据仓库工程师林海亮撰写,围绕Flink在实时数仓中的应用展开。文章首先介绍了Lalamove业务背景,随后分析了Flink在实时看板、数据服务API、数据监控及数据分析中的应用与挑战,如多数据中心、时区差异、上游改造频繁及高成本问题。接着阐述了实时数仓架构从无分层到引入Paimon湖仓的演进过程,解决了数据延迟、兼容性及资源消耗等问题。最后展望未来,提出基于Fluss+Paimon优化架构的方向,进一步提升性能与降低成本。
258 11
Lalamove基于Flink实时湖仓演进之路
|
6月前
|
存储 监控 数据挖掘
京东物流基于Flink & StarRocks的湖仓建设实践
本文整理自京东物流高级数据开发工程师梁宝彬在Flink Forward Asia 2024的分享,聚焦实时湖仓的探索与建设、应用实践、问题思考及未来展望。内容涵盖京东物流通过Flink和Paimon等技术构建实时湖仓体系的过程,解决复杂业务场景下的数据分析挑战,如多维OLAP分析、大屏监控等。同时,文章详细介绍了基于StarRocks的湖仓一体方案,优化存储成本并提升查询效率,以及存算分离的应用实践。最后,对未来数据服务的发展方向进行了展望,计划推广长周期数据存储服务和原生数据湖建设,进一步提升数据分析能力。
580 1
京东物流基于Flink & StarRocks的湖仓建设实践
|
6月前
|
人工智能 关系型数据库 OLAP
光云科技 X AnalyticDB:构建 AI 时代下的云原生企业级数仓
AnalyticDB承载了光云海量数据的实时在线分析,为各个业务线的商家提供了丝滑的数据服务,实时物化视图、租户资源隔离、冷热分离等企业级特性,很好的解决了SaaS场景下的业务痛点,也平衡了成本。同时也基于通义+AnalyticDB研发了企业级智能客服、智能导购等行业解决方案,借助大模型和云计算为商家赋能。
472 17
|
1月前
|
存储 JSON 数据处理
Flink基于Paimon的实时湖仓解决方案的演进
本文源自Apache CommunityOverCode Asia 2025,阿里云专家苏轩楠分享Flink与Paimon构建实时湖仓的演进实践。深度解析Variant数据类型、Lookup Join优化等关键技术,提升半结构化数据处理效率与系统可扩展性,推动实时湖仓在生产环境的高效落地。
192 0
Flink基于Paimon的实时湖仓解决方案的演进
|
1月前
|
存储 人工智能 监控
淘宝闪购基于Flink&Paimon的Lakehouse生产实践:从实时数仓到湖仓一体化的演进之路
本文整理自淘宝闪购(饿了么)大数据架构师王沛斌在 Flink Forward Asia 2025 上海站的分享,深度解析其基于 Apache Flink 与 Paimon 的 Lakehouse 架构演进与落地实践,涵盖实时数仓发展、技术选型、平台建设及未来展望。
257 0
淘宝闪购基于Flink&Paimon的Lakehouse生产实践:从实时数仓到湖仓一体化的演进之路
|
7月前
|
存储 分布式计算 MaxCompute
Hologres实时湖仓能力入门实践
本文由武润雪(栩染)撰写,介绍Hologres 3.0版本作为一体化实时湖仓平台的升级特性。其核心能力包括湖仓存储一体、多模式计算一体、分析服务一体及Data+AI一体,极大提升数据开发效率。文章详细解析了两种湖仓架构:MaxCompute + Hologres实现离线实时一体化,以及Hologres + DLF + OSS构建开放湖仓架构,并深入探讨元数据抽象、权限互通等重点功能,同时提供具体使用说明与Demo演示。
|
3月前
|
分布式计算 Serverless OLAP
实时数仓Hologres V3.1版本发布,Serverless型实例从零开始构建OLAP系统
Hologres推出Serverless型实例,支持按需计费、无需独享资源,适合新业务探索分析。高性能查询内表及MaxCompute/OSS外表,弹性扩展至512CU,性能媲美主流开源产品。新增Dynamic Table升级、直读架构优化及ChatBI解决方案,助力高效数据分析。
实时数仓Hologres V3.1版本发布,Serverless型实例从零开始构建OLAP系统
|
3月前
|
存储 传感器 数据采集
什么是实时数仓?实时数仓又有哪些应用场景?
实时数仓是一种能实现秒级数据更新和分析的系统,适用于电商、金融、物流等需要快速响应的场景。相比传统数仓,它具备更高的时效性和并发处理能力,能够帮助企业及时捕捉业务动态,提升决策效率。本文详细解析了其实现架构与核心特点,并结合实际案例说明其应用价值。
下一篇
oss教程