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;
如果觉得对你有所帮助。记得收藏和关注呦!(每日更新各种大数据框架)
如需转载请注明出处(创作不易请见谅)
和巨婴程序猿一起成长。让自己变得更优秀
想了解更多精彩内容,快来关注跟着巨婴去逆袭
我最近一直在思考(大数据通俗讲解)的问题,你的看法是什么呢?关注我快说出来一起交流一下吧~
领取专属 10元无门槛券
私享最新 技术干货