数据仓库分层中的ODS、DWD、DWS
1.数据仓库DW
1.1简介
Data warehouse(可简写为DW或者DWH)数据仓库,是在数据库已经⼤量存在的情况下,为了进⼀步挖掘数据资源、为了决策需要⽽产⽣的,它是⼀整套包括了etl、调度、建模在内的完整的理论体系。数据仓库的⽅案建设的⽬的,是为前端查询和分析作为基础,主要应⽤于OLAP(on-line Analytical Processing),⽀持复杂的分析操作,侧重决策⽀持,听且提供直观易懂的查询结果。⽐较流⾏的有:AWS Redshift,Greenplum,Hive等。
1.2主要特点
greenplum数据库⾯向主题:
操作型数据库组织⾯向事务处理任务,⽽数据仓库中的数据是按照⼀定的主题域进⾏组织。
主题是指⽤户使⽤数据仓库进⾏决策时所关⼼的重点⽅⾯,⼀个主题通过与多个操作型信息系统相关。
集成
需要对源数据进⾏加⼯与融合,统⼀与综合
在加⼯的过程中必须消除源数据的不⼀致性,以保证数据仓库内的信息时关于整个企业的⼀致的全局信息。(关联关系)不可修改
DW中的数据并不是最新的,⽽是来源于其他数据源
数据仓库主要是为决策分析提供数据,涉及的操作主要是数据的查询
与时间相关
处于决策的需要数据仓库中的数据都需要标明时间属性
1.3与数据库的对⽐
DW:专门为数据分析设计的,涉及读取⼤量数据以了解数据之间的关系和趋势
数据库:⽤于捕获和存储数据
特性数据仓库事务数据库
适合的⼯作负
载
分析、报告、⼤数据事务处理
数据源从多个来源收集和标准化的数据从单个来源(例如事务系统)捕获的数据
数据捕获批量写⼊操作通过按照预定的批处理计划执⾏针对连续写⼊操作进⾏了优化,因为新数据能够最⼤程度地提⾼事务吞吐量
数据标准化⾮标准化schema,例如星型Schema或雪花型schema⾼度标准化的静态schema
数据存储使⽤列式存储进⾏了优化,可实现轻松访问和⾼速查
询性能
针对在单⾏型物理块中执⾏⾼吞吐量写⼊操作进⾏了优化
数据访问为最⼩化I/O并最⼤化数据吞吐量进⾏了优化⼤量⼩型读取操作
2.数据分层
数据分层,每个企业根据⾃⼰的业务需求可以分成不同的层次,但是最基础的分层思想,理论上数据分为三个层:数据运营层、数据仓库层、数据服务层。基于这个基础分层之上,再提交信息的层次,来满⾜不同的业务需求。
2.1数据运营层(ODS)
ODS:Operation Data Store 数据准备区,也称为贴源层。数据仓库源头系统的数据表通常会原封不动的存储⼀份,这称为ODS层,是后续数据仓库加⼯数据的来源。
ODS层数据的来源⽅式:
业务库
经常会使⽤sqoop来抽取,例如每天定时抽取⼀次。
实时⽅⾯,可以考虑⽤canal监听mysql的binlog,实时接⼊即可。
埋点⽇志
⽇志⼀般以⽂件的形式保存,可以选择⽤flume定时同步
可以⽤spark streaming或者Flink来实时接⼊
kafka也OK
消息队列:即来⾃ActiveMQ、Kafka的数据等。
2.2数据仓库层(DW)
DW数据分层,由下到上为DWD,DWB,DWS。
DWD:data warehouse details 细节数据层,是业务层与数据仓库的隔离层。主要对ODS数据层做⼀些数据清洗和规范化的操作。
数据清洗:去除空值、脏数据、超过极限范围的
DWB:data warehouse base 数据基础层,存储的是客观数据,⼀般⽤作中间层,可以认为是⼤量指标的数据层。
DWS:data warehouse service 数据服务层,基于DWB上的基础数据,整合汇总成分析某⼀个主题域的服务数据层,⼀般是宽表。⽤于提供后续的业务查询,OLAP分析,数据分发等。
⽤户⾏为,轻度聚合
主要对ODS/DWD层数据做⼀些轻度的汇总。
2.3数据服务层/应⽤层(ADS)
ADS:applicationData Service应⽤数据服务,该层主要是提供数据产品和数据分析使⽤的数据,⼀般会存储在ES、mysql等系统中供线上系统使⽤。
我们通过说的报表数据,或者说那种⼤宽表,⼀般就放在这⾥
3.附录
ETL
ETL :Extract-Transform-Load,⽤于描述将数据从来源端经过抽取、转换、加载到⽬的端的过程。
宽表
含义:指字段⽐较多的数据库表。通常是指业务主体相关的指标、纬度、属性关联在⼀起的⼀张数据库表。
特点:
宽表由于把不同的内容都放在同⼀张表,宽表已经不符合三范式的模型设计规范:
坏处:数据有⼤量冗余
好处:查询性能的提⾼和便捷
宽表的设计⼴泛应⽤于数据挖掘模型训练前的数据准备,通过把相关字段放在同⼀张表中,可以⼤⼤提供数据挖掘模型训练过程中迭代计算的消息问题。
数据库设计三范式
为了建⽴冗余较⼩、结构合理的数据库,设计数据库时必须遵循⼀定的规则。在关系型数据库中这种规则就称为范式。范式时符合某⼀种设计要求的总结。
1. 第⼀范式:确保每列保持原⼦性,即要求数据库表中的所有字段值都是不可分解的原⼦值。
2. 第⼆范式:确保表中的每列都和主键相关。也就是说在⼀个数据库表中,⼀个表中只能保存⼀种数据,不可以把多种数据保存在同⼀
张数据库表中。
1. 作⽤:减少了数据库的冗余
3. 第三范式:确保每列都和主键列直接相关,⽽不是间接相关。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论