01_数仓分层架构梳理
2022-03-07 18:28:02 76 举报
AI智能生成
数仓架构-数据分层流转
作者其他创作
大纲/内容
阿里One Data
三层设计
三层设计
ODS 操作数据层
CDM:公共维度模型层
DWD数据明细层
DWS数据汇总层
ADS 应用数据层
划分原则
1、高内聚低耦合
2、核心模型与拓展模型分离
3、公共处理逻辑下沉及单一
4、成本与性能平和
5、数据可回滚(多次运行)
6、一致性(上下层/相同名称含义一致)
7、命名清洗,容易理解
名称解释
维度表
就是一些维度信息,直接存储未读信息,一般维度不会很大
事实表
表述一些事实信息,如订单,收藏,添加购物车等信息
数据量较大,一般存储维度主键,方便后期处理分析再临时关联
实体表
用来描述信息的,如优惠券,促销表
其他常用名词
ETL:抽取、转换、加载
Extract-Transform-Load
宽表
指字段比较多的数据库,通常是指业务主体相关指标、维度、属性在一起的一张数据库表
特点
宽表将不同的内容放在同一张表,所以不符合三范式的模型设计规范
好处:查询性能的提高和便捷
坏处:数据又大量的冗余
主题:Subject
具有较高层次上将企业信息系统中的数据进行综合、归类和分析类用的一个抽象概念
每个主题基本对应一个宏观的分析领域
数据集市:DataMart
数据集市(Data Mart),也叫数据市场,数据集市就是满足特定的部门或者用户的需求,
按照多维的方式进行存储,包括定义维度、需要计算的指标、
维度的层次等,生成面向决策分析需求的数据立方体。
按照多维的方式进行存储,包括定义维度、需要计算的指标、
维度的层次等,生成面向决策分析需求的数据立方体。
在数据结构上,数据仓库是面向主题的、集成的数据的集合
而数据集市通常被定义为星型结构或者雪花模型的结构,
数据集市一般是由一张事实表和几张维度表组成
而数据集市通常被定义为星型结构或者雪花模型的结构,
数据集市一般是由一张事实表和几张维度表组成
数据分层的意义
降低存储压力、降低企业使用成本
复用中间数据结果、提升数据处理速度
灵活应对业务需求,快捷高效
数仓分层的好处
清洗数据结构
让每个数据层都有自己的作用和职责,在使用和维护的时候能够更方便和理解
复杂问题简单化
将一个复杂的任务拆解成多个步骤来分步骤完成,每个层只解决特定的问题
统一数据口径
通过数据分层,提供统一的数据出口,统一输出口径
减少重复开发
规范数据分层,开发通用的中间层,可以极大地减少重复计算的工作
DWT层:数据主题层
主题数据层
分析过的指标
流转/GMV/复购率/转化率/留存率等
ADS:数据应用层
ADS:Application Data Service
数据应用层-出报表结果
该层主要是提供给数据产品和数据分析使用的数据
一般会放在ES,Redis,PostgreSql中供线上系统使用,
也可能存放在Hive/Druid中,供数据分析和数据挖掘使用--如常用的数据报表就存放在这里面
也可能存放在Hive/Druid中,供数据分析和数据挖掘使用--如常用的数据报表就存放在这里面
DWS:数据服务层
DWS:Data WareHouse Servce
数据服务层,也有叫做数据聚合层
为更上层的ADS层或者直接面向需求方服务.
DWS建模,一般使用主题建模,维度建模等方式
主题建模
围绕某一个业务主体进行数据建模,将相关的数据抽离提取出来
如流量会话按照每天/每月进行聚合
将每日新用户进行聚合/将每日活跃用户进行聚合
维度建模
根据业务需要提前将后续数据查询处理需要的维度数据
抽离处理处理,方便后续查询使用
抽离处理处理,方便后续查询使用
如将运营维度数据聚合
将渠道拉新维度数据聚合
DWD层:数据明细层
DWD:Data Warehouse Detail
对ODS层数据进行提取转换清洗/ETL
去除空值,脏数据,超过极限范围的数据,行式存储改为列存储,改压缩格式
很多时候存储的都是事实表为主.
一般就是维度表,事实表,实体表等数据.
维度退化/数据冗余??
ODS层:原始数据层
ODS: Operation Data Store
贴源层:原始数据
直接加载原始日志、数据,数据保持原貌不做处理
有的公司会在一开始时就在ODS层做数据相对精细化的过滤.这个并没有明确规定,看每个公司自己的想法和技术规范
数据可能存在的问题
1、字段缺失 2、字段不统一 3、格式错误
4、关键信息丢失 5、数据来源复杂 6、数据类型不统一

收藏

收藏
0 条评论
下一页