数据仓库
1.数据仓库面向主题
2.数据仓库是集成的
3.数据仓库主要为分析挖掘,只查询,不增改
OLTP:银行转账,同时完成
OLAP:历史数据,商品推荐系统
数据仓库中的数据模型:
1.星型模型
2.雪花模型:由星型模型发展而来。(个人理解,叶节点更多了,等于主题更多了,而星型模型只有一个主题)
HIVE
Hive是建立在hadop hdfs上的数据仓库基础架构
Hive可以用来进行数据提取、转化、加载(ETL)
Hive是SQL解析引擎,将SQL语句转移成M/R Job然后在Hadoop执行
Hive的元数据
1.Hive将元数据存储在数据库中(metastore),支持mysql、derby等数据库
2.Hive中的元数据包括表的名字,表的列和分区及其属性,表的属性(是否为外部表等),表的数据所在目录等。
Hive数据类型
1.基本数据类型
string、boolean、double,int
varchar(20) 最大的长度20
char(20) 固定的长度20
2.复杂数据类型
array----数组类型,由一系列相同数据类型的元素组成
map----集合类型,包含key-->value
struct ----结构类型,可以包含不同数据类型的元素,通过“点语法”查询
3.时间类型
Date----特定的日期,年月日
Timestamp----与时区无关,是一种偏移量的表示方式
Hive的数据存储
1.基于HDFS文件系统
2.没有专门的数据存储格式
3.存储结构主要包括:数据库、文件、表、视图
4.可以直接加载文本文件
5.创建表时,指定Hive数据的列分隔符和行分隔符
表
1.Table 内部表
- 每一个table在hive中都有一个相应的目录存储数据
- 所有的table数据都保存在这个目录中
- 删除表时,元数据与数据都会被删除
2.Partiton 分区表
- Partiton对应于数据库的Partition列的密集索引
- 在Hive中,表中的一个Partition对应于表下的一个目录,所有的Partition的数据都存储于对应的目录中。
3.External Table 外部表
- 指向已经在HDSF中存在的数据,可以创建parititon
- 它和内部表在元数据的组织上是相同的,而实际数据的存储则有较大差异
- 外部表只有一个过程,加载数据和创建表同时完成,并不会移动到数据仓库目录中,只是与外部数据建立一个链接,当删除一个外部表时,仅删除该链接。
外部表需要指定location
4.Bucket Table 桶表
对数据进行hash映射处理后,存放在不同文件下,可避免造成系统热块,相同哈希值的存放在同一文件下。
视图
- 视图是一种虚表,是一个逻辑概念,可以跨越多张表;视图建立在已有表的基础上,这些基础称为基表。
- 视图可以简化复杂的查询。
网友评论