Hudi Clustering

没有检索到标题
HudiClustering通过并发写入小文件提升性能,通过异步或同步合并优化查询。文章详细介绍了配置选项、执行机制、同步异步模式和计划策略,包括SparkSizeBased策略和排序列的重要性。

核心概念

Hudi Clustering对于在数据写入和读取提供一套相对完善的解决方案。它的核心思想就是: 在数据写入时,运行并发写入多个小文件,从而提升写入的性能;同时通过一个异步(也可以配置同步,但不推荐)进程或者周期性调度来执行小文件合并成大文件在这个过程中hudi还考虑到对数据按照特定的列进行重排序,这样在解决小文件问题的同时还优化了查询性能,可谓是“两全其美”。对于Clustering的手法其实是一种比较通用的优化数据重新布局的手段。其中在Hive/Spark SQL中都有类似的操作cluster by,只是在hudi中更加追求完美,多了一项合并小文件工作。关于cluster的几个配置参数:

配置项 默认值 说明
hoodie.clustering.inline false
hoodie.clustering.schedule.inline false
hoodie.clustering.async.enabled false
hoodie.clustering.inline.max.commits 4
hoodie.clustering.async.max.commits 4
hoodie.clustering.plan.strategy.small.file.limit 314572800 ( 300MB ) 只有小于该值的文件才会被视为小文件,从而参与到 Clustering 中。
hoodie.clustering.plan.strategy.target.file.max.bytes 1073741824 ( 1GB ) 限制 Clustering 生成的文件大小,默认是 1GB。合并后的最大文件不会超过该值。
hoodie.clustering.plan.strategy.sort.columns -- 针对哪个列重新进行排序。对于该字段过滤条件的查询有很大性能提高。

计划与执行

Clustering 的执行机制和compaction的机制类似,都是分为Schedule和execute两个阶段。计划的阶段主要是规划哪些文件参与Clusetring,然后生成一

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值