您好,登錄后才能下訂單哦!
本篇內(nèi)容主要講解“SQL-Hive中常用的表格操作是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“SQL-Hive中常用的表格操作是什么”吧!
Hive建表的全部建表語法如下:
CREATE [EXTERNAL] TABLE [IF NOT EXISTS] 表名 (列名 data_type [COMMENT 列注釋], ...) [COMMENT 表注釋] [PARTITIONED BY (列名 data_type [COMMENT 列注釋], ...)] [CLUSTERED BY (列名, 列名, ...) [SORTED ,BY (列名 [ASC|DESC], ...)] INTO num_buckets BUCKETS] [ROW FORMAT row_format] [STORED AS file_format] [LOCATION hdfs_path]
所有[ ]中的內(nèi)容都是可選項(xiàng),即可有可無,下面我們分別詳細(xì)介紹。
CREATE [EXTERNAL] TABLE [IF NOT EXISTS] 表名
(列名 data_type)
是建表語句必須有的,舉個例子,我們要建立一個用戶啟動表:
CREATE TABLE t_od_use_cnt ( date_8 INT ,platform string ,app_version string ,user_id BIGINT ,use_cnt INT ,is_active TINYINT );
首先我們建一個庫app,然后使用并在其中建表,執(zhí)行效果如下:
hive> create database app; OK Time taken: 0.899 seconds hive> use app; OK Time taken: 0.03 seconds hive> create table t_od_use_cnt( > date_8 int > ,platform string > ,app_version string > ,user_id bigint > ,use_cnt int > ,is_active tinyint > ); OK Time taken: 0.389 seconds
備注:Hive中的關(guān)鍵字大小寫是不區(qū)分的,所有關(guān)鍵字均可使用小寫。
執(zhí)行語句:
DESC 表名;
查詢上一步新建表的字段及字段對應(yīng)的數(shù)據(jù)類型,運(yùn)行效果如下:
hive> desc t_od_use_cnt; OK date_8 int platform string app_version string user_id bigint use_cnt int is_active tinyint Time taken: 0.28 seconds, Fetched: 6 row(s)
刪除表的語句和刪除庫的類似,只是把database換成了table,都是使用drop關(guān)鍵字進(jìn)行刪除操作,慎重操作:
DROP TABLE 表名;
Hive中有分區(qū)表的概念,分區(qū)表改變了Hive對數(shù)據(jù)存儲的組織方式。查詢時如果我們限定了分區(qū)范圍,Hive就可以直接去相應(yīng)的目錄下查詢數(shù)據(jù),而不需要掃描整個表,所以當(dāng)數(shù)據(jù)量很大時可以顯著提高查詢性能。
建立分區(qū)表要使用關(guān)鍵字[PARTITIONED BY (col_name data_type[COMMENT col_comment], ...)] ,注意分區(qū)的字段不可在普通字段中重復(fù)出現(xiàn)。分區(qū)表在工作中十分常見,一般來說公司所有的表都會以日期進(jìn)行分區(qū),以便提高查詢效率。
我們還是以t_od_use_cnt為例,建表語句如下:
CREATE TABLE t_od_use_cnt ( platform string comment '平臺 android,ios' ,app_version string comment 'app版本' ,user_id BIGINT comment '用戶id' ,use_cnt INT comment '當(dāng)日使用次數(shù)' ,is_active TINYINT comment '是否活躍' ) partitioned BY (date_8 INT comment '日期');
在公司中需要查詢既有表的建表格式時使用以下語句即可:
show create table tablename;
查詢上文已建表格效果如下:
hive> show create table t_od_use_cnt; OK CREATE TABLE `t_od_use_cnt`( `platform` string COMMENT '平臺 android,ios', `app_version` string COMMENT 'app版本,', `user_id` bigint COMMENT '用戶id', `use_cnt` int COMMENT '當(dāng)日使用次數(shù)', `is_active` tinyint COMMENT '是否活躍') PARTITIONED BY ( `date_8` int COMMENT '日期') ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' STORED AS INPUTFORMAT 'org.apache.hadoop.mapred.TextInputFormat' OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat' LOCATION 'hdfs://hadoop:9000/usr/hive/warehouse/t_od_use_cnt' TBLPROPERTIES ( 'transient_lastDdlTime'='1556161316')
到此,相信大家對“SQL-Hive中常用的表格操作是什么”有了更深的了解,不妨來實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。