資料分析引擎-Hive
阿新 • • 發佈:2019-01-06
什麼是Hive,並且Hive解決了什麼問題
當資料非常多的時候,比如我們用幾千個節點,甚至幾萬個節點來儲存我們的資料,通過這些資料,分析出我們想要的結果,比如生成天級別,周級別,月級別甚至年級別的報表。
如果用mysql,或者是oracle,都太慢了!!
而Hive是構建在Hadoop之上的資料倉庫,它主要用來訪問和管理資料,同時也提供了類sql的查詢語言,它的獨特之處,在於它可以處理超大規模的資料,可擴充套件性和容錯性都非常強。
兩個概念:OLAP和OLTP
OLAP:OnLine Analytical Processing。
要做到OLAP系統的分析,需要有極快的相應速度,實時的資料更新。而Hive都不具備。
OLTP:OnLine Transaction Processing。
Hive對事物的支援很弱,所以它不支援OLTP。
Hive的表達能力有限,不支援迭代式計算,並且一些複雜運算,不好用sql進行表達。
Hive內在執行原理
1,HQL中對查詢語句的解釋,優化,以及生成查詢計劃,都是由Hive完成的。
2,所有的資料都是儲存在hadoop中。
3,HQL最終都會生成mapreducer任務,進行分散式的執行。
Hive常用的HQL例項
create table if not exists employees ( name STRING, salary FLOAT, subordinates ARRAY<STRING>, address STRUCT<street:STRING, city:STRING, state:STRING, zip:INT> ) row format delimited fields terminated by '\001'
create/drop/alter database;
create/drop/truncate table;
alter table/patition/column;
create/drop/alter index;
create/drop function;
show;
describe;
create/drop/grant/revoke roles and privileges;