使用hive sql批量插入数百万条记录到hive?

时间:2014-11-06 07:52:29

标签: hadoop hive

我想为hive表存储为镶木地板格式准备样本数据。表看起来像这样:

hive> CREATE TABLE exps (sn STRING, buildNum STRING, shortProdName
STRING, userIV STRING, cfs STRUCT<version : STRING, name : STRING,
objArray : ARRAY<STRUCT<id : STRING, properties : INT>> >) STORED AS PARQUET;

然后我写了一个sql文件说“sample.sql”,其中包含数百万行的sql insert命令。

  

$ /opt/hive-0.13.1/bin/hive -f sample.sql

这将导致hive启动大量map-reduce作业并逐个执行,这非常慢。

所以我的问题是:有更好的方法吗?

2 个答案:

答案 0 :(得分:1)

Hive中没有虚拟表,因此sample.sql不起作用。

由于您需要使用SQL在hive中尝试镶木地板格式,我的建议是

  1. 将数据加载到像mysql这样的关系数据库中。
  2. 使用Apache Sqoop将关系数据库中的数据导入HDFS。
  3. 将Hive表创建为镶木地板格式
  4. 将数据从HDFS加载到Hive表。

答案 1 :(得分:-3)

我在SQL方面不是那么专业,但我认为这只是将数据插入数据库的方法

INSERT INTO TABLE(c1,c2,...) VALUES(v1,v2,...);