本篇內容主要講解“SQL-Hive中常用的表格操作是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“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]
所有[ ]中的內容都是可選項,即可有可無,下面我們分別詳細介紹。
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,然后使用并在其中建表,執行效果如下:
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中的關鍵字大小寫是不區分的,所有關鍵字均可使用小寫。
執行語句:
DESC 表名;
查詢上一步新建表的字段及字段對應的數據類型,運行效果如下:
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關鍵字進行刪除操作,慎重操作:
DROP TABLE 表名;
Hive中有分區表的概念,分區表改變了Hive對數據存儲的組織方式。查詢時如果我們限定了分區范圍,Hive就可以直接去相應的目錄下查詢數據,而不需要掃描整個表,所以當數據量很大時可以顯著提高查詢性能。
建立分區表要使用關鍵字[PARTITIONED BY (col_name data_type[COMMENT col_comment], ...)] ,注意分區的字段不可在普通字段中重復出現。分區表在工作中十分常見,一般來說公司所有的表都會以日期進行分區,以便提高查詢效率。
我們還是以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 '當日使用次數' ,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 '當日使用次數', `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中常用的表格操作是什么”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。