Hive的DDL操作
DDL:data definittion language 数据定义语言
主要是定义或改变表的结构、数据类型、表之间的链接和约束等初始化操作
DML:data manipulation language 数据操作语言
主要是对数据库的数据进行增删改查操作,如select、insert、delete、update等
一、对数据库的操作
1.创建数据库并指定在hdfs的存储路径
create database if not exists hive_db location '/hive_db';
注释:不指定路径所创建的数据库默认存储路径为:“/user/hive/warehouse“
create database if not exists hive_ab;
2.查看数据库信息
1)查看数据库结构
desc database hive_db;
2)添加数据库的描述信息
alter database hive_db set dbproperties('creater'='wyh');
3)查看数据库的拓展信息
desc database extended hive_db;
3.筛选查询数据库
show database like 'hive*';
4.删除数据库
drop database wyh;
drop database if exists hive_db;
二、DDL操作
hive中表的种类有很多,如管理表(Manager Table)、外部表(External Table)、分区表(Partition Table)、分桶表,下面我先介绍前三种表的定义、修改操作。
1.管理表:Hive创建表时默认创建的就是管理表,也叫内部表,它不擅长数据共享,删除表后数据也会被删除。
创建管理表
create table if not exists emp1(id int,name string) row format delimited fields terminated by '\t';
导入数据
load data local inpath '/root/data/emp.txt' into table emp1;
创建新管理表并从emp1表中导入name=wyh的该行数据
create table if not exists emp2 as select * from emp1 where name = 'wyh';
查询表的结构信息:
desc formatted emp2;
2.外部表:Hive不任务这张表拥有该数据,所以删除该表后数据不会删除,当再次创建结构与数据类型相同的表(无论是外部表还是管理表)时,数据会自动关联。但是若第二次创建的是管理表,再次删除后即使创建相同格式和数据类型的表数据将不再恢复!
创建外部表
create external table if not exists student(id int,name string) row format delimited fields terminated by '\t';
导入数据
load data local inpath '/root/data/student.txt' into table student;
查看表结构
desc formatted student; (可以从Table Type看到:EXTERNAL_TABLE)
删除表
drop table if exists student;
3.分区表:分区表对应HDFS的一个独立的文件目录,目录下是该分区表所有分区的目录,每个分区目录下存储该分区内存储的数据。
创建分区表
create table dept_partitions(id int,name string,loc string) partitioned by(day string) row format delimited fiedls terminated by '\t';
导入数据
load data local inpath '/root/data/dept.txt' into table dept_partition partition(day='1001');
(注意:不能直接导入数据,必须指定分区)
添加分区
alter table dept_partition add partition(day='1002');
(添加该分区后该分区内是没有数据的)
查询数据
select * from dept_partition where day='1001';
select * from dept_partition;
删除分区
alter table dept_partition drop partition(day='1002');
alter table dept_partition drop partition(day='1001'),partition(day='1002');
三、修改表
1.修改表名
alter table student rename to students;
2.添加列
alter table students add columns(age int,sex string);
3.更新列(列名和列的数据类型)
alter table student change column age birthday string;
4.替换replace
alter table students replace columns(descccc int);
alter table students replace columns(id int,name string,loc string);
注意:第二次替换后列的数据类型与第一次相同,数据会恢复!
Hive的DDL操作的更多相关文章
- Hive学习之路 (七)Hive的DDL操作
库操作 1.创建库 语法结构 CREATE (DATABASE|SCHEMA) [IF NOT EXISTS] database_name [COMMENT database_comment] //关 ...
- Apache Hive (七)Hive的DDL操作
转自:https://www.cnblogs.com/qingyunzong/p/8723271.html 库操作 1.创建库 语法结构 CREATE (DATABASE|SCHEMA) [IF NO ...
- Hive 学习之路(四)—— Hive 常用DDL操作
一.Database 1.1 查看数据列表 show databases; 1.2 使用数据库 USE database_name; 1.3 新建数据库 语法: CREATE (DATABASE|SC ...
- Hive 系列(四)—— Hive 常用 DDL 操作
一.Database 1.1 查看数据列表 show databases; 1.2 使用数据库 USE database_name; 1.3 新建数据库 语法: CREATE (DATABASE|SC ...
- 入门大数据---Hive常用DDL操作
一.Database 1.1 查看数据列表 show databases; 1.2 使用数据库 USE database_name; 1.3 新建数据库 语法: CREATE (DATABASE|SC ...
- Hive学习笔记(三)-- DML和DDL操作
01-Hive表的DDL操作--修改表 创建一个分区表并加载数据 查询数据 修改表 加载数据 查询一下 另外一个命令查询表的分区 如何删除一个分区呢 查询一个,分区被删除了 修改表名 查询改名的新表的 ...
- Hive数据类型和DDL操作
hive命令 在Linux下的命令行中直接输入如下命令,可以查看帮助信息: # hive -help 常用的如-e.-f参数. 使用-e参数,可以直接在命令行传递SQL语句进行hive表数据的查询: ...
- hive基本的操作语句(实例简单易懂,create table XX as select XX)
hive建表语句DML:https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL#LanguageManualDDL-Cr ...
- Hive QL的操作
一.数据定义DDL操作 创建表: --create table为创建一个指定名字的表 create(external) table table_name --external关键字可以让用户创建一个外 ...
随机推荐
- (七) UVC框架分析
title: UVC框架分析 date: 2019/4/23 19:50:00 toc: true --- UVC框架分析 源码的位置在drivers\media\video\uvc,查看下Makef ...
- Neo4j安装
一.Windows版本 1)下载java8,并配置环境变量 java下载请点击,提取码:f6ci 2)Neo4j下载 选windows版本 新建系统环境变量: 并配置Path环境变量,添加bin所在目 ...
- nginx:[emerg]unknown directive "ssl"
nginx: [emerg] unknown directive "ssl" in /usr/local/nginx/conf/nginx.conf:102 到解压的nginx目录 ...
- Python核心编程笔记 第三章
3.1 语句和语法 3.1.1 注释( # ) 3.1.2 继续( \ ) 一般使用换行分隔,也就是说一行一个语句.一行过长的语句可以使用反斜杠( \ ) 分 ...
- Hibernate 分页
public EmailBean[] findByPage(Date begin, Date end, String emailreference, int pageNo, final int pag ...
- vagrant极简教程:快速搭建centos7
作为开发人员,只要你的应用最终是放在linux环境执行,那么最好就是将本地开发环境也线上一致.不管是用windows系统,还是mac系统,即使你本地程序跑得好好的,也经常会出现一上线就各种bug的现象 ...
- mysql字符集设置注意事项
mysql字符集设置必须是在具体的某一个数据库情况下才能进行设置 否则会报错.
- 【前端】ACE Editor(代码编辑器) 简易使用示例
身为一个早已退役的Oier,当然忘不了当年一个个OJ页面上的代码显示和代码编辑器. 其中,洛谷使用的ACE Editor就是之一,非常的简洁美观.以及实际上在前端页面上搭建一个ACE Editor也是 ...
- 2018-2019-2 20175306实验一《Java开发环境的熟悉》实验报告
2018-2019-2 20175306实验一<Java开发环境的熟悉>实验报告 一.实验内容及步骤 实验一 Java开发环境的熟悉-1 ·建立有自己学号的实验目录. ·通过vim Hel ...
- CMDB项目开发
CMDB介绍 CMDB --Configuration Management Database 配置管理数据库, CMDB存储与管理企业IT架构中设备的各种配置信息,它与所有服务支持和服务交付流程都紧 ...