Hive从单个表的数据创建/更新多个表

时间:2014-02-04 07:15:07

标签: hadoop mapreduce hive hiveql

我在hadoop集群中有10个字段的结构化数据。我需要将这些数据更新为多个hive表,其中包含原始数据中存在的字段子集。

例如:假设数据有字段F1,F2,F3 ...... F10。我有表B1包含字段F1,F2。表B2包含F1,F3。表B3含有F2,F4。

我想知道是否有一种方法可以填充表B1,B2,B3中的数据而无需多次读取A中的数据。

仅供参考:我通过吐出到多个表来对数据进行去规范化,因为这些表将拥有数百万条记录,之后我将它们聚合起来生成一些统计数据。

目前,我正在考虑以下方法。使用map reduce作业读取数据并使用多种输出格式将不同的键组合写入多个文件,并将这些文件中的数据加载到hive表中。请建议是否有更好的方法来做到这一点。

1 个答案:

答案 0 :(得分:5)

Hive有multi-table inserts

FROM A
INSERT INTO TABLE B1 SELECT F1, F2
INSERT INTO TABLE B2 SELECT F1, F3
INSERT INTO TABLE B3 SELECT F2, F4;