我在学习hadoop/大数据技术。我想将大量数据接收到Hive中。我开始使用一个简单的csv文件,当我尝试使用 INSERT 命令逐个记录加载每个记录,插入一个记录本身大约需要1分钟。当我把文件放入hdfs,然后使用 LOAD 命令,因为它只是将文件复制到hive的仓库中。我只想知道,当一个人选择加入时,他们必须面对什么样的权衡 LOAD 而不是 INSERT .
INSERT
LOAD
rvpgvaaj1#
加载配置单元在将数据加载到表中时不进行任何转换。加载操作目前是纯复制/移动操作,将数据文件移动到与配置单元表对应的位置。可以使用insert子句将insert查询结果插入到表中,然后insert子句运行map reduce作业,因此需要一些时间来执行。如果您想优化/优化insert语句,请参阅下面的一些技巧:1.将hive-site.xml中的执行引擎设置为tez(如果已经安装)
set hive.execution.engine=tez;
2.使用文件
CREATE TABLE A_ORC ( customerID int, name string, age int, address string ) STORED AS ORC tblproperties (“orc.compress" = “SNAPPY”); INSERT INTO TABLE A_ORC SELECT * FROM A;
3.在配置单元中运行并发作业可以节省整个作业运行时间。要实现配置单元default.xml,需要更改以下配置:
set hive.exec.parallel=true; set hive.exec.parallel.thread.number=<your value>;
更多信息,请访问http://hortonworks.com/blog/5-ways-make-hive-queries-run-faster/ 希望这有帮助。
1条答案
按热度按时间rvpgvaaj1#
加载配置单元在将数据加载到表中时不进行任何转换。加载操作目前是纯复制/移动操作,将数据文件移动到与配置单元表对应的位置。
可以使用insert子句将insert查询结果插入到表中,然后insert子句运行map reduce作业,因此需要一些时间来执行。
如果您想优化/优化insert语句,请参阅下面的一些技巧:
1.将hive-site.xml中的执行引擎设置为tez(如果已经安装)
2.使用文件
3.在配置单元中运行并发作业可以节省整个作业运行时间。要实现配置单元default.xml,需要更改以下配置:
更多信息,请访问http://hortonworks.com/blog/5-ways-make-hive-queries-run-faster/ 希望这有帮助。