华为云MRS基于Hudi和HetuEngine构建实时数据湖最佳实践

数据湖与实时数据湖是什么?

各个行业企业都在构建企业级数据湖,将企业内多种格式数据源汇聚的大数据平台,通过严格的数据权限和资源管控,将数据和算力开放给各种使用者。一份数据支持多种分析,是数据湖最大的特点。如果数据湖的数据,从数据源产生后,可以在1分钟以内实时进入到数据湖存储,支持各种交互式分析,这种数据湖通常叫做实时数据湖,如果可以做到15分钟之内,也可称为准实时数据湖。构建实时数据湖,正在成为5G和IOT时代,支撑各个企业实时分析业务的数据湖新目标。

华为MRS实时数据湖方案介绍

  1. 生产库数据通过CDC工具(debezium)实时录入到MRS集群中Kafka的指定topic里;
  2. 在MRS集群启动一个SparkStreaming任务,实时读取Kafka指定topic里的数据;
  3. 同时该SparkStreaming任务将读取到的数据进行解析处理并写入到一张hudi表中;
  4. 写入hudi表的同时可以指定该数据也写入hive表;
  5. 通过MRS提供的交互式查询引擎HetuEngine对数据进行快速的交互式查询。

使用华为MRS实时数据湖方案的优势:

  1. ACID事务能力得以保证,湖内一份数据满足所有的分析业务需求,减少数据搬迁,减少数据冗余;
  2. 数据一致性保证,保证增量数据与入湖后数据一致性检测;
  3. 数据加工流转,在一个存储层内闭环,数据流动更高效;
  4. 基于HetuEngine引擎实现交互式查询,性能不降低。

下面会针对方案的三个关键组件:CDC工具,数据存储引擎Hudi,交互式查询引擎HetuEngine进行详细的介绍

样例数据简介

生产库MySQL原始数据(前10条,共1000条):

CDC工具

简介

CDC(changed data capture)为动态数据抓取,常见的方式分为同步和异步。同步CDC主要是采用触发器记录新增数据,基本能够做到实时增量抽取。而异步CDC则是通过分析已经commit的日志记录来得到增量数据信息。常见的CDC工具有Canal, DataBus, Maxwell, Debezium, OGG等。本方案采用debezium作为CDC工具

对接步骤

具体参考:https://fusioninsight.github.io/ecosystem/zh-hans/Data_Integration/DEBEZIUM/

完成对接后,针对MySQL生产库分别做增、改、删除操作对应的kafka消息

增加操作: insert into hudi.hudisource values (1001,“蒋语堂”,38,“女”,“图”,"《星球大战》",28732);

对应kafka消息体:

更改操作: UPDATE hudi.hudisource SET uname=‘Anne Marie’ WHERE uid=1001;

对应kafka消息体:

删除操作: delete from hudi.hudisource where uid=1001;

对应kafka消息体:

Hudi

简介

Apache Hudi是一个Data Lakes的开源方案,Hudi是Hadoop Updates and Incrementals的简写。具有以下的特性

  • ACID事务能力,支持实时入湖和批量入湖。
  • 多种视图能力(读优化视图/增量视图/实时视图),支持快速数据分析。
  • MVCC设计,支持数据版本回溯。
  • 自动管理文件大小和布局,以优化查询性能准实时摄取,为查询提供最新数据。
  • 支持并发读写,基于snapshot的隔离机制实现写入时可读取。
  • 支持原地转表,将存量的历史表转换为Hudi数据集。

样例代码解析

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值