前一篇文章,介绍了什么是 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数据定义的更多相关文章

  1. hive从入门到放弃(三)——DML数据操作

    上一篇给大家介绍了 hive 的 DDL 数据定义语言,这篇来介绍一下 DML 数据操作语言. 没看过的可以点击跳转阅读: hive从入门到放弃(一)--初识hive hive从入门到放弃(二)--D ...

  2. hive从入门到放弃(四)——分区与分桶

    今天讲讲分区表和分桶表,前面的文章还没看的可以点击链接: hive从入门到放弃(一)--初识hive hive从入门到放弃(二)--DDL数据定义 hive从入门到放弃(三)--DML数据操作 分区 ...

  3. Hive 官方手册翻译 -- Hive DDL(数据定义语言)

    Hive DDL(数据定义语言) Confluence Administrator创建, Janaki Lahorani修改于 2018年9月19日 原文链接 https://cwiki.apache ...

  4. Hive(三)【DDL 数据定义】

    目录 一.DDL数据定义 1.库的DDL 1.1创建数据库 1.2查询数据库 1.3查看数据库详情 1.4切换数据库 1.5修改数据库 1.6删除数据库 2.表的DDL 2.1创建表 2.2管理表(内 ...

  5. hive从入门到放弃(一)——初识hive

    之前更完了<Kafka从入门到放弃>系列文章,本人决定开新坑--hive从入门到放弃,今天先认识一下hive. 没看过 Kafka 系列的朋友可以点此传送阅读: <Kafka从入门到 ...

  6. 第4章 DDL数据定义

    第4章 DDL数据定义 4.1 创建数据库 1)创建一个数据库,数据库在HDFS上的默认存储路径是/user/hive/warehouse/*.db. hive (default)> creat ...

  7. oracle学习笔记(三) DCL 数据控制语言与 DDL 数据定义语言

    DCL 数据控制语言 Data control language 之前说过的授权和收权利语句 grant, revoke DDL 数据定义语言 Data define language create ...

  8. DDL数据定义语言

    DDL数据定义语言 (一)概述 DDL(Data Definition Language):数据定义语言,用来定义数据库对象,库.表.列等:创建.删除.修改 库,表结构.主要分为操作数据库的DDL和操 ...

  9. sql 两大类 DDL数据定义语言 和DCL数据控制语言

    SQL分为五大类: DDL:数据定义语言   DCL:数据控制语言     DML:数据的操纵语言  DTL:数据事务语言  DQL:数据查询语言. DDL (date definition lang ...

随机推荐

  1. linux 编译C++

    转载请注明来源:https://www.cnblogs.com/hookjc/ makefile文件内容: main:main.o fun1.o fun2.o g++ -o main  main.o ...

  2. 什么是Segue

    Storyboard上每一根用来界面跳转的线,都是一个UIStoryboardSegue对象(简称Segue) Segue的属性 每一个Segue对象,都有3个属性唯一标识@property (non ...

  3. 出现Table ‘./mysql/proc’ is marked as crashed and should be repaired

    一般这种表崩溃的问题出现在mysql异常停止,或者使用kill -9命令强行杀掉进程导致,进入MySQL命令行后,执行下面的命令即可修复'./mysql/proc'表 repair table mys ...

  4. 分布式消息队列RocketMQ(一)安装与启动

    分布式消息队列RocketMQ 一.RocketMQ简介 RocketMQ(火箭MQ) 出自于阿里,后开源给apache成为apache的顶级开源项目之一,顶住了淘宝10年的 双11压力 是电商产品的 ...

  5. term&match得区别 text&keyword区别

    Text 概念 Text 数据类型被用来索引长文本,比如说电子邮件的主体部分或者一款产品的介绍.这些文本会被分析,在建立索引前会将这些文本进行分词,转化为词的组合,建立索引.允许 ES来检索这些词语. ...

  6. opencv笔记--HOGDescriptor

    特征描述提取图像区域上有用信息而忽略无用信息,不同目标下有用信息与无用信息定义不同.这里提取的有用信息用于分类器输入并期望产生正确的分类. HOG(Histogram of Oriented Grad ...

  7. Solution -「Gym 102759F」Interval Graph

    \(\mathcal{Description}\)   Link.   给定 \(n\) 个区间,第 \(i\) 个为 \([l_i,r_i]\),有权值 \(w_i\).设一无向图 \(G=(V=\ ...

  8. Spring 类名后缀理解

    Aware 理解 实现Spring的Aware接口. 定义为感知.意识,核心意义在于通过Aware可以把spring底层组件注入到自定义的bean中. 对于bean与容器的关系,bean不应该知道自身 ...

  9. 了解MySQL存储引擎工作原理

    MySql数据库最大的特色就是其插件式的存储引擎架构,本文主要介绍MySql常用的存储引擎,为开发时选择合适的存储引擎提供参考. 1. MySql体系结构# 在介绍存储引擎之前先来介绍下MySql的体 ...

  10. kali系统语言设置

    一.背景信息在安装完 kali linux 2020.1 时,其操作系统默认语言为英文的,我们操作起来比较麻烦,为了以后操作方便起见,这边将其操作系统默认语言更改为中文.本篇文章将带领各位小伙伴们一起 ...