hadoop学习笔记--11.hive DDL操作
来源:互联网 发布:java 时间选择控件 编辑:程序博客网 时间:2024/06/01 13:36
1.基本类型
整数类型:TINYINT,SMALLINT,INT,BIGINT,以上类型分别对应java中的byte,short,int,long。
小数类型:FLOAT,DOUBLE
布尔类型:BOOLEAN
字符串类型:STRING,VARCHAR,CHAR
2.复杂类型
ARRAY,MAP,STRUCT,TIMESTAMP(DATE)
常用的就是int ,string,float。
建议直接参考官方文档:
https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL
1.创建数据库
USE database_name;
三、数据表的DDL操作
1.创建数据表
CREATE [TEMPORARY] [EXTERNAL] TABLE [IF NOT EXISTS] [db_name.]table_name -- (Note: TEMPORARY available in Hive 0.14.0 and later) [(col_name data_type [COMMENT col_comment], ... [constraint_specification])] [COMMENT table_comment] [PARTITIONED BY (col_name data_type [COMMENT col_comment], ...)] [CLUSTERED BY (col_name, col_name, ...) [SORTED BY (col_name [ASC|DESC], ...)] INTO num_buckets BUCKETS] [SKEWED BY (col_name, col_name, ...) -- (Note: Available in Hive 0.10.0 and later)] ON ((col_value, col_value, ...), (col_value, col_value, ...), ...) [STORED AS DIRECTORIES] [ [ROW FORMAT row_format] [STORED AS file_format] | STORED BY 'storage.handler.class.name' [WITH SERDEPROPERTIES (...)] -- (Note: Available in Hive 0.6.0 and later) ] [LOCATION hdfs_path] [TBLPROPERTIES (property_name=property_value, ...)] -- (Note: Available in Hive 0.6.0 and later) [AS select_statement]; -- (Note: Available in Hive 0.5.0 and later; not supported for external tables)
这是官方文档给出的创建数据表的格式。不多做解释
解释一下几个关键词:
创建内部表: hive会把数据文件移动到它管理的数据仓库目录下
创建外部表: 需要添加EXTERNAL关键词。不会移动文件,与内部数据表主要区别体现在加载数据和删除数据表上。
创建分区: 需要添加PARTITIONED BY(关键词)
创建桶: 需要添加CLUSTERED BY(关键词)
指定列的分割格式: ROW FORMAT DELIMITED [FIELDS TERMINATED BY char [ESCAPED BY char]]
指定行的分割格式: COLLECTION ITEMS TERMINATED BY ‘\n’
指定存储的文件格式: STORED AS file_format
指定表格存放的位置: LOCATION hdfs_path
创建表的三种方式:
1.正常新建一张表。
2.创建一张表的子表(AS)
选择其中的几张作为新表的结构create table IF NOT EXISTS default.bf_log_20170727_sa AS select ip,user from default.bf_log_20170727;
3.复制一张表的格式,不含表的数据(like)
create table IF NOT EXISTS default.bf_log_20170728 like default.bf_log_20170727;
内部表与外部表的区别:
①内部表 的创建过程和数据加载过程(这两个过程可以在同一个语句中完成),在加载数据的过程中,实际数据会被移动到数据仓库目录中;之后对数据对访问将会直接在数据仓库目录中完成。删除表时,表中的数据和元数据将会被同时删除;
②外部表 只有一个过程,加载数据和创建表同时完成,并不会移动到数据仓库目录中,只是与外部数据建立一个链接。当删除一个 外部表 时,仅删除该链接;
2.删除数据表
DROP TABLE [IF EXISTS] table_name;
3.清空数据表
不删除表的结构,只清空表的数据
TRUNCATE TABLE table_name [PARTITION partition_spec];partition_spec: : (partition_column = partition_col_value, partition_column = partition_col_value, ...)
4.修改数据表
(1). 数据表重命名(rename to)
ALTER TABLE table_name RENAME TO new_table_name;
(2). 修改列名(change )
ALTER TABLE table_name [PARTITION partition_spec] CHANGE [COLUMN] col_old_name col_new_name column_type [COMMENT col_comment] [FIRST|AFTER column_name] [CASCADE|RESTRICT];
(3). 增加或删除列(add/replace)
ALTER TABLE table_name [PARTITION partition_spec] -- (Note: Hive 0.14.0 and later) ADD|REPLACE COLUMNS (col_name data_type [COMMENT col_comment], ...) [CASCADE|RESTRICT] -- (Note: Hive 1.1.0 and later)
(4). 分区操作
再次推荐官方文档,详细还有例子!!!!
https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL
- hadoop学习笔记--11.hive DDL操作
- Hadoop Hive基础SQL语法(DDL 操作)
- hadoop学习笔记-hive安装及操作
- Hadoop学习笔记之操作hive
- hadoop学习笔记--12.hive DML操作
- hadoop学习笔记 HIVE
- Hive基本操作-DDL
- hadoop学习笔记之HiveSQL DDL
- hadoop学习之--Hive笔记
- Hadoop学习笔记之Hive
- Hadoop Hive sql语法详解1-认识hive及DDL操作
- Hadoop Hive sql语法详解1-认识hive及DDL操作
- Hadoop Hive sql语法详解1-认识hive及DDL操作(1)
- Hadoop Hive sql语法详解1-认识hive及DDL操作
- Hadoop Hive sql语法详解1-认识hive及DDL操作
- Hadoop Hive sql语法详解1-认识hive及DDL操作
- hadoop学习之HIVE(3.1):hive建库,建表语句(DDL)
- hive表的DDL操作
- 服务器修改主机名
- JavaScript案例之粒子烟花
- jQuery获得内容的高度
- SVM支持向量机算法
- Spring Cloud 入门教程(一):服务治理(Eureka)
- hadoop学习笔记--11.hive DDL操作
- 初入数组
- HDOJ 2037 今年暑假不AC
- 图像处理16:图形旋转
- Web应用及Servlet简述(以Tomcat为例)
- 读书方法
- [js] 数据类型
- [PAT乙级]1004. 成绩排名 (20)
- 基于当当dubbox的provider部署及启动方式-main函数启动