Hadoop Hive sql語法詳解1-認識hive及DDL操作

hive或許我們有一個整體的認識,可以轉換爲mapreduce,那麼具體是如何做的那?
1.編寫的mapreduce能否成爲hive插件那?
2.hive如何創建?
3.hive是如何查詢數據的?


1.認識hive:

Hive 是基於Hadoop 構建的一套數據倉庫分析系統,它提供了豐富的SQL查詢方式來分析存儲在Hadoop 分佈式文件系統中的數據,可以將結構

化的數據文件映射爲一張數據庫表,並提供完整的SQL查詢功能,可以將SQL語句轉換爲MapReduce任務進行運行,通過自己的SQL 去查詢分析需

要的內容,這套SQL 簡稱Hive SQL,使不熟悉mapreduce 的用戶很方便的利用SQL 語言查詢,彙總,分析數據。而mapreduce開發人員可以把

己寫的mapper 和reducer 作爲插件來支持Hive 做更復雜的數據分析。



     它與關係型數據庫的SQL 略有不同,但支持了絕大多數的語句如DDL、DML 以及常見的聚合函數、連接查詢、條件查詢。HIVE不適合用於聯機

online)事務處理,也不提供實時查詢功能。它最適合應用在基於大量不可變數據的批處理作業。

    HIVE的特點:可伸縮(在Hadoop的集羣上動態的添加設備),可擴展,容錯,輸入格式的鬆散耦合。


2.  DDL 操作
創建簡單表

hive> CREATE TABLE pokes (foo INT, bar STRING);


複雜一下如下:
創建外部表:


CREATE EXTERNAL TABLE page_view(viewTime INT, userid BIGINT,
     page_url STRING, referrer_url STRING,
     ip STRING COMMENT 'IP Address of the User',
     country STRING COMMENT 'country of origination')
COMMENT 'This is the staging page view table'
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\054'
STORED AS TEXTFILE
LOCATION '<hdfs_location>';

建分區表:

CREATE TABLE par_table(viewTime INT, userid BIGINT,
     page_url STRING, referrer_url STRING,
     ip STRING COMMENT 'IP Address of the User')
COMMENT 'This is the page view table'
PARTITIONED BY(date STRING, pos STRING)
ROW FORMAT DELIMITED ‘\t’
   FIELDS TERMINATED BY '\n'
STORED AS SEQUENCEFILE;

建Bucket表

CREATE TABLE par_table(viewTime INT, userid BIGINT,
     page_url STRING, referrer_url STRING,
     ip STRING COMMENT 'IP Address of the User')
COMMENT 'This is the page view table'
PARTITIONED BY(date STRING, pos STRING)
CLUSTERED BY(userid) SORTED BY(viewTime) INTO 32 BUCKETS
ROW FORMAT DELIMITED ‘\t’
   FIELDS TERMINATED BY '\n'
STORED AS SEQUENCEFILE;



創建表並創建索引字段ds
hive> CREATE TABLE invites (foo INT, bar STRING) PARTITIONED BY (ds STRING);

複製一個空表
CREATE TABLE empty_key_value_store
LIKE key_value_store;

例子
create table  user_info (user_id int, cid string, ckid string, username string)
row format delimited
fields terminated by '\t'
lines terminated by '\n';
導入數據表的數據格式是:字段之間是tab鍵分割,行之間是斷行。

及要我們的文件內容格式:

100636  100890  c5c86f4cddc15eb7        yyyvybtvt
100612  100865  97cc70d411c18b6f        gyvcycy
100078  100087  ecd6026a15ffddf5        qa000100


顯示所有表
hive> SHOW TABLES;
按正條件(正則表達式)顯示錶,
hive> SHOW TABLES '.*s';
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章