繁体   English   中英

Hive Bucketing-如何针对特定存储桶运行Hive查询

[英]Hive Bucketing - How to run hive query for specific bucket

我有配置单元查询,它读取5个大表并将记录输出到下一个进程。 所有这些表都在proc_dt上分区,并在user_id(5个存储桶)上存储。 联接在user_id上完成,在proc_dt上进行过滤。

如何为所有表的特定存储桶运行此查询? 对于前。 我只想对所有表的第一个存储区运行查询。

这样做的原因是,一旦完成对第一个存储桶的查询,就可以将输出数据发送到下一个进程。 在下一个进程运行时,我可以完成对下一个存储桶的查询,依此类推。 这样,下一个过程无需等待整个查询完成。

如果我还有一列包含用户ID为Mod5的列,那么我将进行分区。 但是没有这样的列,我无法添加它。

任何人都可以给我一些解决方案。 任何建议都会非常有帮助。

我得到了答案。 我们可以在联接查询中提及存储桶编号。 检查以下链接以获取更多详细信息。

https://www.qubole.com/blog/big-data/5-tips-for-efficient-hive-queries/

您可以在查询语句中指定分区,但不能指定存储桶。 存储桶用于优化目的-例如,更快的采样和Mapside联接。 但是它们对sql语句不可见。

https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL+BucketedTables

因此,这是文档示例:

CLUSTERED BY(user_id) INTO 256 BUCKETS;

显然,这不允许按值/名称访问各个存储桶。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM