数据仓库基础

数据仓库

一个面向主题的集成的非易失的随时间变化的数据集合。
主题是在较高层次上将企业信息系统中的数据进行综合归类分析利用的一个抽象概念。
集成性是指数据仓库中数据必须是一致的
非易失:数据仓库中的数据是经过抽取而形成的分析型数据
随时间变化:数据仓库以维的形式对数据进行组织,时间维是数据仓库中很重要的一个维度(不断增加新的数据,删去旧的数据)

数据仓库和数据库的区别

数据库(捕获和存储数据)数据仓库 (分析数据)
数据的集合数据的集合
事务处理OLTP数据分析OLAP
前端用户管理人员
增删改查查询
事件记录维度
3NF星型、雪花

OLTP和OLAP的区别

OLTPOLAP
每次查询只返回少量记录对大量记录进行汇总
随机、低延时写入用户的输入批量导入
用户,Java EE项目管理人员内部分析师,为决策提供支持
最新数据状态随时间变化的历史状态
GBTB到PB

星型模型

1)、事实表就是你要关注的内容;
2)、维度表就是你观察该事务的角度
在这里插入图片描述
星型模型是一种多维的数据关系,一个星型模式中可以有一个或多个事实表,每个事实表引用任意数量的维度表。
应用场景:星型模型的事实表可读性比较好,不用关联多个表就能获取大部分核心信息,设计维护相对比较简答

雪花模型

在这里插入图片描述
雪花模型:当有一个或多个维表没有直接连接到事实表上,而是通过其他维表连接到事实表上时,其图解就像多个雪花连接在一起。雪花模型是对星型模型的扩展,它对星型模型的维表进一步层次化
应用场景:设计方式是比较符合数据库范式的理念,设计方式比较正规,数据冗余少,但在查询的时候可能需要join多张表从而导致查询效率下降,此外规范化操作在后期维护比较复杂

数据ETL

抽取(Extract):从操作型数据源获取数据
转换(Transform):转换数据,使之转变为适用于查询和分析的形式和结构
装载(Load):将转换后的数据导入到最终的目标数据仓库

CDC:Change Data Capture(改变数据捕获)

是数据库级别实现的增量抽取解决方案之一。

基于时间戳的CDC:两列时间,分别记录create_time和modify_time,可以识别变动数据
缺点:
1.无法识别多次更新
2.无法识别删除
3.不具有实时能力

基于触发器的CDC:当执行增删改操作可以使用数据库的触发器来执行,将变更的数据保存到临时表中,然后从临时表抽取数据的ODS层
缺点:影响数据库的性能

基于快照的CDC:每天将mysql的表都导入到ODS层,每天存成一张新表
缺点:占用太多内存

基于日志的CDC:开启binlog,记录增删改操作
flume收集日志工具 + binlog日志= 整合,实时监控,使用flume-ng-sql-source

数据分层

ODS层(近源层)
操作数据层,保存原始数据
该层的数据主要来自业务数据库的 binlog 日志埋点日志应用程序日志

DWD层(数据明细层)
数据来源于ODS层,主要是做一些通用ETL 处理(去除空值,脏数据,超过极限范围的明细解析),将非结构化的数据结构化,根据主题定义好事实与维度表,保存最细粒度的事实数据

DWS层(数据服务层)
宽表-用户行为,轻度聚合,在DWD层的基础之上根据不同的业务需求做轻度汇总;

DM(ADS,数据集市)
做分析处理同步到RDS数据库里边

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值