Hive几种常见的数据导入方式,总结为四种:
1、从本地文件系统中导入数据到Hive表;
2、从HDFS上导入数据到Hive表;
3、从别的表中查询出相应的数据并导入到Hive表中;
4、在创建表的时候通过从别的表中查询出相应的记录并插入到所创建的表中。
一、从本地文件系统中导入数据到Hive表
LOAD DATA LOCAL INPATH '/home/spark/opt/data_dir/base_food_all_20151029.txt' OVERWRITE INTO TABLE base_food_1104_local;
用时:Time taken: 0.415 seconds
数据量:15363485 4.6G
Time taken: 160.279 seconds
和我们熟悉的关系型数据库不一样,Hive现在还不支持在insert语句里面直接给出一组记录的文字形式;也就是说, Hive并不支持INSERT INTO .... VALUES形式的语句。
二、从HDFS上导入数据到Hive表
从本地文件系统中将数据导入到Hive表的过程中,其实是先将数据临时复制到HDFS的一个目录下(典型的情况是复制到上传用户的HDFS home目录下,比如/home/spark/),然后再将数据从那个临时目录下移动到对应的Hive表的数据目录里面;当然,Hive也支持将数据直接从HDFS上的一个目录移动到相应Hive表的数据目录下。
LOAD DATA INPATH '/alidata/order_20151021.txt' OVERWRITE INTO TABLE order_1104;
数据量:35584
用时:Time taken: 0.581 seconds
LOAD DATA INPATH '/alidata/base_food_all_20151029.txt' OVERWRITE INTO TABLE base_food_1104;
用时:Time taken: 0.415 seconds
数据量:15363485 4.6G
三、从别的表中查询出相应的数据并导入到Hive表中
同《Hive自身数据导出的方式 -->http://blog.csdn.net/nisjlvhudy/article/details/49665649》中的第二部分。
四、在创建表的时候通过从别的表中查询出相应的记录并插入到所创建的表中
hive> create table sex_as as select * from base_sex;
注:
hive> create table sex_like like base_sex;
只复制表结构,不包含数据。