场景说明:
湖内数据通常会采用数仓分层存储,例如:贴源层(SDI)、汇总层(DWS)、集市层(DW),各家企业也会有不同的分层标准。数据在各层直接流转也会有相应的规范。传统数据湖通常采用天级全量数据ETL处理以实现各层之间数据流转。
现在Hudi支持ACID特性、Upsert特性和增量数据查询特性,可以实现增量的ETL,在不同层之间快速的流转。
增量ETL作业与传统ETL作业业务逻辑完全一样,涉及到的增量表读取采用commit_time来获取增量数据,在作业逻辑中的多表关联可以使Hudi表与Hudi表关联,也可以是Hudi表与存量Hive表的关联。ETL作业开发可以基于SparkSQL、FlinkSQL开发。基于增量视图的ETL语句样例如下:Upsert table_dws select * from table_SDI where commit_time > “2021-07-07 12:12:12”。
由于采用了增量ETL方式,每次所处理的数据量也会下降,具体下降多少有赖于业务实际流量情况和增量的周期粒度。例如:物联网的业务数据,全天24小时流量稳定,采用10分钟级别的增量ETL,那么所处理的数量将全天数据量的1/(24*60/10)。因此在处理数据量大幅下降情况下,所需的计算资源也有相应的下降。
方案收益:
单个ETL作业处理时延降低,端到端时间缩短。
消耗资源下降,单位ETL作业所处理数据量大幅下降,所需计算资源也会相应下降。
原有湖内存储的模型无需调整。
3.4 支持交互式分析场景场景说明:
数据湖存储的数据具有数据种类全、维度多、历史周期长的特点,业务所需数据在数据湖中基本都是存在的,因此直接交互式分析引擎直接对接数据湖可以满足业务各类需求数据需求。
在数据探索、BI分析、报表展示等业务场景需要具备针对海量数据查询秒级返回的能力,同时要求分析接口简单SQL化。
方案说明:
在该场景中可以采用MRS-HetuEngine来实现该方案,MRS-HetuEngine是分布式高性能的交互式分析引擎,主要用于数据的快速实时查询场景。MRS-HetuEngine具备以下特性可以很好的支撑该场景:
MRS-HetuEngine引擎已经完成与MRS-Hudi的对接,能够快速读取Hudi存储的数据。
支持读取快照查询,查询当前最新快照数据和历史快照数据。
支持增量查询,根据commit_time,查询任一时间段内的增量数据。
针对MOR存储模型,尤其在数据探索场景可以通过读优化查询接口,快速分析MOR模型的Hudi表数据。
支持多源异构协同,具备跨Hudi与其他DB的联合分析能力,例如:维度数据存在TP库中,可以实现数据湖的事实表与TP维度表的关联分析。
查询语句SQL化,支持JDBC接口。
方案收益:
结合MRS-CDL数据入湖,业务系统库数据变更可在分钟内实现在数据湖内可见。
对TB级到PB的数据量的交互式查询可达到秒级结果返回。
可对湖内各层数据进行分析。
3.5 基于Hudi构建批流一体场景说明:
传统处理架构中采用Lambda或者Kappa架构。Lambda使用比较灵活,也可以解决业务场景,但是在该架构中需要两套系统来完成,维护比较复杂。数据分流以后也很难再关联应用。例如:流处理场景使用批处理的结果。Kappa架构是为实时处理的架构,该架构缺少了批处理的能力。
方案说明: