hive从入门到放弃(二)——DDL数据定义
前一篇文章,介绍了什么是 hive,以及 hive 的架构、数据类型,没看的可以点击阅读:hive从入门到放弃(一)——初识hive
今天讲一下 hive 的 DDL 数据定义
创建数据库
CREATE DATABASE [IF NOT EXISTS]① database_name
[COMMENT database_comment]②
[LOCATION hdfs_path]③
[WITH DBPROPERTIES (property_name=property_value, ...)]④;
①若存在则不创建,不存在则创建
②数据库注释
③数据库映射到HDFS的数据路径
④可以增加其它数据库配置
查询数据库
show databases --显示数据库
desc database db_name --查看数据库信息
desc database extended db_name --查看数据库详细信息
修改数据库属性
alter database db_hive
set dbproperties('createtime'='20170830');
用户可以使用 ALTER DATABASE 命令为某个数据库的 DBPROPERTIES 设置键-值对属性值,
来描述这个数据库的属性信息。
删除数据库
drop database [if exists] database_name [cascade]
cascade 命令表示强制删除
创建表
CREATE [EXTERNAL]① TABLE [IF NOT EXISTS] table_name
[(col_name data_type [COMMENT col_comment], ...)]
[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]
[ROW FORMAT⑤ row_format]
[STORED AS⑥ file_format]
[LOCATION⑦ hdfs_path]
[TBLPROPERTIES⑧ (property_name=property_value, ...)]
[AS⑨ select_statement | like⑩ table_name]
① EXTERNAL关键字可以创建一个外部表,当删除表的时候,只删除描述表的元数据,不删除存在于 HDFS 上的数据;
与之相反的是内部表,或者叫管理表,管理表在删除的时候会把 HDFS 上的数据一起删除;
这两者可以互相转换:
alter table table_name set tblproperties('EXTERNAL'='TRUE');
② PARTITIONED BY 用以创建分区表,需要指定列用于分区,一个分区对应一个目录,可以提高效率;
③ CLUSTERED BY 创建分桶表,分桶将整个数据按照某列属性值的 hash 值进行区分;
④ SORTED BY 对桶中的一个或多个列另外排序;
⑤ ROW FORMAT 用于指定数据切分格式;官方的用法:
⑥ STORED AS 用以指定存储文件类型,比如 parquet、textfile 等;
⑦ LOCATION 指定文件存储在 HDFS 上的路径;
⑧ TBLPROPERTIES 可用于添加表的其它属性,一般是键值对形式;
⑨ AS 后面接的是查询语句,根据查询结果创建表;
⑩ LIKE 后接表名,复制表结构,但不复制数据。
修改表
-- 更新列
ALTER TABLE table_name CHANGE [COLUMN] col_old_name col_new_name
column_type [COMMENT col_comment] [FIRST|AFTER column_name]
-- 增加和替换列
ALTER TABLE table_name ADD|REPLACE COLUMNS (col_name data_type [COMMENT
col_comment], ...)
ADD 是代表新增一字段,字段位置在所有列后面(partition 列前);REPLACE 则是表示替换表中所有字段。
删除表
drop table table_name;
小结
本文主要展示了 hive 的 DDL 用法,包括数据库和表的语法。实际上这里面有部分内容是简单概括,比如分区分桶表的含义作用以及用法,这些后面的文章我会展开描述,可以持续关注【大数据的奇妙冒险】,获取更多知识!
hive从入门到放弃(二)——DDL数据定义的更多相关文章
- hive从入门到放弃(三)——DML数据操作
上一篇给大家介绍了 hive 的 DDL 数据定义语言,这篇来介绍一下 DML 数据操作语言. 没看过的可以点击跳转阅读: hive从入门到放弃(一)--初识hive hive从入门到放弃(二)--D ...
- hive从入门到放弃(四)——分区与分桶
今天讲讲分区表和分桶表,前面的文章还没看的可以点击链接: hive从入门到放弃(一)--初识hive hive从入门到放弃(二)--DDL数据定义 hive从入门到放弃(三)--DML数据操作 分区 ...
- Hive 官方手册翻译 -- Hive DDL(数据定义语言)
Hive DDL(数据定义语言) Confluence Administrator创建, Janaki Lahorani修改于 2018年9月19日 原文链接 https://cwiki.apache ...
- Hive(三)【DDL 数据定义】
目录 一.DDL数据定义 1.库的DDL 1.1创建数据库 1.2查询数据库 1.3查看数据库详情 1.4切换数据库 1.5修改数据库 1.6删除数据库 2.表的DDL 2.1创建表 2.2管理表(内 ...
- hive从入门到放弃(一)——初识hive
之前更完了<Kafka从入门到放弃>系列文章,本人决定开新坑--hive从入门到放弃,今天先认识一下hive. 没看过 Kafka 系列的朋友可以点此传送阅读: <Kafka从入门到 ...
- 第4章 DDL数据定义
第4章 DDL数据定义 4.1 创建数据库 1)创建一个数据库,数据库在HDFS上的默认存储路径是/user/hive/warehouse/*.db. hive (default)> creat ...
- oracle学习笔记(三) DCL 数据控制语言与 DDL 数据定义语言
DCL 数据控制语言 Data control language 之前说过的授权和收权利语句 grant, revoke DDL 数据定义语言 Data define language create ...
- DDL数据定义语言
DDL数据定义语言 (一)概述 DDL(Data Definition Language):数据定义语言,用来定义数据库对象,库.表.列等:创建.删除.修改 库,表结构.主要分为操作数据库的DDL和操 ...
- sql 两大类 DDL数据定义语言 和DCL数据控制语言
SQL分为五大类: DDL:数据定义语言 DCL:数据控制语言 DML:数据的操纵语言 DTL:数据事务语言 DQL:数据查询语言. DDL (date definition lang ...
随机推荐
- nginx开发:ngx_sprintf
格式化参数%系列,如果误用的话,轻则输出不正确,重则nginx可能core. 1. 格式: %{格式描述}{输出类型描述}{数据类型描述} 2. 数据类型描述: V:字符串,对应ngx_str_t * ...
- Maven系列--"maven-compiler-plugin"的使用
万分感谢大佬:Poorzerg 原文链接:https://my.oschina.net/poorzerg/blog/206856 maven是个项目管理工具,如果我们不告诉它我们的代码要使用什么样的j ...
- memcached 测试代码
转载请注明来源:https://www.cnblogs.com/hookjc/ #include<stdio.h> #include <iostream> #include & ...
- 2、Golang基础--包的使用、if-else语句、循环、switch语句、数组、切片、可变函数参数、map类型
1 包的使用 // 为了便于组织代码,同一种类型的代码,写在同一个包下,便于管理 // 定义包 -新建一个文件夹 -内部有很多go文件 -在每个go文件的第一行,都要声明包名,并且包名必须一致 -在一 ...
- Solution -「HDU #6566」The Hanged Man
\(\mathcal{Description}\) Link. 给定一棵含 \(n\) 个点的树,每个结点有两个权值 \(a\) 和 \(b\).对于 \(k\in[1,m]\),分别求 \[ ...
- Java 位运算总结
一.Java中支持的位运算 位与(&):二元运算符,两个为1时结果为1,否则为0 位或(|):二元运算符,两个其中有一个为1时结果就为1,否则为0 位异或(^):二元运算符,两个数同时为1或0 ...
- BeanFactory与FactoryBean有什么区别?
相同点:都是用来创建bean对象的 不同点:使用beanFactory创建对象的时候,必须要遵循严格的生命周期流程,太复杂了,如果想要简单的自定义某个对象的创建,同时创建好的对象想要交给spring来 ...
- 数据透视:Excel数据透视和Python数据透视
作者 | leo 早于90年代初,数据透视的概念就被提出,主要的应用场景是处理大量数据的交互式汇总查询,它实现了行或列的移动,使得行可以移到列上,列移到行上,从而根据使用者的诉求取对关注的数据子集进行 ...
- 让你的Linux像黑客帝国的画面一样炫酷
#sudo apt-add-repository ppa:hollywood/ppa #sudo apt-get install hollywood #sudo apt-get install ...
- 大数据BI系统挖掘企业业务上的价值
相信关注过我们的肯定知道BI是什么,但是老话常谈以防新朋友不知道BI的含义,BI(Business Intelligence)即商务智能,它是一套完整的解决方案,用来将企业中现有的数据进行有效的整合 ...