Hive 如何在插入到分区集群事务表的过程中增加缩减器的数量?

Hive 如何在插入到分区集群事务表的过程中增加缩减器的数量?,hive,partition,transactional,orc,Hive,Partition,Transactional,Orc,我们有一个集群事务表(10k个bucket),对于以下两种用例来说,它似乎效率低下 与每日增量合并 基于日期范围的查询 我们要做的是按日期对表进行分区,从而创建分区的集群事务表。Daily volume建议存储桶的数量大约为1-3,但插入到新创建的表中会生成存储桶的数量减少任务,这太慢,并且由于硬盘驱动器有限,会导致合并减少器出现一些问题 这两个问题都是可以解决的(例如,我们可以将数据分成几个块,然后启动单独的作业,使用n_jobs*n_bucket来并行插入到目标表中,尽管这会导致多次读取

我们有一个集群事务表(10k个bucket),对于以下两种用例来说,它似乎效率低下

  • 与每日增量合并
  • 基于日期范围的查询
我们要做的是按日期对表进行分区,从而创建分区的集群事务表。Daily volume建议存储桶的数量大约为1-3,但插入到新创建的表中会生成存储桶的数量减少任务,这太慢,并且由于硬盘驱动器有限,会导致合并减少器出现一些问题

这两个问题都是可以解决的(例如,我们可以将数据分成几个块,然后启动单独的作业,使用n_jobs*n_bucket来并行插入到目标表中,尽管这会导致多次读取源表),但我相信应该有正确的方法,所以问题是:什么是正确的方法


p.S.配置单元版本:1.2.1000.2.6.4.0-91

请看一下这个:和这个和@leftjoin,谢谢,但它看起来像
Hive.exforce.bucketing=true
覆盖
Hive.exec.reducers.bytes.per.reducer
,已经设置为~64Mb。我不确定我是否应该更改
mapreduce.job.reduces
是否因为bucketing,是吗?键不应该倾斜,因为元组是唯一的,所有的减缩器都可以工作。看来不是这样,是的。减速器的数量=铲斗的数量。来源:你有没有试过不用水桶?您可以改为使用orc文件并增加reducer我没有尝试过在没有bucket的情况下这样做,但是为了使事务正常工作,这是一种基本要求。底层文件格式已经是
orc
。从
10k个存储桶开始从来都不是一个好主意。你能把它缩小到100吗?