我很好奇是否有人可以提供一些关于如何在Hive表上配置bucketing属性的更多说明。我看到它有助于连接,我相信我读到将它放在你将用来加入的列上是好的。那可能是错的。我也很好奇如何确定要选择的桶数。
如果有人能够提供一个简短的解释和一些文件,说明如何确定所有这些很棒的事情。
提前感谢您的帮助。
克雷格
答案 0 :(得分:1)
如果您想首先在表格中实施分组,则应设置属性
设置hive.enforce.bucketing = true;
它将强制执行分组。
肉体:列的可能值。
如果你使用Cluster By子句实现bucketing,你的bucketing列应该具有很高的生命力,那么你将获得更好的性能。
如果你使用Partitioned By子句实现分区,你的分区列应该具有较低的生命力,那么你将获得更好的性能
根据用例,您可以选择桶数。最好选择(桶数)< (你的hdfs块大小)它应该是2的幂。 bucketing将始终创建文件而不是目录。
答案 1 :(得分:0)
以下是在设计存储桶时需要考虑的一些建议。