溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

SQL-Hive中常用的表格操作是什么

發(fā)布時間:2021-07-07 16:53:45 來源:億速云 閱讀:126 作者:chen 欄目:數(shù)據(jù)庫

本篇內(nèi)容主要講解“SQL-Hive中常用的表格操作是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“SQL-Hive中常用的表格操作是什么”吧!

01-最基礎(chǔ)的建表語句

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)鍵字均可使用小寫。

02-查看表結(jié)構(gòu)

執(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)

03-刪除表

刪除表的語句和刪除庫的類似,只是把database換成了table,都是使用drop關(guān)鍵字進(jìn)行刪除操作,慎重操作:

DROP TABLE 表名;

04-建分區(qū)表

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 '日期');

05-查詢既有建表語句

在公司中需要查詢既有表的建表格式時使用以下語句即可:

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í)!

向AI問一下細(xì)節(jié)

免責(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)容。

AI