概要 数据湖的业务场景主要包括对数据库、日志、文件的分析,而管理数据湖有两点比较重要:写入的吞吐量和查询性能,这里主要说明以下问题: 1、为了获得更好的写入吞吐量,通常把数据直接写入文件中,这种情况下会产生很多小的数据文件。虽然小
数据湖的业务场景主要包括对数据库、日志、文件的分析,而管理数据湖有两点比较重要:写入的吞吐量和查询性能,这里主要说明以下问题:
1、为了获得更好的写入吞吐量,通常把数据直接写入文件中,这种情况下会产生很多小的数据文件。虽然小文件的使用可以增加写入的并行度,且能够并行读取文件以提高读取速度,但会出现一个数据量很小,需要从多个小文件中读取数据,增加了很多io。
2、数据按照进入数据湖的方式写入到文件中,在同一个文件上,数据局部性不是最佳的。 数据之间,与传入批次相关,相近的批次的数据会相关联,而不是与经常要查询的数据相关联。所以小文件的大小和缺乏数据局部性会降低查询性能。
3、此外,许多文件系统(包括 hdfs),当有很多小文件时,性能会下降。
hudi支持clustering功能,在不影响查询性能的情况下提高写入吞吐量。该功能可以以不同方式重写数据:
数据先写入小文件,在满足某些条件后(例如经过的时间、小文件数量、commit次数等),将小文件拼接成大文件。
通过对不同列上的数据进行排序,来更改磁盘上的数据布局,已提高数据间的相关性,可以提高查询性能。
(用户可以将小文件的限制 hoodie.parquet.small.file.limit 配置为 0,这样可以强制将数据进入新的文件组。)
在上面的示例流程图中,显示了随时间(t5 到 t9)的分区状态。 主要有以下步骤:
这种方法同样支持mor表,且过程与cow 表非常相似。
clustering 的为 parquet 格式文件。
总体来说,需要两步:
【参考】
https://hudi.apache.org/docs/next/configurations/#hoodieclusteringplanstrategyclass
Https://cwiki.apache.org/confluence/display/HUDI/RFC+-+19+Clustering+data+for+freshness+and+query+perfORMance
--结束END--
本文标题: hudi clustering 数据聚集(一)
本文链接: https://www.lsjlt.com/news/8886.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-05-14
2024-05-14
2024-05-14
2024-05-14
2024-05-14
2024-05-14
2024-05-14
2024-05-14
2024-05-14
2024-05-14
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0