6.1 多维数据模型
6.1.1 数据立方体
由维和事实定义
维:描述数据的业务角度。维包括维属性和维成员
事实:构建多维数据模型的主题。
维表:每一个维都有一张维表与之相关联
事实表:包括事实的名称(度量)及每个维表的关键字
6.1.2 多维数据模型
多维数据模型是目前最流行的数据仓库数据模型,使用DMQL定义DMQL:Data Mining Query Language,数据挖掘查询语言数据仓库的定义:立方体定义 和 维定义立方体定义 :define cube <cube_name>[<dimension_list>]:<measure_list>维定义:define dimension <dimension_name> as (<attribute_or_subdimension_list>)常见的多维数据模型:星形模式,雪花模式,事实星座模式
星形模式一个大的、包含大量数据且不含冗余的中心表(事实表)一组小的附属维表![]()
雪花模式
事实星座模式
6.1.3 概念分层
OLAP ( On-line Analytical Processing ,联机分析处理) 是指在基于数据仓库多维模型的基础上实现的面向分析的各类操作的集合。 与传统的 OLTP ( On-line Transaction Processing ,联机事务处理)的区别:![]()
6.1.4 多维数据模型中的OLAP操作
6.2 多分析工具Hive
6.2.1 Hive简介
Hive 是一个 SQL 解析引擎,它将 SQL 语句转译成 MapReduce作业并在 Hadoop 上执行
6.2.2 数据仓库
面向主题:指数据仓库中的数据是按照一定的主题域进行组织的。集成:指对原有分散的数据进行清洗、加工和汇聚。相对稳定:指一旦某个数据进入数据仓库后,一般不再更改、刷新。反映历史变化:指通过这些信息,对企业的发展历程和未来趋势做 出定量分析预测。![]()
6.2.3 Hive的架构
用户接口:
• CLI接口: Hive 命令行界面• JDBC/ODBC客户端• HWI: 通过浏览器访问 HiveThrift服务器:• 基于 Socket 通信,支持跨语言编程,包括C++ 、 Java 、PHP、 Python 和 Ruby 语言元数据库:• 存放 Hive 的基础信息Hadoop:• Hive的数据文件存储在 HDFS 中,查询由MapReduce 完成
6.2.3 Hive驱动引擎的组成
6.2.3 Hive的工作原理
6.2.4 Hive的数据类型
6.2.5 Hive的数据模型
表:分为内部表和外部表
• 内部表 :也称为托管表。每一个内部表在 Hive 中都有一个相应的目录存储所有的表数据。删除内部表时, 元数据与数据都会被删除。• 外部表 :外部表的数据文件可以存放在Hive仓库以外的分布式文件系统上(例如 HDFS)。外部表加载数据和创建表是同时 完成的,实际数据并不会移动到Hive目录中,而只是与外部数 据建立一个 链接 。当删除一个外部表时, 仅删除表的元数据 , 实际数据不会被删除。分区:对应于普通关系型数据库中的分区列的密集索引,但是Hive中分区的组织方式和普通关系型数据库中的很不相同。例如 pvs 表中包含 ds 和 city 两个分区,则 :• 对应于 ds = 20200101, city = hangzhou 的 HDFS 子目录为:/hadoop/pvs/ds=20200101/city=hanzghou;• 对应于 ds = 20200101, city = shanghai 的 HDFS 子目录为:/hadoop/pvs/ds=20200101/city=shangha