HIVE实战:创建数据库与表,内部表、外部表、分区表解析
需积分: 0 45 浏览量
更新于2024-08-04
1
收藏 366KB DOCX 举报
“HIVE创建库创建表.docx”是一份关于使用Hive进行数据库和表创建的实验报告,涵盖了HQL语言的基础应用,包括创建数据库、内部表、外部表、分区表以及桶表等概念。实验者通过不同的location属性设置来管理数据存储,并通过美国疫情数据来实践分区和数据加载。此外,还涉及到了MySQL数据库的中文支持问题。
在Hive中,创建数据库是一项基础操作,可以使用`CREATE DATABASE`语句。当不指定`LOCATION`时,数据库会默认存储在HDFS的/user/hive/warehouse目录下。如果指定了`LOCATION`,则数据会存储在指定路径。例如,创建名为`location_hyy_db`的数据库,指定location为`spe_db_db`,并添加创建人属性,可以写成:
```sql
CREATE DATABASE IF NOT EXISTS location_hyy_db
COMMENT "指定location"
LOCATION "spe_db_db"
WITH DBPROPERTIES ('createby'='linda');
```
而创建不指定`LOCATION`的数据库,如`noLocation_hyy_db`,可以写成:
```sql
CREATE DATABASE IF NOT EXISTS noLocation_hyy_db
COMMENT "没有指定location"
WITH DBPROPERTIES ('createby'='lucy');
```
内部表(或托管表)是Hive管理的数据表,它们的数据存储与表定义紧密关联。当删除内部表时,Hive会同时删除表及其关联的数据。创建内部表的示例如下:
```sql
CREATE TABLE IF NOT EXISTS noLocation_hyy_db.hero_archer (
id INT COMMENT "ID",
name STRING COMMENT "英雄名称",
hp_max INT COMMENT "最大生命",
mp_max INT COMMENT "最大法力",
attack_max INT COMMENT "最大物攻",
defense_max INT COMMENT "最大物防",
attack_range STRING COMMENT "攻击范围",
role_main STRING COMMENT "主要定位",
role_assist STRING COMMENT "次要定位"
) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';
```
外部表则不同,它们只是对HDFS上数据的引用,删除外部表不会影响数据本身。创建外部表的语句如下:
```sql
CREATE EXTERNAL TABLE IF NOT EXISTS noLocation_hyy_db.hero_archer_ext (
id INT COMMENT "ID",
name STRING COMMENT "英雄名称",
...
) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';
```
分区表是一种有效的数据组织方式,可以提高查询效率。例如,使用美国疫情数据创建分区表,可以根据日期、州等字段进行分区。创建分区表的语法结构为:
```sql
CREATE TABLE IF NOT EXISTS noLocation_hyy_db.covid_data (
...
) PARTITIONED BY (date STRING, state STRING);
```
接着,可以通过`LOAD DATA`命令将数据静态或动态加载到分区中。静态加载是指明具体分区,而动态加载则根据数据本身的字段自动填充分区。
桶表(Bucketed Tables)是Hive提供的一种优化手段,它将数据按照哈希函数划分到不同的桶中,便于并行处理。创建桶表的语法如下:
```sql
CREATE TABLE IF NOT EXISTS noLocation_hyy_db.bucket_hero_archer (
...
) CLUSTERED BY (id) INTO 4 BUCKETS;
```
最后,提到的“修改mysql数据库支持中文”,这通常涉及到修改数据库字符集设置,确保能正确存储和显示中文字符,例如在MySQL中,可以在创建数据库或连接时指定`CHARACTER SET utf8`。
通过这份实验报告,学习者可以全面了解Hive的基本操作,包括数据库和表的创建,以及如何利用Hive管理大数据的存储和查询。
205 浏览量
435 浏览量
127 浏览量
860 浏览量
1471 浏览量
102 浏览量
563 浏览量
135 浏览量
864 浏览量

m0_59627358
- 粉丝: 83
最新资源
- Linux平台PSO服务器管理工具集:简化安装与维护
- Swift仿百度加载动画组件BaiduLoading
- 传智播客C#十三季完整教程下载揭秘
- 深入解析Inter汇编架构及其基本原理
- PHP实现QQ群聊天发言数统计工具 v1.0
- 实用AVR驱动集:IIC、红外与无线模块
- 基于ASP.NET C#的学生学籍管理系统设计与开发
- BEdita Manager:官方BEdita4 API网络后台管理应用入门指南
- 一天掌握MySQL学习笔记及实操练习
- Sybase数据库安装全程图解教程
- Service与Activity通信机制及MyBinder类实现
- Vue级联选择器数据源:全国省市区json文件
- Swift实现自定义Reveal动画播放器效果
- 仿53KF在线客服系统源码发布-多用户版及SQL版
- 利用Android手机实现远程监视系统
- Vue集成UEditor实现双向数据绑定