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

简介: 本次分享由阿里云产品经理骆撷冬(观秋)主讲,主题为“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引擎中,供应用来查询。通过flink和kafka的反复交互,实现数据从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可以作为flink的维表,hologres支持行存或者行列共存的模式。以此可以用flink来进行维表关联。本质上对于hologres,对于维表的检查基于其高性能的防维表的检查能力,可以提供对于维表的百万rps查询。

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

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


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

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

1.binlog

image.png

它可以助力整个实时数仓全链路的数据实时流动。类似于传统数据库,比如masygy或pg的binlog可以用来记录单表数据修改日志,包括insert, delete,before,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商品信息三张表。

首先通过flink的catalog功能,将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表中新生成Binlog的flink 来读取hologres ods 层binlog,并且采用多流合并、维表关联等等方式,把订单交易商品三张表打成一个大宽表,并且实时写入hologres的dwd层形成订单汇总表。

具体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
相关文章
|
存储 SQL 监控
实时数仓和离线数仓还分不清楚?看完就懂了
本文通俗易懂地解析了实时数仓与离线数仓的核心区别,涵盖定义、特点、技术架构与应用场景,助你快速掌握两者差异,理解数据处理的“快慢之道”。
实时数仓和离线数仓还分不清楚?看完就懂了
|
SQL 存储 机器学习/深度学习
基于 Dify + Hologres + QWen3 进行企业级大数据的处理和分析
在数字化时代,企业如何高效处理和分析海量数据成为提升竞争力的关键。本文介绍了基于 Dify 平台与 Hologres 数据仓库构建的企业级大数据处理与分析解决方案。Dify 作为开源大语言模型平台,助力快速开发生成式 AI 应用;Hologres 提供高性能实时数仓能力。两者结合,不仅提升了数据处理效率,还实现了智能化分析与灵活扩展,为企业提供精准决策支持,助力数字化转型。
1458 2
基于 Dify + Hologres + QWen3 进行企业级大数据的处理和分析
|
存储 传感器 数据采集
什么是实时数仓?实时数仓又有哪些应用场景?
实时数仓是一种能实现秒级数据更新和分析的系统,适用于电商、金融、物流等需要快速响应的场景。相比传统数仓,它具备更高的时效性和并发处理能力,能够帮助企业及时捕捉业务动态,提升决策效率。本文详细解析了其实现架构与核心特点,并结合实际案例说明其应用价值。
|
自然语言处理 安全 数据挖掘
Hologres+函数计算+Qwen3,对接MCP构建企业级数据分析 Agent
本文介绍了通过阿里云Hologres、函数计算FC和通义千问Qwen3构建企业级数据分析Agent的解决方案。大模型在数据分析中潜力巨大,但面临实时数据接入与跨系统整合等挑战。MCP(模型上下文协议)提供标准化接口,实现AI模型与外部资源解耦。方案利用SSE模式连接,具备高实时性、良好解耦性和轻量级特性。Hologres作为高性能实时数仓,支持多源数据毫秒级接入与分析;函数计算FC以Serverless模式部署,弹性扩缩降低成本;Qwen3则具备强大的推理与多语言能力。用户可通过ModelScope的MCP Playground快速体验,结合TPC-H样例数据完成复杂查询任务。
|
SQL DataWorks 关系型数据库
DataWorks+Hologres:打造企业级实时数仓与高效OLAP分析平台
本方案基于阿里云DataWorks与实时数仓Hologres,实现数据库RDS数据实时同步至Hologres,并通过Hologres高性能OLAP分析能力,完成一站式实时数据分析。DataWorks提供全链路数据集成与治理,Hologres支持实时写入与极速查询,二者深度融合构建离在线一体化数仓,助力企业加速数字化升级。
|
SQL 监控 关系型数据库
用友畅捷通在Flink上构建实时数仓、挑战与最佳实践
本文整理自用友畅捷通数据架构师王龙强在FFA2024上的分享,介绍了公司在Flink上构建实时数仓的经验。内容涵盖业务背景、数仓建设、当前挑战、最佳实践和未来展望。随着数据量增长,公司面临数据库性能瓶颈及实时数据处理需求,通过引入Flink技术逐步解决了数据同步、链路稳定性和表结构差异等问题,并计划在未来进一步优化链路稳定性、探索湖仓一体架构以及结合AI技术推进数据资源高效利用。
1114 25
用友畅捷通在Flink上构建实时数仓、挑战与最佳实践
|
SQL 存储 JSON
实时数仓 Hologres 产品介绍:一体化实时湖仓平台
本次方案的主题是实时数仓 Hologres 产品介绍:一体化实时湖仓平台,介绍了 Hologres 湖仓存储一体,多模式计算一体、分析服务一体和 Data+AI 一体四方面一体化场景,并对其运维监控方面及客户案例进行一定讲解。 1. Hologres :面向未来的一体化实时湖仓 2. 运维监控 3. 客户案例 4. 总结
1151 14
|
存储 SQL 运维
Hologres OLAP场景核心能力介绍-2024实时数仓Hologres线上公开课02
本次分享由Hologres产品经理赵红梅(梅酱)介绍Hologres在OLAP场景中的核心能力。内容涵盖OLAP场景的痛点、Hologres的核心优势及其解决方法,包括实时数仓分析、湖仓一体加速、丰富的索引和查询性能优化等。此外,还介绍了Hologres在兼容PG生态、支持多种BI工具以及高级企业级功能如计算组隔离和serverless computing等方面的优势。最后通过小红书和乐元素两个典型客户案例,展示了Hologres在实际应用中的显著效益,如运维成本降低、查询性能提升及成本节省等。
685 7
|
存储 SQL 消息中间件
美团点评基于 Flink 的实时数仓平台实践
数据仓库的建设是“数据智能”必不可少的一环,也是大规模数据应用中必然面临的挑战,而 Flink 实时数仓在数据链路中扮演着极为重要的角色。本文中,美团点评高级技术专家鲁昊为大家分享了美团点评基于 Apache Flink 的实时数仓平台实践。
美团点评基于 Flink 的实时数仓平台实践
|
存储 SQL 消息中间件
美团点评基于 Flink 的实时数仓平台实践
数据仓库的建设是“数据智能”必不可少的一环,也是大规模数据应用中必然面临的挑战,而 Flink 实时数仓在数据链路中扮演着极为重要的角色。本文中,美团点评高级技术专家鲁昊为大家分享了美团点评基于 Apache Flink 的实时数仓平台实践。

热门文章

最新文章