上一篇,我們介紹Impala的介紹及安裝。 下麵我們開始繼續進一步的瞭解Impala的相關操作。 ...
閱讀目錄
本文版權歸mephisto和博客園共有,歡迎轉載,但須保留此段聲明,並給出原文鏈接,謝謝合作。
文章是哥(mephisto)寫的,SourceLink
序
上一篇,我們介紹Impala的介紹及安裝。
下麵我們開始繼續進一步的瞭解Impala的相關操作。
資料庫相關
一:創建
在這裡,資料庫就是一個目錄結構,當然對於的元數據還會持久化到關係型資料庫。
create database dbtest;二:查看
可以查看當前可用的資料庫。
show databases;三:刪除
刪除制定的資料庫,會刪除資料庫中的表,及數據,hdfs文件。資料庫對於的hdfs目錄結構也會被刪除。
drop database dbtest1;四:切換當前資料庫
預設的是default資料庫,切換了後,可以直接使用當前資料庫中的表。
use dbtest;
表相關
一:創建
create table student ( id string , name string , sex string , birthday timestamp );二:創建分區表
分區表可以根據存放數據,這樣在分析的時候,可以只使用對應分區的數據,可以大大的降低檢索的數據量,提高分析性能。
create table student_p ( id string , name string , sex string , birthday timestamp ) partitioned by (year string,month string,day string);這裡定義了year,month,day 這3層分區。
三:查看表明細
顯示表的元數據,包括列名,類型等等。
desc student;
formatted參數可以顯示更多信息,顯示格式與hive類似。包括底層詳細信息,創建時間,格式,hdfs文件位置等等。
desc formatted student_p;
四:查看當前資料庫已有的表
show tables;五:HDFS目錄
可以看到在dbtest.db的目錄下有兩個我們建好表的目錄。
六:修改表
ALTER TABLE 語句用來修改現有表的結構或屬性。在 Impala 里,這是一個邏輯操作,更新了 Impala 和 Hive 共用的 metastore 資料庫中表的元數據; ALTER TABLE 語句不會對實際的數據文件進行重寫、移動等操作。因此,你可能需要相應的物理文件系統操作才能實現移動數據文件到不同的 HDFS 目錄,重寫數據文件來包含其他欄位,或轉換成不同的文件格式。
七:重命名錶
alter table student rename to student1;對於內部表,這一操作實際地修改了包含數據文件的 HDFS 目錄名;原始目錄將不再存在。
八:增加列
alter table student1 add columns (addr string);九:替換列
alter table student1 replace columns(id int,name string, sex string,tel int);當替換列時,原有列的定義都被廢棄。你可能會在收到一組新的有不同數據類型或不同順序的列的數據文件時使用這一技術(數據文件會被保留,因此當新列與舊列不相容時,需要在執行進一步的查詢前,使用 INSERT OVERWRITE 或 LOAD DATA OVERWRITE 語句替換所有的數據)。
可以看到。我們將原有列的結構,類型做了很大的替換。
十:修改列
修改列可以改變列的名字和類型
alter table student1 change id idstr string;十一:刪除列
alter table student1 drop tel;十二:修改文件格式
alter table student1 set fileformat parquet;因為本操作只是修改表的元數據,對現存的數據,你必須使用 Impala 之外的 Hadoop 技術對已有的數據進行轉換。之後再在 Impala 中使用 INSERT 語句創建的數據將使用新的格式。你不能指定文本文件的分隔符;文本文件的分隔符必須是逗號。
十三:增加分區
alter table student_p add partition(year='2017',month='07',day='24');可以看到hdfs中student_p的下麵有個3層目錄結構。
重覆上面增加分區的操作,分別添加22,23日的分區。
十四:刪除分區
刪除day=22的分區。
alter table student_p drop partition(year='2017',month='07',day='22');可以看到該表只有23,24兩個分區。hdfs對應的目錄會被刪除。所以該分區的實際文件也會被刪除。
十五:查看表的統計狀態
show table stats student_p;
上述語句中使用到這個,可以看到每個分區的狀態,如果有數據,還會統計行數,文件數,大小等等。
十六:查看表的列統計
show column stats student_p;
十七:採集表的統計
compute stats student_p;
採集相關表和相關列的統計情況。COMPUTE STATS 語句是從底層向上構建,以提高可用性和用戶友好度。你可以運行一個單獨的 Impala COMPUTE STATS 語句來採集包括 table 和 column 的統計信息,而不是為表和列的統計信息分別運行 Hive ANALYZE TABLE 語句。
COMPUTE STATS 也可以採集 HBase 表的信息。採集的 HBase 表的統計信息與 HDFS-backed 表的有所不同,但當 HBase 表執行連接查詢時,統計信息仍被用於優化。
COMPUTE STATS執行完後,這些統計信息被存放在 metastore 資料庫中,可以為impala用來優化查詢。
--------------------------------------------------------------------
到此,本章節的內容講述完畢。
系列索引
本文版權歸mephisto和博客園共有,歡迎轉載,但須保留此段聲明,並給出原文鏈接,謝謝合作。
文章是哥(mephisto)寫的,SourceLink