将多个 Hive 表合并为 Hadoop 中的单个表
Posted
技术标签:
【中文标题】将多个 Hive 表合并为 Hadoop 中的单个表【英文标题】:Combine Multiple Hive Tables as single table in Hadoop 【发布时间】:2018-07-26 07:07:24 【问题描述】:您好,我有多个 Hive 表,大约 15-20 个表。所有表都将是通用模式。我需要将所有表合并为一个表。单个表应该从报告工具中查询,所以性能也需要注意..
我试过这样..
create table new as
select * from table_a
union all
select * from table_b
有没有其他方法可以更有效地组合所有表格。任何帮助将不胜感激。
【问题讨论】:
【参考方案1】:如果将“hive.exec.parallel”设置为 true,Hive 将并行处理。使用“hive.exec.parallel.thread.number”,您可以指定并行线程的数量。这将提高整体效率。
【讨论】:
【参考方案2】:如果您尝试将 table_A 和 table_b 合并为一个,最简单的方法是使用 UNION ALL 运算符。你可以在这里找到语法和用例 - https://cwiki.apache.org/confluence/display/Hive/LanguageManual+Union
【讨论】:
但是 unionall 对多个表来说是代价高昂的操作权?? 你能用 MAPJOIN 代替 Unionall 吗以上是关于将多个 Hive 表合并为 Hadoop 中的单个表的主要内容,如果未能解决你的问题,请参考以下文章
从单个 csv 文件在 Hadoop Hive 中创建星型模式(维度和事实表)