将多个 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 中创建星型模式(维度和事实表)

多个节点中的 Hive 表 - 处理

如何将多个表的结果写入配置单元中的单个表?

HIVE:小文件合并

如何使用 Pandas 将多个 csv 文件中的单个数据列合并为一个?

Hadoop:如何将 reducer 输出合并到单个文件中? [复制]