目录
2 方式2:采用ALTER TABLE更新分区、添加元数据形式(推荐)
3 方式3:利用构建外部表+ msck repair table修复元数据形式加载数据(强烈推荐)
0 前言
一般很多企业加载HDFS数据到hive时采用load命令,包括很多文章也推荐该命令形式,但是这种命令并不是一种很好的方式,因为他的本质是剪切数据到Hive里面,这样数据其实是不安全的,而且load的时候很耗时间。其实我们在加载数据的时候,还有更高效,更便捷的加载方式,本文重点对这几种方式进行总结对比分析。
1 采用Load 方式
(1)命令
LOAD DATA [LOCAL] INPATH 'filepath' [OVERWRITE] INTO TABLE tablename partition (A='XXX')
(2)解释
[LOCAL]可选项,
带LOCAL表示从你的本地(指linux服务器上)加载文件到HIVE表内容里面,Local本地上面对应的这个文件不会消失.
不带LOCAL标识,表示从HDFS上面文件移动到HIVE表里面,HDFS路径下对应的该文件就会消失。实际上就是剪切
不管是否带有LOCAL标识,其实本质上面都是把这个文件加载到Hive表对应的HDFS路径下.直接把这个文件使用hdfs dfs -mv或者hdfs dfs -put到Hive表对应的路径下效果是一样的.只不过使用Load方式加载必须是在Hive