Hive数据仓库教程教学课件(共12章)第4章Hive数据定义

上传人:sat****105 文档编号:265879775 上传时间:2022-03-14 格式:PPTX 页数:84 大小:488.58KB
返回 下载 相关 举报
Hive数据仓库教程教学课件(共12章)第4章Hive数据定义_第1页
第1页 / 共84页
Hive数据仓库教程教学课件(共12章)第4章Hive数据定义_第2页
第2页 / 共84页
Hive数据仓库教程教学课件(共12章)第4章Hive数据定义_第3页
第3页 / 共84页
Hive数据仓库教程教学课件(共12章)第4章Hive数据定义_第4页
第4页 / 共84页
Hive数据仓库教程教学课件(共12章)第4章Hive数据定义_第5页
第5页 / 共84页
点击查看更多>>
资源描述

《Hive数据仓库教程教学课件(共12章)第4章Hive数据定义》由会员分享,可在线阅读,更多相关《Hive数据仓库教程教学课件(共12章)第4章Hive数据定义(84页珍藏版)》请在金锄头文库上搜索。

1、第4章 Hive数据定义本章主要介绍Hive数据仓库的增、删、改、查和表的增、删、改、查操作,是Hive数据仓库的重点内容之一。4.1 数据仓库的创建章内分节4.2 数据仓库的查询4.2.1 显示数据仓库4.2.2 查看数据仓库详情4.2.3 切换数据仓库4.3 数据仓库的修改4.4 数据仓库的删除4.5 表的创建4.5.1 内部表4.5.2 外部表4.5.3 内部表和外部表的转换4.6 分区表4.6.1 分区表基本操作4.6.2 二级分区表创建4.7 桶表4.8 表的修改4.8.1 重命名4.8.2 增加和删除分区4.8.3 修改、增加和替换列4.9 表的删除4.10 视图4.1 数据仓库的

2、创建创建数据仓库的语法格式如下:CREATE DATABASE IF NOT EXISTS LOCATION ;IF NOT EXISTS是一个可选子句,通知用户如果该数据仓库不存在,则创建;否则报错,有错误信息提示。所创建的数据仓库在HDFS中默认的存储路径是/user/hive/warehouse/,也可以通过关键字LOCATION指定数据仓库在HDFS中存放的位置。创建一个名为hivedwh的数据仓库,并存放在默认位置:hive(default)create database hivedwh;创建hivedwh数据仓库后,可以使用浏览器直观地浏览Hadoop集群的HDFS。注意:IP为本

3、地Linux系统的IP,端口号为50070。数据仓库的创建在浏览器中可以看到,所创建的数据仓库hivedwh实际上对应HDFS中的一个目录,并且自动加上了扩展名.db。详细信息见图4-1。图4-1 数据仓库存放位置创建一个数据仓库,并存放在HDFS的根目录下:hive(default)create database if not exists hivedwh2location /hivedwh2.db;4.2 数据仓库的查询对数据仓库的查询包括查询数据仓库的个数和查看数据仓库的详情等。查看数据仓库的详细信息要使用关键字EXTENDED。(1)显示数据仓库个数hive(default)show

4、databases;(2)过滤显示查询的数据仓库hive(default)show databases like hive*;4.2.1 显示数据仓库显示数据仓库详细信息,使用命令:hive(default) desc database extended hivedwh;OKHivedwhhdfs:/localhost:9000/user/hive/warehouse/hivedwh.dbhadoop USER4.2.2 查看数据仓库详情hive(default)use hivedwh;4.2.3 切换数据仓库4.3 数据仓库的修改用户可以使用Alter命令修改数据仓库的Dbpropertie

5、s键值对的属性值,来描述这个数据仓库的属性信息。数据仓库的其他元数据信息都是不可更改的,包括数据仓库名和数据仓库所在存储位置。hive(hivedwh)alter database hivedwh set dbproperties(createtime=20210112);在Hive中查看修改结果:hive(hivedwh)desc database extended hivedwh;OKHivedwhhdfs:/localhost:9000/user/hive/warehouse/hivedwh.db hadoop USER createtime=202101124.4 数据仓库的删除Dro

6、p Database是删除数据仓库中所有表并删除数据仓库的语句。删除数据仓库的语法如下:DROP DATABASE IF EXISTS database_name CASCADE;如果不知道删除的数据仓库是否存在,则使用IF EXISTS判断数据仓库是否存在。如果数据仓库不为空,其中已经有表存在,可以采用CASCADE关键字强制删除。数据仓库的删除(1)删除空数据仓库hive(hivedwh)drop database hivedwh2;(2)使用IF EXISTS判断数据仓库是否存在hive(hivedwh)drop database if exists hivedwh3;(3)使用CASC

7、ADE关键字强制删除数据仓库hive(hivedwh)drop database hivedwh3;FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. InvalidOperationException(message:Database hivedwh3 is not empty. One or more tables exist.)hive(hivedwh)drop database hivedwh3 cascade;4.5 表 的 创 建在Hive中,表都在HDFS的相应目录

