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;
只複製表結構,不包含數據。