在选择查询中使用 hive 分桶
Posted
技术标签:
【中文标题】在选择查询中使用 hive 分桶【英文标题】:Using hive bucketing in select query 【发布时间】:2014-05-08 14:16:57 【问题描述】:我有一个存储在 userId 上的 hive 表,我的选择查询在 where 子句中包含 userId,但 hive 正在执行全表扫描。 hive.enforce.bucketing
是真的
为什么 hive 在这种情况下不利用分桶,是否有任何配置可以启用它?
表结构
userId int, name int, address String, cell int, ...... ...... ...... ...... CLUSTERED BY (userId) SORTED BY (userId) INTO 20 BUCKETS
选择查询
select cell from <table> where userId=<userId>
【问题讨论】:
【参考方案1】:select cell from <table> TABLESAMPLE(BUCKET <n> OUT OF 20 ON userId) usertable where userId = <userId>
【讨论】:
+1 有趣的答案!但我不明白这有什么用:你需要确切地知道每个桶的内容是什么,指定一个不同的以上是关于在选择查询中使用 hive 分桶的主要内容,如果未能解决你的问题,请参考以下文章