一:將數據導入hive(六種方式)
1.從本地導入
load data local inpath 'file_path' into table tbname;
用於一般的場景。
2.從hdfs上導入數據
load data inpath ‘hafd_file_path’ into table tbname;
應用場景:使用與大數據的存儲
3.load方式的覆蓋
load data local inpath 'file_path' overwrite into table tbname;
應用場景:用於臨時表。
4.子查詢方式
應用場景:對於數據查詢的結構的保存。
create table tb2 as select * from tb1;
5.insert into
應用場景:和上面的應用場景相同,因為后面接的都是select查詢。
不需要as,直接后接入select。
insert into table tb2 select q1;
6.location
這種情況適用於前面說的外部表,或者管理表中對於表數據的指定。
然后put就好。
我想,前提是需要先建一個表。
在HDFS上看效果
二:將數據從hive里導出(四種方式)
1.insert方式
1)保存到本地
語句:insert overwrite local directory 'path' select q1;
效果:但是效果不好,沒有分隔符
改造:insert overwrite local directory 'path' row format delimited fields terminated by '\t' select q1;
效果:
2)保存到HDFS上
insert overwrite directory 'hdfs_path' select * from dept;
注意點:hdfs_path必須存在,這個說的是多級目錄,但是最后一級的目錄是自動生成的。
2.bin/hdfs -get
與put一樣,屬於HDFS的基本操作。
dfs -get .............
3.linux命令行執行HQL
使用 -e
使用 -f
然后重定向到指定的文件。
4.sqoop協作框架。
后面將會有關於sqoop的專門篇章。
HDFS與關系型數據庫之間的數據導入與到出。