数据仓库设计规范(更新中)

简介: 文章目录

文章目录

设计规范

逻辑架构

技术架构

分层设计

主题划分

分级管理

命名规范

层级

任务

字段

模型规范

建模方法

建模工具

血缘关系

维度退化

元数据管理

开发规范

脚本注释

字段别名

脚本格式

流程规范

设计规范

逻辑架构

数据采集

数据采集层:数据采集层的任务就是把数据从各种数据源中采集和存储到数据库上,期间有可能会做一些ETL (抽取extra,转化transfer,装载load )操作。

数据源种类可以有多种:

日志:所占份额最大;

存储在备份服务器上业务数据库:如Mysg|、 Oracle ;

来自HTTP/FTP的数据:合作伙伴提供的接口

其他数据源:如Excel等需要手工录入的数据.


数据存储


数据计算


HDFS是大数据环境下数据仓库/数据平台最完美的数据存储解决方案。离线数据分析与计算,也就是对实时性要求不高的部分,Hive 是不错的选择。使用Hadoop框架自然而然也提供了MapReduce 接口,如果可以开发Java,或者对SQL不熟,那么也可以使用MapReduce来做分析与计算。

Spark性能比MapReduce好很多,同时使用SparkSQL操作Hive。


数据展现

技术架构

数据采集→Kafka→hdfs→Flink→HBase

image.png 分层设计

ods→dw→dws→sh→


数据仓库的要求


高效率:数据仓库的分析数据一般分为日、周、月、季、年等,可以看出,以日为周期的数据要求的效率最高,要求24小时甚至12小时内,客户能看到昨天的数据分析。由于有的企业每日的数据量很大,如果数据仓库设计的不好,需要延时一-到两天才能显示数据,这显然是不能出现这种事情的。

高质量:数据仓库所提供的各种信息,肯定要准确的数据。数据仓库通常要经过数据清洗,装载,查询,展现等多个流程而得到的,如果复杂的架构会有更多层次,那么由于数据源有脏数据或者代码不严谨,都可以导致数据不准确或者有错误,如果客户看到错误的信息就可能导致分析出错误的决策,造成损失经济的损失。

高扩展性:之所以有的大型数据仓库系统架构设计复杂,是因为考虑到了未来3-5年的扩展.性,因为如果在未来需要扩展一些新的功能了,就可以不用重建数据仓库系统,就能很稳定运行。因为重建-一个数据仓库是比较耗费人力和财力。可扩展性主要体现在数据建模的合理性。

为了达到上述的要求,建立起一个高效率、高数据质量、良好的可扩展性,再加上为了提高建仓的速度,根据在实际生产环境中的经验的总结,于是数据仓库需要分层。


数据仓库分层的原因

1、用空间换时间,通过数据预处理提高效率,通过大量的预处理可以提升应用系统的用户体验(效率),但是数据仓库会存在大量冗余的数据.

2、增强可扩展性,方便以后业务的变更。如果不分层的话,当源业务系统的业务规则发生变化整个数据仓库需要重建,这样将会影响整个数据清洗过程,工作量巨大。

3、通过分层管理来实现分步完成工作,简化数据清洗的过程,使每一层处理逻辑变得更简单。因为把原来一步的工作分到了多个步骤去完成,相当于把一个复杂的工作拆成了多个简单的工作,把-一个大的黑盒变成了一个白盒,每一层的处理逻辑都相对简单和容易理解,这样我们比较容易保证每一个步骤的正确性,当数据发生错误的时候,往往我们只需要局部调整某个步骤即可。


数据仓库具体的分层

标准的数据仓库分层: stg(数据缓冲层), ods (数据贴源层),dw:dwd dws dwt (数据仓库

层),ads (数据集市层),app (应用层)。

stg:源数据缓冲层,它和源系统数据是同构的,而且这一层数据粒度是最细的,数据层与

业务源的数据结构- – -对应,是数据存储的临时存储区域,数据在其中只作暂时性保存,当新的数据到达缓储区时,现有数据被删除或覆盖。


主题划分

面向主题域管理

为了提高指标管理的效率,你需要按照业务线,主题域,和业务过程三级目录方式来进行指标管理


划分原子指标和派生指标

原子指标+原子指标=派生指标


进行指标的命名规范

原则:简单易懂+统一

易懂:直接判断这个指标到底属于那个业务过程

统一:确保派生指标和它继承的原子指标命名是一致的


