数据仓库、ETL和数据开发体系:DW、 ETL、Data Platform

test01
为什么要分层
我们对数据进行分层的一个主要原因就是希望在管理数据的时候,能对数据有一个更加清晰的掌
控,详细来讲,主要有下面几个原因:
• 清晰数据结构:
每一个数据分层都有它的作用域,这样我们在使用表的时候能更方便地定位和理解。
• 数据血缘追踪
简单来讲一张业务表的来源有很多,如果有一张来源表出问题了,我们希望能够快速准确地定位到问题,
并清楚它的危害范围。
• 减少重复开发:
规范数据分层,开发一些通用的中间层数据,能够减少极大的重复计算。将一个复杂的任务分解成多个步
骤来完成,每一层只处理单一的步骤,比较简单和容易理解。而且便于维护数据的准确性,当数据出现问
题之后,可以不用修复所有的数据,只需要从有问题的步骤开始修复。
• 屏蔽原始数据的异常。
屏蔽业务的影响,不必改一次业务就需要重新接入数据

ODS层
• ODS全称是Operational Data Store,操作数据存储
• “面向主题的”
,数据运营层,也叫ODS层,是最接近数据源中数据的一层,数据源中的数据,经过抽取、洗净、传输,
也就说传说中的ETL之后,装入本层。本层的数据,总体上大多是按照源头业务系统的分类方式而分类的。例如这一层
可能包含的数据表为:
• 人口表(包含每个人的身份证号、姓名、住址等)、
• 机场登机记录(包含乘机人身份证号、航班号、乘机日期、起飞城市等)、
• 银联的刷卡信息表(包含银行卡号、刷卡地点、刷卡时间、刷卡金额等)、
• 银行账户表(包含银行卡号、持卡人身份证号等)等等一系列原始的业务数据。
• 这里我们可以看到,这一层面的数据还具有鲜明的业务数据库的特征,甚至还具有一定的关系数据库中的数据范式的组
织形式。
• 但是,这一层面的数据却不等同于原始数据。在源数据装入这一层时,要进行诸如:
• 去噪(例如去掉明显偏离正常水平的银行刷卡信息)、
• 去重(例如银行账户信息、公安局人口信息中均含有人的姓名,但是只保留一份即可)、
• 提脏(例如有的人的银行卡被盗刷,在十分钟内同时有两笔分别在中国和日本的刷卡信息,这便是脏数据)、
• 业务提取、
• 单位统一、
• 砍字段(例如用于支撑前端系统工作,但是在数据挖掘中不需要的字段)、
• 业务判别等多项工作

ODS层
• ODS全称是Operational Data Store,操作数据存储
• “面向主题的”
,数据运营层,也叫ODS层,是最接近数据源中数据的一层,数据源中的数据,经过抽取、洗净、传输,
也就说传说中的ETL之后,装入本层。本层的数据,总体上大多是按照源头业务系统的分类方式而分类的。例如这一层
可能包含的数据表为:
• 人口表(包含每个人的身份证号、姓名、住址等)、
• 机场登机记录(包含乘机人身份证号、航班号、乘机日期、起飞城市等)、
• 银联的刷卡信息表(包含银行卡号、刷卡地点、刷卡时间、刷卡金额等)、
• 银行账户表(包含银行卡号、持卡人身份证号等)等等一系列原始的业务数据。
• 这里我们可以看到,这一层面的数据还具有鲜明的业务数据库的特征,甚至还具有一定的关系数据库中的数据范式的组
织形式。
• 但是,这一层面的数据却不等同于原始数据。在源数据装入这一层时,要进行诸如:
• 去噪(例如去掉明显偏离正常水平的银行刷卡信息)、
• 去重(例如银行账户信息、公安局人口信息中均含有人的姓名,但是只保留一份即可)、
• 提脏(例如有的人的银行卡被盗刷,在十分钟内同时有两笔分别在中国和日本的刷卡信息,这便是脏数据)、
• 业务提取、
• 单位统一、
• 砍字段(例如用于支撑前端系统工作,但是在数据挖掘中不需要的字段)、
• 业务判别等多项工作

ODS层
• ODS全称是Operational Data Store,操作数据存储
• “面向主题的”
,数据运营层,也叫ODS层,是最接近数据源中数据的一层,数据源中的数据,经过抽取、洗净、传输,
也就说传说中的ETL之后,装入本层。本层的数据,总体上大多是按照源头业务系统的分类方式而分类的。例如这一层
可能包含的数据表为:
• 人口表(包含每个人的身份证号、姓名、住址等)、
• 机场登机记录(包含乘机人身份证号、航班号、乘机日期、起飞城市等)、
• 银联的刷卡信息表(包含银行卡号、刷卡地点、刷卡时间、刷卡金额等)、
• 银行账户表(包含银行卡号、持卡人身份证号等)等等一系列原始的业务数据。
• 这里我们可以看到,这一层面的数据还具有鲜明的业务数据库的特征,甚至还具有一定的关系数据库中的数据范式的组
织形式。
• 但是,这一层面的数据却不等同于原始数据。在源数据装入这一层时,要进行诸如:
• 去噪(例如去掉明显偏离正常水平的银行刷卡信息)、
• 去重(例如银行账户信息、公安局人口信息中均含有人的姓名,但是只保留一份即可)、
• 提脏(例如有的人的银行卡被盗刷,在十分钟内同时有两笔分别在中国和日本的刷卡信息,这便是脏数据)、
• 业务提取、
• 单位统一、
• 砍字段(例如用于支撑前端系统工作,但是在数据挖掘中不需要的字段)、
• 业务判别等多项工作

数据产品层(APP)
• 数据产品层(APP),这一层是提供为数据产品使用的结果数据
• 在这里,主要是提供给数据产品和数据分析使用的数据,一般会存放在es、mysql等系统中
供线上系统使用,也可能会存在Hive或者Druid中供数据分析和数据挖掘使用。
• 数据生成方式:由明细层、轻度汇总层,数据集市层生成,一般要求数据主要来源
于集市层。
• 日志存储方式:使用impala/hive内表,parquet文件格式。
• 日志删除方式:长久存储。
• 表schema:一般按天创建分区,没有时间概念的按具体业务选择分区字段。

在这里插入图片描述
缓冲层
• 缓冲层(buffer)
• 概念:又称为接口层(stage),用于存储每天的增量数据和变更数据,如Canal接收的业
务变更日志。
• 数据生成方式:直接从kafka接收源数据,需要业务表每天生成update,delete,inseret数据,
只生成insert数据的业务表,数据直接入明细层
• 表schema:一般按天创建分区,没有时间概念的按具体业务选择分区字段。
• 库与表命名。库名:dm,表名:dm_业务表名

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

技术学习分享

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值