大数据系统建模方法论简谈

1.根据业务需求构建总线矩阵--明确需求

构建总线矩阵的目的:总线矩阵也是BI核心之一,基本上只要详细了解企业业务战略线就能得出总线矩阵,它对应着企业每一个业务单元,提取业务单元中的一致性维度和事实量值组 组合成企业总线矩阵也就是多维分析模型;总线矩阵也是BI项目实施交付的必要成果之一,它与数据仓库的概念模型非常吻合。

时间

用户

地区

商品

优惠券

活动

编码

度量值

订单

件数/金额

订单详情

件数/金额

支付

金额

加购

件数/金额

收藏

个数

评价

个数

退款

件数/金额

优惠券领用

个数

2.数据建模

2.1总体规划

大数据系统建模方法论简谈_第1张图片

  • 业务建模,这部分建模工作,主要包含以下几个部分:

划分整个单位的业务,一般按照业务部门的划分,进行各个部分之间业务工作的界定,理清各业务部门之间的关系。

深入了解各个业务部门的内具体业务流程并将其程序化。

提出修改和改进业务部门工作流程的方法并程序化。

数据建模的范围界定,整个数据仓库项目的目标和阶段划分。

  • 领域概念建模,这部分得建模工作,主要包含以下几个部分:

抽取关键业务概念,并将之抽象化。

将业务概念分组,按照业务主线聚合类似的分组概念。

细化分组概念,理清分组概念内的业务流程并抽象化。

理清分组概念之间的关联,形成完整的领域概念模型。

  • 逻辑建模,这部分的建模工作,主要包含以下几个部分:

业务概念实体化,并考虑其具体的属性

事件实体化,并考虑其属性内容

说明实体化,并考虑其属性内容

  • 物理建模,这部分得建模工作,主要包含以下几个部分:

针对特定物理化平台,做出相应的技术调整

针对模型的性能考虑,对特定平台作出相应的调整

针对管理的需要,结合特定的平台,做出相应的调整

生成最后的执行脚本,并完善之。

2.2维度建模

  • 什么是维度建模

维度建模以分析决策的需求出发构建模型,构建的数据模型为分析需求服务,重点解决用户如何更快速完成分析需求,同时还有较好的大规模复杂查询的响应性能。

维度建模并不要求维度模型必须满足第3范式。数据库中强调的 3NF 主要是为了消除冗余。而维度建模解决了模式过分复杂的问题。

  • 什么是星形模型

星型模型就是我们一种典型的维度模型。我们在进行维度建模的时候会建一张事实表,这个事实表就是星型模型的中心,然后会有一堆维度表,这些维度表就是向外发散的星星。

  • 事实表

 发生在现实世界中的操作型事件,其所产生的可度量数值,存储在事实表中。从最低的粒度级别来看,事实表行对应一个度量事件,反之亦然。

  • 维度表

 每个维度表都包含单一的主键列。维度表的主键可以作为与之关联的任何事实表的外键,当然,维度表行的描述环境应与事实表行完全对应。 维度表通常比较宽,是扁平型非规范表,包含大量的低粒度的文本属性。

3.数仓建模过程

3.1准备工作

  • 首先需要将业务数据库的数据结构同步到EZDML或者PD等工具,根据外键id把所有表关联到一起。方便梳理业务关系。
  • 然后利用工具,将数据导入数仓中,进行处理。

3.2数仓分层架构的一种(五层架构)

  • ods:

  1. 存放原始数据(日志,数据)

  2. 创建分区表,防止后续全表扫描

  3. 采用LZO压缩,减少磁盘存储空间

ODS到DWD层需要做的事情:

  1. ETL(用hql,mr,sparksql,kettle,python)

  2. 清洗的原则:解析日志、核心字段不能为空、超期数据过滤掉、重复数据过滤匹配手机号、身份证号、邮箱、qq

  3. 清洗掉多少数据:万分之一,不合格时候查自己的代码、前端、javaee

  4. 采用压缩:LZO(减少磁盘空间)

  5. 列式存储,加快查询速度,减少磁盘空间

  6. 数据脱敏 手机号等(非要用手机号时候1.加权限 2.md5加密)

  • dwd-数据明细层:

1、选择业务过程:中小型公司全选业务表,大型公司表比较多,根据需求主线选择表

2、数据清洗:去除控制、脏数据、超过范围极限的数据、维度退化、脱敏等

3、声明数据粒度:每一行代表一次下单、一个行为(选择最小粒度,不聚合)

3、确定维度a

什么时间、什么地点、谁、活动、优惠券、业务名词

4、确定事实

度量值:次数、件数、金额、个数

维度退化:维度退化的依据是维度建模中的星型模型:事实表周围一级维度,减少后续的join

退化过程:商品表、spu、品类表、一级分类、二级分类、三级分类=》商品维度表

省份表、地区表=》地区维度表

dws:

1.以dwd为基础,按天进行轻度汇总

dwt:

  1. 确定哪些宽表

站在维度的角度看事实:“地区、用户、设备、活动、优惠券

  1. 宽表的字段怎么来

站在维度的角度看事实,开始时间,结束时间、累计度量值、最近一段时间累计度量值。

ads:

  1. 出报表:手写

你可能感兴趣的:(spark,大数据,分布式)