对于原子指标,指标名适用与”动作+度量"的命名方式

例子:注册用户数登录用户贷款申请用户数


对于派生指标来说,严格遵循“时间周期 +统计粒度+修饰词+原子指标”

30天90天内+ 12期内无逾期用户


分级管理

指标比较多,很难管理,所以需要按照原则或者等级进行划分

一级指标:核心指标领导看的

二级指标:原子指标和业务 部门门创建的派生指标


命名规范

层级

根据主题划分


ods→dw→dws→sh→ads


任务

按照天月日等等


常规表

使我们需要固化的表,正常使用的,没有下线的,长时间去维护的表。

规范:分层前缀[dwd|dws|ads|app].业务域(CMIS/CMS/APP)主题域(event) xxx_ 更新频率(all/inc)增量/全量。

dwd.xxx_XX_all每日全量
dwd.xxx_xx_inc每日增量
dwd.xxx_XXX_month_all每月全量
dwd.xxx_XXX_month_inc每月增量

中间表/临时表


temp/mid_ table_ name_ time (20210705) dim/ods


维度表:

维度表基于底层数据,抽象出来具有描述性质的表。也可以手动维护。

dim.xxxx


字段

表和列的注释是否有缺失,复杂的指标计算逻辑是有注释


模型规范

建模方法

建模工具

血缘关系

维度退化

元数据管理

开发规范

任务是否支持多次重跑而输出不变,不能有insert into这个语句


脚本注释

字段别名

脚本格式

流程规范

参与角色 : 数据产品经理+数据分析师+ 运营+开发人员

需求 分析: 提出需求→需求分析→需求评审→ETL设计→单元测试→线上冒烟测试→数

设计阶段:模型设计

开发阶段:代码开发

测试阶段:自测

发布验收:上线

目录
相关文章
|
消息中间件 搜索推荐 算法
数据仓库常见规范
数据仓库常见规范
数据仓库常见规范
|
5天前
|
存储 数据采集 大数据
数据仓库建模规范思考
本文介绍了数据仓库建模规范,包括模型分层、设计、数据类型、命名及接口开发等方面的详细规定。通过规范化分层逻辑、高内聚松耦合的设计、明确的命名规范和数据类型转换规则,提高数据仓库的可维护性、可扩展性和数据质量,为企业决策提供支持。
49 10
|
7月前
|
存储 数据挖掘 BI
离线数据仓库规范
离线数据仓库规范
|
7月前
|
存储 大数据 数据管理
数据仓库(07)数仓规范设计
所谓的规范的定义,简单理解,如果把数据当作货物,那就是货物的分类,以及对应相关的属性,比如生产日期,某个原料的含量等,我们可以把相近或者相同货物,按照一定的规律,放在一起,方便入库与出库,需要某个货物按照这些规律就可以,以比较快的速度拉取出来。 一般的规范设计包含一下几个方面:划分和定义数据域、业务过程、维度、度量 原子指标、修饰类型、修饰词、时间周期、派生指标。
332 0
|
存储 SQL 数据采集
数据仓库建设规范
数据仓库层是我们在做数据仓库时要核心设计的一层,在这里,从 ODS 层中获 得的数据按照主题建立各种数据模型。DW 层又细分为 DWD (Data Warehouse Detail) 层、DWM (Data WareHouse Middle) 层和 DWS (Data WareHouse Servce) 层。
数据仓库建设规范
|
存储 SQL 运维
一篇文章搞懂数据仓库:数据仓库规范设计
一篇文章搞懂数据仓库:数据仓库规范设计
一篇文章搞懂数据仓库:数据仓库规范设计
|
数据采集 SQL 监控
浅谈数据仓库质量管理规范
浅谈数据仓库质量管理规范
239 0
|
数据采集 存储 SQL
|
存储 大数据 数据挖掘
|
数据采集
数据仓库专题22-网络用户行为数据采集标准规范设计
一、前言    网络用户行为数据采集的趋势渐成,尤其是移动应用普及的今天,不再只是传统的互联网公司的专宠,传统企业也是趋之若鹜。但是遗憾的却始终没有一个规范标准,全凭企业自发与自愿的到底底线来控制,数据立法尚未见曙光,无德者如支付宝,通讯录、短信已经不能满足他们的窥私欲,改而录音,偷拍种种,无所不用其极。
896 0

热门文章

最新文章

下一篇
DataWorks