首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

【挑战年薪300K】Hive语句详解之DDL操作

DDL操作

Hive是基于Hadoop构建的一套数据仓库分析系统,它提供了丰富的SQL查询方式来分析存储在Hadoop分布式文件系统中的数据,可以将结构化的数据文件映射为一张数据库表,并提供完整的SQL查询功能,可以将SQL语句转换为MapReduce任务进行运行,通过自己的SQL去查询分析需要的内容,这套SQL简称Hive SQL,使不熟悉mapreduce的用户很方便的利用SQL 语言查询,汇总,分析数据。而mapreduce开发人员可以把己写的mapper 和reducer作为插件来支持Hive做更复杂的数据分析。

它与关系型数据库的SQL略有不同,但支持了绝大多数的语句如DDL、DML以及常见的聚合函数、连接查询、条件查询。HIVE不适合用于联机online)事务处理,也不提供实时查询功能。它最适合应用在基于大量不可变数据的批处理作业。

HIVE的特点:可伸缩(在Hadoop的集群上动态的添加设备),可扩展,容错,输入格式的松散耦合。

Hive的官方文档中对查询语言有了很详细的描述,请参考:官方文档,本文的内容大部分翻译自该页面,期间加入了一些在使用过程中需要注意到的事项。

DDL操作

DDL

建表

删除表

修改表结构

创建/删除视图

创建数据库

显示命令

建表:

创建简单表:

创建外部表:

创建分区表:

创建Bucket表:

创建表并且创建索引字段:

复制空表:

举例说明:

create table user info(user_id int,cid string,kid string,username string)

row format delimited

fields terminated by ''

lines terminated by  ' ';

导入表的结构为:字段之间是以Tab分割,行之间用断行分割!

显示所有表:

SHOW TABLES;

按照正则表达式显示表:

SHOW TABLES '.*s';

修改表结构:

增加分区、删除分区

重命名表

修改列的名字、类型、位置、注释

增加/更新列

增加表的元数据信息

添加一列:

ALTER TABLE cnss  ADD COLUMNS (new_col INT);

添加一列并且添加列字段注释:

ALTER TABLE cnss ADD COLUMNS (new_col2 INT 'xxx comment');

更改表名称:

ALTER TABLE test RENAME test2;

删除列:

DROP TABLE name

增加分区:

ALTER TABLE database_name.table_name ADD IF NOT EXISTS

PARTITION(partition_column='partition_value') LOCATION 'folder_path' ;

删除分区:

ALTER TABLE database_name.table_name DROP IF EXISTS

PARTITION (partition_column='partition_value');

查看分区:

SHOW PARTITIONS database_name.table_name ;

表重命名:

ALTER TABLE table_name RENAME table_name1;

修改列的名字、位置、类型、注释:

ALTER TABLE table_name CHANGE [COLUMN] col_old_name  col_name1 column_type [COMMENT col_comment]  [FIRST | AFTER column_name]

在表中添加一列:

ALTER TABLE test  ADD  COLUMNS (new_col INT)

增加列更新列:

ALTER TABLE table_name ADD | REPLACE COLUMNS (col_name data_type [COMMENT col_comment],....)

解释:ADD添加    REPLACE 更新

改变表文件格式及组织:

ALTER TABLE table_name SET FILEFORMAT file_format

ALTER TABLE table_name CLUSTERED BY(userid) SORTED BY(viewTime) INTO num_buckets BUCKETS

创建/删除视图

CREATE VIEW [IF NOT EXISTS] view_ name [(column_name [COMMENT column_comment],..…)][COMMENT view_comment] [TBLPROPERTIES(property_ name=property_value,..)]AS SELECT

增加视图

如果没有提供表名,视图列的名字将由定义的SELECT表达式自动生成

如果修改基本表的属性,视图中不会体现,无效查询将会失败

视图是只读的,不能用LOAD/INSERT/ALTER

DROP VIEW view name

删除视图

创建数据库:

CREATE DATABASE name

显示命令:

show tables;

show databases;

show partitions;

show functions;

describe extended table_name dat col_name;

如果觉得对你有所帮助。记得收藏和关注呦!(每日更新各种大数据框架)

如需转载请注明出处(创作不易请见谅)

和巨婴程序猿一起成长。让自己变得更优秀

想了解更多精彩内容,快来关注跟着巨婴去逆袭

我最近一直在思考(大数据通俗讲解)的问题,你的看法是什么呢?关注我快说出来一起交流一下吧~

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200704A0D0HC00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券