8、中存储数据。目录的名称是在创建表时自动创建并以表名来命名的,表中的数据都保存在该目录中。而且,数据以文件的形式存储在HDFS中。表的元数据会存储在数据库中,如Derby数据库或MySQL数据库。创建表的语法格式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,

9、col_name, .) INTO num_buckets BUCKETSSORTED BY (col_name ASC|DESC, .)ROW FORMAT DELIMITED row_formatSTORED AS file_formatLOCATION hdfs_path;关键字解释说明 CREATE TABLE,创建一个名字为table_name的表。如果该表已经存在,则抛出异常;可以用IF NOT EXISTS关键字选项来忽略异常。 使用EXTERNAL关键字可以创建一个外部表,在建表的同时指定实际表数据的存储路径(LOCATION)。创建Hive内部表时,会将数据移动到数据仓库指定

10、的路径;若创建Hive外部表,仅记录数据所在的路径,不对数据的位置做任何改变。在删除内部表时,内部表的元数据和数据会被一起删除;在删除外部表时,只删除外部表的元数据,但不删除数据。 (col_name data_type, .),创建表时要确定字段名及其数据类型,数据类型可以是基本数据类型,也可以是复杂数据类型。COMMENT为表和字段添加注释描述信息。 PARTITIONED BY,创建分区表 CLUSTERED BY,创建桶表 SORTED BY,排序关键字解释说明 ROW FORMAT DELIMITED,用于指定表中数据行和列的分隔符及复杂数据类型数据的分隔符。这些分隔符必须与表数据中

11、的分隔符完全一致。 Fields Terminated By Char,用于指定字段分隔符。 Collection Items Terminated By Char,用于指定复杂数据类型Map、Struct和Array的数据分隔符。 Map Keys Terminated By Char,用于指定Map中的key与value的分隔符。 Lines Terminated By Char,用于指定行分隔符。 STORED AS,指定表文件的存储格式,如TextFile格式、SequenceFile格式、ORC格式和Parquet格式等。如果文件数据是纯文本的,可以使用TextFile格式,这种格式

12、是默认的表文件存储格式。如果数据需要压缩,可以使用SequenceFile格式等。 LOCATION,用于指定所创建表的数据在HDFS中的存储位置。4.5.1 内部表不带EXTERNAL关键字创建的表是管理表,有时也称为内部表。Hive表是归属于某个数据仓库的,默认情况下Hive会将表存储在默认数据仓库中,也可以使用Use命令切换数据仓库,将所创建的表存储在切换后的数据仓库中。删除内部表时,表的元数据和表数据文件同时被删除。 案例4-1 内部表创建1需求创建内部表test,并将本地/opt/datas/test.txt目录下的数据导入Hive的test(id int, name string)

13、表中。2数据准备test表中数据见表4-1。id Intname String101Bill102Dennis103Doug104Linus105James106Steve107Paul108Ford表4-1 test表中数据案例4-1 内部表创建在/opt/datas目录下准备数据,创建test.txt文件并添加数据:hadoopSYNU:/opt/datas$ vim test.txt101 Bill102 Dennis103 Doug104 Linus105 James106 Steve107 Paul108 Fordtest.txt文件中的数据以Tab键分隔。案例4-1 内部表创建3H

14、ive实例操作(1)启动HivehadoopSYNU:/usr/local/hive$ bin/hive(2)显示数据仓库hive(default)show databases;(3)切换到hivedwh数据仓库hive(default)use hivedwh;案例4-1 内部表创建(4)显示hivedwh数据仓库中的表hive(hivedwh)show tables;(5)创建test表,并声明文件中数据的分隔符hive(hivedwh)create table test(id int, name string) row format delimited fields terminated

15、by t;(6)加载/opt/datas/test.txt 文件到test表中hive(hivedwh)load data local inpath /opt/datas/test.txt into table test;案例4-1 内部表创建(7)Hive查询结果hive(hivedwh)select id,name from test;OKidname101 Bill102 Dennis103 Doug104 Linus105 James106 Steve107 Paul108 Ford案例4-2 复杂数据类型内部表创建1需求创建复杂数据类型内部表complex,将本地/opt/datas

16、/complex.txt目录下的数据导入Hive的complex表中,并做简单查询。2数据准备创建本地数据文件complex.txt:hadoopSYNU:/opt/datas$ vim complex.txtSteve, Bill_Linus,Paul:18_Dennis:21,xidan_beijingJobs, Gates_Torvalds,Allen:25_Ritchie:30,zhongjie_shenyang案例4-2 复杂数据类型内部表创建文件complex.txt中的数据是复杂数据类型的数据,分别是Array、Map和Struct类型。其数据结构由以下格式确定: name: Steve, friends: Bill , Linus, /Array children: /Map Paul: 18, Dennis: 21 address: /Struct street: xidan, city: beijing 注意:Array、Map和Struct类型中的元素间关系都用同一个字符表示,这里用“_”。案例4-2 复杂数据类型内部表创建3Hive实例操作(1)Hive中创建表

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号