学习目标:
大致掌握数据仓库实战的知识
学习内容:
1、了解数据仓库的概念(本文暂时学习目标)
2、学习核心技术框架
3、了解数据仓库的基本理论
4、掌握数据仓库数据采集与同步
5、数据仓库维度建模剖析
6、了解数据仓库的规范
学习目录:
学习内容:
数据库(Database)是按照数据结构来组织、存储和管理数据的建立在计算机存储设备上的仓库。
数据库是长期储存在计算机内、有组织的、可共享的数据集合。数据库中的数据指的是以一定的数据模型组织、描述和储存在一起、具有尽可能小的冗余度、较高的数据独立性和易扩展性的特点并可在一定范围内为多个用户共享。
常用的数据库有 MySQL、ORACLE、SQL Server 等
数据仓库是决策支持系统(dss)和联机分析应用数据源的结构化数据环境。数据仓库研究和解决从数据库中获取信息的问题。
数据仓库的特征在于面向主题、集成性、稳定性和时变性,用于支持管理决策。
数据仓库存在的意义在于对企业的所有数据进行汇总,为企业各个部门提供统一的, 规范的数据出口。
面向主题:数据仓库中的数据是按照一定的主题域进行组织的,每一个主题对应一个宏观的分析领域。数据仓库排除对于决策无用的数据,提供特定主题的简明视图。
集成的:企业内不同业务部门数据的完整集成。
对于企业内所有数据的集成要注意一致性(假设财务系统中对于性别使用 F/M,而 OA 系统对性别使用 A/B,这就是数据不一致,如果想搭建企业级的数据仓库,需要数据具有一致性)。
稳定的:数仓里不存在数据的更新和删除操作。
变化的:数仓里会完整的记录某个对象在一段时期内的变化情况。
数据仓库的目标是实现集成、稳定、反映历史变化有组织有结构的存储数据的集合。
如上图所示,一个公司可能有多个业务系统,而数据仓库就是将所有的业务系统按照某种组织架构整合起来,形成一个仓储平台,也就是数仓。
ODS—脱敏/清洗—DWD—汇总—DWS—汇总/宽表—DM
宽表:
emp表为例:
ODS:empno,ename,job,mgr ,sal,comm,dept,age,workyear,sex.
DWD:empno,ename,job,mgr ,sal,comm,dept
: deptid,dname,address
DWS:select ? from emp,dept.
DM: 数据集市:多维。一个月30天的日活数据
三范式(关系型数据库)——目的:让字段拆分开,尽可能实现数据库没有冗余
而数仓会利用冗余换取查询的便利——宽表
操作型处理,叫联机事务处理 OLTP(On-Line Transaction Processing,),也可以称面向交易的处理系统,它是针对具体业务在数据库联机的日常操作,通常对少数记录进行查询、修改。用户较为关心操作的响应时间、数据的安全性、完整性和并发支持的用户数等问题。传统的数据库系统作为数据管理的主要手段,主要用于操作型处理。
分析型处理,叫联机分析处理 OLAP(On-Line Analytical Processing)一般针对某些主题的历史数据进行分析,支持管理决策。
OLTP 与 OLAP 的异同如下表1-1所示:
表 1-1 OLTP与OLAP的异同
操作型处理 |
分析型处理 |
细节的 |
综合的或提炼的 |
实体-关系(ER)模型 |
星型或雪花模型 |
存取瞬间数据 |
存储历史数据,不包含最近的数据 |
可更新的 |
只读,只追加 |
一次操作一个单元 |
一次操作一个集合 |
性能要求高,响应时间短 |
性能要求宽松 |
面向事务 |
面向分析 |
一次操作数据量小 |
一次操作数据量大 |
支持日常操作 |
支持决策需求 |
数据量小 |
数据量大 |
客户订单、库存水平和银行账户等 |
客户收益分析、市场细分等 |
数据仓库是一门综合性学科,理论与技术并重,不仅有高深的理论概念,而且还涉及大量的大数据相关技术框架,从数据采集到数据通道,从离线处理到实时处理,从集群监控到任务调度,数据仓库无所不含,因此,为了更好地掌握数据仓库技术,我们需要掌握相关的理论概念及技术框架。
sqoop从关系型数据库把数据导入到hdfs(hive hbase)
hbase有事务? 有行级事务 一级索引 rowkey 二级索引用户自己创建——index表
表级事务,跨表事务,分布式事务。。。都不行。借助协处理器 一条命令需改两张表。 自定义二级索引 凤凰?
企业中的数据——业务数据(用户数据、商品数据、订单数据)——mysql
——用户行为数据 ——hive
数据仓库对一个企业的所有数据进行整合,为不同业务部门提供统一的数据出口,一个完善合理的数据仓库对于企业整体的数据管理是意义重大的,而数据仓库也是整个大数据系
统中的重要一环,更高层次的数据分析、数据挖掘等工作都会基于数据仓库进行,因此,系
统学习数据仓库的核心概念以及创建方法对于每一个大数据开发工程师都是非常必要的。数据仓库具有非常复杂的理论体系,在数据仓库的创建过程中也会有各种各样的建模思
想以及注意事项,对于数据仓库的整体理论架构和实战思想,我们将会在本课程中进行详细
的剖析和说明。
通过本课程的学习,学生将会更深入的理解数据仓库的概念,并且通过企业实战项目, 具备根据企业实际的业务场景搭建数据仓库的能力。