閱讀目錄
本文版權歸mephisto和部落格園共有,歡迎轉載,但須保留此段宣告,並給出原文連結,謝謝合作。
文章是哥(mephisto)寫的,SourceLink
序
上一篇,我們介紹Impala的相關操作。
下面我們開始繼續進一步的瞭解Impala的相關操作。
匯入資料
一:INSERT VALUES
該方式不適合載入大量的資料到基於 HDFS (HDFS-based)的表,因為插入操作無法並行,並且每一個語句會產生單獨的資料檔案,形成很多小檔案。
不要執行每次只插入單行資料的 很多條的 INSERT ... VALUES 語句的指令碼,會產生很多小檔案。將資料都放在VALUES中會好很多,就沒有那多的小檔案。insert into student values ('1','張三','男','2017-10-23 10:10:20'), ('2','李四','男','2017-10-23 10:10:20'), ('3','王五','男','2017-10-23 10:10:20'); insert into student values ('4','張三1','男','2017-10-23 10:10:20'), ('5','李四1','男','2017-10-23 10:10:20'), ('6','王五1','男','2017-10-23 10:10:20');使用insert into table 語法,每一組新插入的資料,都會追加到原來的資料後。
我們可以看到hdfs中有兩個檔案。也就是說insert一次就生成一個檔案,所以會產生很多小檔案。
使用insert overwrite table 語法,每一組新插入的資料,都會覆蓋表中原有的資料。
insert overwrite student values ('7','張三2','男','2017-10-23 10:10:20'), ('8','李四2','男','2017-10-23 10:10:20'), ('9','王五2','男','2017-10-23 10:10:20');二:LOAD DATA語句
LOAD DATA 語句簡化了 Impala 內部表從 HDFS 位置移動一個或目錄下所有資料檔案到該表對應的 Impala 資料目錄中的 ETL 過程。
新建待匯入檔案資料 student.txt
從本地上傳到hdfs
sudo -u impala hdfs dfs -put student.txt /tmp/student.txt
檢視
hadoop fs -ls /tmp/
匯入
load data inpath '/tmp/student.txt' into table student ;可以看到檔案的內容匯入到了表中,
並且對應的hdfs目錄的檔案已經不再了。重新將檔案上傳到對應目錄
然後重新匯入
這次我們使用overwriteload data inpath '/tmp/student.txt' overwrite into table student ;可以看到資料已經載入進去,並且原有的資料都被替換掉了。
三:分割槽表的load data
新增分割槽
alter table student_p add partition (year='2017',month='01',day='01'); alter table student_p add partition (year='2017',month='01',day='02');load data inpath '/tmp/student.txt' overwrite into table student_p partition(year='2017',month='01',day='01') ; load data inpath '/tmp/student.txt' overwrite into table student_p partition(year='2017',month='01',day='02') ;這之間還需要再將檔案上傳到hdfs
select * from student_p;可見指定了分割槽後,不會影響到其他分割槽的資料。
查詢
查詢這裡就只舉幾個可能需要注意到的,其他的語法可以詳見官網。
一:limit
設定select查詢中結果集的最大行數
select * from student limit 1;二:offset
offset可以和limit一起使用,可以用於模擬“分頁”結果集,實際中最好不要這樣用,儘量的將結果集快取到應用端,在應用端分頁。
select * from student order by id limit 1 offset 0; select * from student order by id limit 1 offset 1;
--------------------------------------------------------------------
到此,本章節的內容講述完畢。
系列索引
本文版權歸mephisto和部落格園共有,歡迎轉載,但須保留此段宣告,並給出原文連結,謝謝合作。
文章是哥(mephisto)寫的,SourceLink