(26页PPT)华为实时数据湖Hudi应用解决方案.pptxVIP

(26页PPT)华为实时数据湖Hudi应用解决方案.pptx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

实时入湖Hudi应用解决方案

数据集成整体方案

数据入湖通用方案

数据入湖进阶方案

目录

CONTENT

01

数据集成整体方案

数据集成整体方案

数据库

文件

批量集成Loder

实时集成CDL

消息队列

JDBC直连

CDC采集

第三方工具实时采集

Hive表

Hudi表

Spark/Flink

FTP服务

批量集成Loder

Hive表

实时集成CDL

Hudi表

非标准格式

Spark/Flink

消息队列

标准格式

批量

实时

数据量

大(百万到千万级)

小(单表万级TPS)

运行态

周期

常驻

资源消耗

周期性峰值

高/低峰期

时延

分钟到小时级

秒级

批量入湖方案

特点

适用于存量数据搬迁

补数

增量对时效要求不高,比如T+1

挑战

数据重复问题。数据库JDBC直连方式或者文件导出方式无法识别更新和删除,直接写入目标表会导致数据重复问题。

JDBC直连方式读取数据库数据会受到底层网络资源的影响,JDBC协议通道也有限,大数据量场景该方式采集数据不仅效率低而且对业务库带来压力。

文件入湖需要更多的上下游协同来保证完整性,依赖可以管理上下游任务调度的平台。

对接消息管道批量入湖需要关注数据老化时间,以防止丢失数据。

推荐

Hudi表(需要主键)拥有行级的更新能力,可以自动去重。建议对表进行分区,这样去重环节比较方便。

在业务库网络通道充足且有备库的情况下,可用JDBC方式进行大数量采集。或者采用文件入湖来规避。

文件入湖可以进行压缩上传和下载,降低网络通道消耗,可以采用flag标记文件的上传状态,确保文件完整性。

消息管道批量入湖可以通过限流来保证入湖程序的稳定性,增加监控对消费终止和积压等进行告警,降低数据老化风险。

实时入湖方案

特点

入湖频率高,单次数据量低,数据都是包含新增、更新和删除的过程数据,而非最终快照数据。

业务需要快速的数据计算,满足业务的实时决策需求。

任务常驻,资源不释放,降低资源消耗峰值和源库压力。

挑战

Flink引擎直连数据源的方案单个流只能处理单个表,资源消耗大,无并发,吞吐量小。面对异常场景带来的问题,分析起来难度大,可靠性低。

Spark引擎直连数据源的方案开发成本高。

实时场景DDL和DML操作需要一定的有序性保证。

实时场景对于数据存储模型的设计非常重要。

推荐

建议采用专业的CDC工具。它可以提供的可视化无代码的方式同步;单任务可以采集多表,资源复用,高吞吐;支持的数据源和目标存储格式丰富;最关键的是专业的CDC工具可以快速的从异常场景恢复,丢数风险低,有丰富的告警和监控来保证任务的可靠性。

保证数据湖的DDL操作要早于业务库变更,可以在入湖程序对关键表的数据格式进行检查,如字段增减、数据类型调整,发现异常程序立即退出并告警,保证数据质量。

实时数据入湖只能采用Hudi格式的存储,特大表入湖推荐使用MOR表+Bucket索引+分区。

Hudi表模型设计方案

类型

入湖实时性要求高就选择MOR表。一般端到端的实时入湖性能要求都在分钟内。

表字段的大小写以及字段类型在不同的引擎上都会有差别,建议统一字段大小写,调研各引擎之间字段类型的映射关系。

索引

如果业务涉及到多个引擎操作同一个Hudi表,要统一Hudi表的索引。

Bucket索引适合Spark/Flink引擎交互操作。

Bucket索引的分桶要合理,否则性能会下降。分区表一般建议按业务峰值预估最大的分区未压缩前的数据量/2G来分桶,非分区表建议按照业务峰值预估整表未压缩前的数据量/2G*2来分桶。

状态索引建议在2亿数据量以下使用,Cow多数采用Simple索引(大表建议采用Bloom索引),MOR大数据量表建议Bucket索引。

分区

建议事实表采用日期分区表,维度表采用非分区或者粗粒度的日期分区表。

分区要基于数据更新范围以及下游作业读取方位来确定。

模式

Upsert

Append

快照表方案

1.增量同步快照表

全量同步快照表

场景

① 小表+批量入湖

② 源表物理删除

实现

① Truncate+Insert

② InsertOverwriteTable

批量同步任务

Hive增量临时表

Hive快照表

存增量合并

Hive最新临时快照

InsertOverwrite

Upsert

Hudi快照表

Upsert

实时同步任务

拉链表方案

1.Hudi增量拉链表

特点

① 通常采用分区表,根据业务需要选择合适的分区粒度。

② 每个分区内的数据都是该时间范围产生的增量数据的最新快照。

③ 分区之间可以存在主键重复,分区内没有主键重复,每个主键对应的分区字段可以变化。

替换老数据

批量同步任务

Hudi最新快照表

Hudi旧快照表

Hudi增量数据获取

Hudi增量拉链表

文档评论(0)

blue_sky22 + 关注
实名认证
文档贡献者

立足职场,坚持学习实践,并乐于分享知识助益他人。

1亿VIP精品文档

相关文档