HIVE入门之数据模型
内部表
内部表(Table)
-与数据库的Table在概念上类似
-每一个Table在Hive中都有一个相应的目录(HDFS上的目录)存储数据
-所有的Table数据(不包括External Table)都保存在这个目录(HDFS目录)中
-表的元数据信息,存储在元数据数据库中(mysql)
-删除表后,元数据和数据都会被删除
创建表--案例:
create table t1
(t1 int, tname string, age int);
在hive中创建一张表,如果不指定表所保存的位置,那么这张表会创建在HDFS文件系统中的/user/hive/warehouse目录下
create table t2
(tid int, tname string, age int)
location '/mytable/hive/t2';
指定表的位置为HDFS中的/mytable/hive/t2
create table t3
(tid int, tname string, age int)
row format delimited fields terminated by ',';
表示以csv文件格式存储,因为csv存储的分隔符为逗号
//row format 指定表示行的格式
加入数据--案例:
create table t4
as
select * from sample_data;
//采用sample_data查询的集合来创建t4表
//查看HDFS中的文件发现,t4表中数据与数据之间没有分隔符
这里我们同样可以指定分隔符:
create table t4
row format delimited fields terminated by ','
as
select * from sample_data;
//采用sample_data查询的集合来创建t5表,并以','为分隔符
在一张表上加入新的列---案例:
alter table t1 add columns(english int);
删除一张表--案例:
drop table t1;
//当删除一张表时,它会把对应的文件放入HDFS的回收站中,所以删除之后
//我们可以利用一定的方式恢复表中的数据
分区表
分区表(Partition):
(可以提高查询的效率)
-Partition对应于数据库Partiton列的密集索引
-在Hive中,表中的一个Partition对应于表下的一个目录,所有的Partition的数据都存储在对应的目录中
创建表--案例
create table partition_table
(sid int, sname string)
partitioned by (gender string)
row format delimited fields terminated by ',';
//创建一张以','分隔,以性别进行分区的分区表partition_table
insert into table partition_table partition(gender = 'M') select sid,sname from sample_data where gender = 'M';
//将sample_data表中,gender为'M'的行数据,插入到paetition_table表中gender为'M'的分区中
insert into table partition_table partition(gender = 'F') select sid,sname from sample_data where gender = 'F';
//将sample_data表中,gender为'F'的行数据,插入到paetition_table表中gender为'F'的分区中
外部表
外部表(External Table) -指向已经在HDFS中存在的数据,可以创建Partition -它和内部表在元数据的组织上时相同的,而实际存储则有极大的差异 -外部表只有一个过程,加载数据和创建表同时完成,并不会移动到数据仓库目录中,只会与外部数据创建一个链接,当删除该表时,仅删除该链接而不删除实际的数据
外部表创建--案例
create external table external_student
(sid int, sname string, age int)
row format delimited fields terminate
location '/input';
//创建一个以','为分隔符的外部表,这个外部表与HDFS中/input目录下的文件相关联
桶表
桶表(Bucket Table)
桶表是对数据进行哈希取值,然后放到不同文件存储。也就是说,桶表中的数据,是通过哈希运算后,将其打散,再存入文件当中,这样做会避免造成热块,从而提高查询速度。
桶表创建--案例
create table bucket_table
(sid int, sname string, age int)
clustered by (sname) into 5 buckets;
//创建一个桶表,这个桶表是以sname作为哈希运算,运算后的结果放到5个桶中
后记:网课笔记
HIVE入门之数据模型相关推荐
- Hive总结(六)hive入门经典
转自:http://www.zypx.cn/technology/20100606132430320046.html Hive 是什么 在接触一个新的事物首先要回到的问题是:这是什么? 这里引用 Hi ...
- 4 weekend110的hive入门
Hive和HBase都很重要,当然啦,各自也有自己的替代品. 在公司里,SQL有局限,大部分时候,不需写mr程序的,用hive这个工具. 公司里的懂java开发员工不一定每个公司都有,但懂SQL开发员 ...
- 4 weekend110的hive入门
查看企业公认的最新稳定版本: https://archive.apache.org/dist/ Hive和HBase都很重要,当然啦,各自也有自己的替代品. 在公司里,SQL有局限,大部 ...
- 4.1 数据仓库基础与Apache Hive入门
数据仓库基础与Apache Hive入门 一.数据仓库基本概念 1.数据仓库概念 2. 案例:数据仓库为何而来 (1)业务数据的存储问题 (2)分析型决策的制定 3.数据仓库主要特征 面向主题性(Su ...
- Apache Hive入门1
Apache Hive入门1 Hive是Hadoop项目中的一个子项目,由FaceBook向Apache基金会贡献,其中TaoBao也是其中一位使用者+贡献者,Hive被视为 一个仓库工具,可以将结构 ...
- Hive ---- Hive入门
Hive ---- Hive入门 1. 什么是Hive 1. Hive简介 2. Hive本质 2. Hive架构原理 1. 用户接口:Client 2. 元数据:Metastore 3. 驱动器:D ...
- 大数据技术之Hive(二)Hive入门
一.Hive入门 1.1 Hive简介 1.1.1 hive出现的原因 FaceBook网站每天产生海量的结构化日志数据,为了对这些数据进行管理,并且因为机器学习的需求,产生了hive这门技术,并继续 ...
- hive入门及dbeaver连接hive
hive入门 hive简介 安装 使用dbeaver连接自己的hive 学HIVE上官网 hive官网 hive简介 hadoop广义:是大数据生态圈,其中hive是使用SQL完成大数据统计分析的工具 ...
- 将服务器文件加载至hive表中,Hive入门到剖析(四)
10 Hive体系架构 10.1概念 用户接口:用户访问Hive的入口 元数据:Hive的用户信息与表的MetaData 解释器:分析翻译HQL的组件 编译器:编译HQL的组件 优化器:优化HQL的组 ...
最新文章
- 《UML大战需求分析》阅读笔记1
- Ruby调用shell命令
- 从单张图像学习双目图像
- 基于Selenium2与Python自动化测试环境搭建
- 数学之美 系列七 -- 信息论在信息处理中的应用
- Kong 1.0正式发布,提供服务网格支持和插件开发工具包
- mysql dmz_MySQL 中LIMIT的使用详解
- 不要放弃,你的梦想是这个世界上最伟大的事情。
- 在Android中处理屏幕布局变化
- TNG-Hooks:有状态逻辑在标准函数中的重用和组合
- solidwork 侵权 证据_电子商务法复习题
- 解决idea的html代码中使用es6语法报错的问题
- vb6启动时提示安装VS2008 SP1
- 【机器学习】二次规划
- 惠普电脑键盘无法调节屏幕亮度
- 软硬磁盘和磁盘驱动器是微型计算机的外存储设备,可实现对信息的,21. 软硬磁盘和磁盘驱动器是微型计算机的外存储设备,它是实现对信息的...
- java基础(三):java面向对象OOP
- 《码农翻身》总结整理
- 大盘为何回血以及盐湖股份和科达制造
- 【CO2二氧化碳传感器】senseair S8 LP
热门文章
- python 字符串 编码 解码_Python 字符串编解码研究
- eclipse环境lsp4e --- org.eclipse.lsp4e
- 针对eclipse调式代码时打断点出现斜杠的解决方法
- MySql 的一些使用小技巧
- vue学习(一)初步了解 vue实例
- MicroPython开发板播放音乐教程
- 2015级C++第2周实践项目
- linux CentOs 权限导致的Apache - DocumentRoot must be a directory的解决方案
- 自建邮件服务器更给力?
- 洛谷P4742(tarjan缩点+拓扑DP)