文章目录
数据仓库设计
一、数据仓库的功能和应用场景
1.OLTP:联机事务处理
场景:为了满足公司买卖的业务场景,而给用户提供了注册、登记、订单等功能,为了实现这些功能而存储了数据
数据的使用者:用户
特点
业务数据管理和存储
读写速度:快
满足事务性的需求
数据量相对较小
工具
一般选用关系型数据库来实现:MySQL、Oracle
2.OLAP:联机分析处理
场景:为了满足运营决策的需求,将公司各种各样的数据,实现数据分析的管理
数据的使用者:运营、运维、领导层、数据分析师
特点
读写速度要求:按照一定时间周期进行处理,每个小时,每天,离线数据仓库:T+1
数据量:非常庞大
事务性的需求:不需要
工具
一般使用专业数据仓库工具来实现:Hive、GreepNum
3.数据仓库功能
功能
为了满足OLAP场景下的数据管理需求
存储:实现各种数据统一化的存储
处理:将各种原始数据进行规范化的处理,提供给各个需求方
本质
是一种分布式、统一化的、规范化的数据管理的设计模型
4.数据仓库应用
应用场景:满足企业中所有数据的统一化存储,通过规范化的数据处理来实现企业的数据分析应用
二、数据仓库的特点
数据仓库的核心特点
1.面向主题
按照主题划分的应用需求
数据库:面向业务的
人事部门:人事管理系统:人事数据库中
在职人员信息
离职人员信息
财务部门:财务管理系统:财务数据库中
支持数据表
收入数据表
盈利数据表
为了满足不同的业务,讲不同的数据放在不同的应用系统中
数据仓库:面向主题的
数据仓库:公司中所有的数据全部通过数据采集或者数据同步进入数据仓库【超市 = 所有数据】
数据集市/主题域:一般都是按照部门划分【商品类别=数据类别】
- 销售数据集市
- 财务数据集市
- 人事数据集市
- 运维数据集市
- 运营数据集市
数据主题:各个应用对应的主题【商品细分 = 应用类别】
订单主题
收入主题、支出主题、税务主题
在职人员主题、离职人员主题
应用日志主题、机器日志主题
来源分析主题、用户分析主题……
2.数据集成
存储整个公司所有数据,为公司所有数据的需求方提供数据
数据仓库本身不产生数据,也不使用数据
数据仓库会将整个公司采集到的所有数据源的数据进行存储,提供给各个数据的应用方
3.非易失/稳定性
按照数据仓库的业务需求,没有更新和删除的业务
更新:没有,如果修改了数据,修改了数据的真实性,分析的结果就不对了
删除:没有,工作中会出现删除老的历史数据,不会删除使用的数据
4.时变性/动态性
数据仓库中会按照时间记录时间发生变化的数据状态
数据仓库中的数据随着时间的变化会不断增加
变化状态:增加
三、数据仓库的核心流程
1.ETL
1.1功能
Extract、Transform、Load:抽取、转换、加载,将原始数据根据需求进行处理,将处理好的数据再写入HDFS
1.2阶段:两个阶段
数据生成
数据采集
采集:采集后的数据放在HDFS上
/nginx/log/source/2021-05-09/20210509.log
数据不一定是标准的结构化格式
ETL:过滤、补全、转换
/nginx/log/etl/2021-05-09/20210509.log
通过代码进行开发:MapReduce、SparkCore
入库:将ETL以后的每一天的数据作为Hive表的一个分区
数据存储
ETL场景:数据本身就是结构化的,直接加载到Hive表中
实现:通过SQL来实现ETL
数据计算
数据应用
1.3实现
过滤、转换、补全
过滤:将不需要的数据,或者非法的数据进行过滤
数据中有10个字段,发现一条数据只有1个字段
数据中重要的字段丢失:ip/userid/sessionId
转换:将原始数据格式变成我们想要的数据格式
解密:数据本来采集的时候是加密的,ETL时候实现解密操作
格式:18/Aug/2021:19:30:00 =》 2021-08-18 19:30:00
补全:需要使用的数据,但是原始数据中没有
通过解析IP地址:得到用户所在的位置:国家、省份、城市
通过时间信息:补全年、月、日、周、季度
2.分层
功能:规定数据在数据仓库中处理的步骤
实现:每一层就是一个数据库,不同层的数据表在不同的数据库中
3.建模
功能:决定了数据表如何构建
实现:ER建模、维度建模等

本文深入探讨数据仓库的设计,包括其功能、应用场景、特点和核心流程。重点讲解了数据仓库的面向主题、数据集成、非易失性和时变性特征。同时,详细阐述了ETL过程、分层、建模(如ER模型和维度模型)、事实表和维度表的设计,并提到了渐变维度和分层管理。数据仓库在OLTP和OLAP中发挥关键作用,为企业数据分析提供支持。
6971

被折叠的 条评论
为什么被折叠?



