文档首页 > > 开发指南> Hive应用开发> Hive接口> HiveQL

HiveQL

分享
更新时间: 2020/06/19 GMT+08:00

HiveQL支持当前使用的MRS Hive与对应开源Hive版本中的所有特性,详情请参见https://cwiki.apache.org/confluence/display/hive/languagemanual。MRS Hive版本与开源Hive版本的对应关系如表1所示。

表1 MRS Hive与开源版本对应关系一览表

MRS版本

开源Hive版本

MRS 1.8.x及以前的版本

1.2.1

MRS 1.9.x

2.3.3

MRS 2.x

3.1.1

MRS提供的扩展Hive语句如表2所示(仅在MRS1.8.x以及之前的版本中支持)。

表2 扩展Hive语句

扩展语法

语法说明

语法示例

示例说明

CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name (col_name data_type [COMMENT col_comment], ...) [ROW FORMAT row_format] [STORED AS file_format] | STORED BY 'storage.handler.class.name' [WITH SERDEPROPERTIES (...) ] ...... [TBLPROPERTIES ("groupId"=" group1 ","locatorId"="locator1")] ...;

创建一个Hive表,并指定表数据文件分布的locator信息。

CREATE TABLE tab1 (id INT, name STRING) row format delimited fields terminated by '\t' stored as RCFILE TBLPROPERTIES("groupId"=" group1 ","locatorId"="locator1");

创建表tab1,并制定tab1的表数据分布在locator1节点上。

CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name (col_name data_type [COMMENT col_comment], ...) [ [ROW FORMAT row_format] [STORED AS file_format] | STORED BY 'storage.handler.class.name' [WITH SERDEPROPERTIES (...) ] ... [TBLPROPERTIES ('column.encode.columns'='col_name1,col_name2'| 'column.encode.indices'='col_id1,col_id2', 'column.encode.classname'='encode_classname')]...;

创建一个Hive表,并指定表的加密列和加密算法。

create table encode_test(id INT, name STRING, phone STRING, address STRING) ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe' WITH SERDEPROPERTIES ('column.encode.indices'='2,3', 'column.encode.classname'='org.apache.hadoop.hive.serde2.SMS4Rewriter') STORED AS TEXTFILE;

创建表encode_test,并制定插入数据时对第2、3列加密,加密算法类为org.apache.hadoop.hive.serde2.SMS4Rewriter。

REMOVE TABLE hbase_tablename [WHERE where_condition];

删除Hive on HBase表中符合条件的数据。

remove table hbase_table1 where id = 1;

删除表中符合条件“id =1”的数据。

CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name (col_name data_type [COMMENT col_comment], ...) [ROW FORMAT row_format] STORED AS inputformat 'org.apache.hadoop.hive.contrib.fileformat.SpecifiedDelimiterInputFormat' outputformat 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat';

创建Hive表,并设定表可以指定自定义行分隔符。

create table blu(time string, num string, msg string) row format delimited fields terminated by ',' stored as inputformat 'org.apache.hadoop.hive.contrib.fileformat.SpecifiedDelimiterInputFormat' outputformat 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat';

创建表blu,指定inputformat为SpecifiedDelimiterInputFormat,以便查询时可以指定表的查询行分隔符。

分享:

    相关文档

    相关产品

文档是否有解决您的问题?

提交成功!

非常感谢您的反馈,我们会继续努力做到更好!

反馈提交失败,请稍后再试!

*必选

请至少选择或填写一项反馈信息

字符长度不能超过200

提交反馈 取消

如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨

智能客服提问云社区提问