前期准备
1.指标规范化
由数据治理切入是一个很好的方向,指标规范是数据治乱的起点。其中包含指标口径、计算方式、描述和伪码等等,在公司维度达到统一。特别注意业财、人力间的共识。
2.指标字典
指标字典是指标规范化主要的输出。当前阶段无法做到指标系统管理、元数据管理和血缘关系,字典是比较合适的方法,让业务认识到指标规范重要性,建立一定的指标创建和修改流程。字典同时可以引导业务或者分析师维护分析框架,建立指标体系,做好指标分级。
3.数仓选型
这块需要比较资深的开发或者架构师来选择,但是要考虑到以后可能做的扩展,比如其他数据源,数据量的大小,服务器类型,服务器成本。
数仓设计
1.数仓层级
2.主题域划分
这里指标规范化就起到了作用。不同企业划分主题域的方式会不一样,有的按照产品线,有的按照业务流程。我们的做法是将所有指标还原到业务流程,以业务动作指导主题域划分。
3.数仓模型
OLAP的模型比较常用的还是维度建模。
建模是在中间层,事实表+维度表
4.制定命名规则
数据来源、层级、表类型、主题域(二级域)、表名称
5.接管ODS
ODS 层表的数据必须和数据源的表结构、表记录数一致,高度无损。注意数据安全,数据脱敏处理。对接的方式有多种,具体要看业务场景。通常第一次读完库表后,接入binlog经kafka、flume等进入ODS。
①ODS层以流水表和快照表为主,按日期对数据进行分区保存,不使用拉链表;
②ODS层的数据不做清洗和转换,数据的表结构和数据粒度与原业务系统保持一致。
6.DWD
①明细层主要是进行数据清洗,标准化,维度退化。
这里解释下退化并不等于没有,而 有到没有的过程。现实场景是, 应该是随着业务变化,数仓建模也发生了变化,原先丰富的维度表中的维度属性,冗余进其他维度或者事实表度量里,造成早起抽象的维度表被架空,形成"退化"。
②明细层整体还是满足3NF模型。
③拉链表也存在这里
7.DWS
①按主题对数据进行抽象、归类,提供业务系统细节数据的长期沉淀。
②这一层是一些汇总后的宽表,是根据DWD层数据按照各种维度或多种维度组合,把需要查询的一些事实字段进行汇总统计。可以满足一些特定查询、数据挖掘应用,面向业务层面,根据需求进行汇总。
③反3NF
8.DM
即指标
9.ETL
ETL和ELT主要是先清洗数据还是先入库的区别。ETL一般使用主流框架用程序在提取的时候就将数据进行清洗,ELT则是将数据存到数据仓库,再用sql进行数据清洗。