本文版權歸mephisto和博客園共有,歡迎轉載,但須保留此段聲明,並給出原文連接,謝謝合做。html
文章是哥(mephisto)寫的,SourceLink緩存
上一篇,咱們介紹Impala的相關操做。oop
下面咱們開始繼續進一步的瞭解Impala的相關操做。spa
一:INSERT VALUES
該方式不適合載入大量的數據到基於 HDFS (HDFS-based)的表,由於插入操做沒法並行,而且每個語句會產生單獨的數據文件,造成不少小文件。
不要運行每次只插入單行數據的 不少條的 INSERT ... VALUES 語句的腳本,會產生不少小文件。將數據都放在VALUES中會好不少,就沒有那多的小文件。3dinsert 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 語法,每一組新插入的數據,都會追加到原來的數據後。 code
咱們能夠看到hdfs中有兩個文件。也就是說insert一次就生成一個文件,因此會產生不少小文件。htm
使用insert overwrite table 語法,每一組新插入的數據,都會覆蓋表中原有的數據。blog
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.txthadoop
從本地上傳到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