本篇内容主要讲解“SQL-Hive中常用的表格操作是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SQL-Hive中常用的表格操作是什么”吧!

01-最基础的建表语句

Hive建表的全部建表语法如下:

CREATE[EXTERNAL]TABLE[IFNOTEXISTS]表名(列名data_type[COMMENT列注释],...)[COMMENT表注释][PARTITIONEDBY(列名data_type[COMMENT列注释],...)][CLUSTEREDBY(列名,列名,...)[SORTED,BY(列名[ASC|DESC],...)]INTOnum_bucketsBUCKETS][ROWFORMATrow_format][STOREDASfile_format][LOCATIONhdfs_path]

所有[ ]中的内容都是可选项,即可有可无,下面我们分别详细介绍。

CREATE [EXTERNAL] TABLE [IF NOT EXISTS] 表名

(列名 data_type)

是建表语句必须有的,举个例子,我们要建立一个用户启动表:

CREATETABLEt_od_use_cnt(date_8INT,platformstring,app_versionstring,user_idBIGINT,use_cntINT,is_activeTINYINT);

首先我们建一个库app,然后使用并在其中建表,执行效果如下:

hive>createdatabaseapp;OKTimetaken:0.899secondshive>useapp;OKTimetaken:0.03secondshive>createtablet_od_use_cnt(>date_8int>,platformstring>,app_versionstring>,user_idbigint>,use_cntint>,is_activetinyint>);OKTimetaken:0.389seconds

备注:Hive中的关键字大小写是不区分的,所有关键字均可使用小写。

02-查看表结构

执行语句:

DESC表名;

查询上一步新建表的字段及字段对应的数据类型,运行效果如下:

hive>desct_od_use_cnt;OKdate_8intplatformstringapp_versionstringuser_idbigintuse_cntintis_activetinyintTimetaken:0.28seconds,Fetched:6row(s)03-删除表

删除表的语句和删除库的类似,只是把database换成了table,都是使用drop关键字进行删除操作,慎重操作:

DROPTABLE表名;04-建分区表

Hive中有分区表的概念,分区表改变了Hive对数据存储的组织方式。查询时如果我们限定了分区范围,Hive就可以直接去相应的目录下查询数据,而不需要扫描整个表,所以当数据量很大时可以显著提高查询性能。

建立分区表要使用关键字[PARTITIONED BY (col_name data_type[COMMENT col_comment], ...)] ,注意分区的字段不可在普通字段中重复出现。分区表在工作中十分常见,一般来说公司所有的表都会以日期进行分区,以便提高查询效率。

我们还是以t_od_use_cnt为例,建表语句如下:

CREATETABLEt_od_use_cnt(platformstringcomment'平台android,ios',app_versionstringcomment'app版本',user_idBIGINTcomment'用户id',use_cntINTcomment'当日使用次数',is_activeTINYINTcomment'是否活跃')partitionedBY(date_8INTcomment'日期');05-查询既有建表语句

在公司中需要查询既有表的建表格式时使用以下语句即可:

showcreatetabletablename;

查询上文已建表格效果如下:

hive>showcreatetablet_od_use_cnt;OKCREATETABLE`t_od_use_cnt`(`platform`stringCOMMENT'平台android,ios',`app_version`stringCOMMENT'app版本,',`user_id`bigintCOMMENT'用户id',`use_cnt`intCOMMENT'当日使用次数',`is_active`tinyintCOMMENT'是否活跃')PARTITIONEDBY(`date_8`intCOMMENT'日期')ROWFORMATDELIMITEDFIELDSTERMINATEDBY','STOREDASINPUTFORMAT'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中常用的表格操作是什么”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!