打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
大数据数据仓库建设

1.OLAP查询的基本概念

维度(dimension):常用于where查询条件,是人们观察数据的特定角度,是考虑问题时的一类属性。

度量(measure):即按照维度标记,用于描述事实本身的数据。

事实(Fact):由measure信息组成并按照维度划分的表称为Fact表

常用的数据模型包括星型模型和雪花型模型。

事实表与维表:

1.建设方式:

数据流:

数据采集 --- 数据接入 --- 数据存储 --- 数据建模 --- 数据开发

建设方式:

自上而下, 自下而上。

2.建设流程-建模

需求调研 - 业务建模 - 主题划分

结构设计 - 逻辑建模 - 层次结构划分 (分为四层(base ods , mds ,应用数据层 ), 多维建模,大宽表)

结构落地 - 物理建模 - 最终设计文档 (基于hive建模,具体的表结构, 或者目录+parquet)

根据业务需求,选择相应的建模方法进行建模,建模方法如下。

3.建模方法

建模方法:

实体建模(ER)

维度建模 (数据预处理复杂,表连接查询速度慢)

DataVault

Anchor模型

3.1.实体关系(ER)模型

面向主题的3NF模型。

数据仓库之父Immon的方法从全企业的高度设计一个3NF模型,用实体加关系描述的数据模型描述企业业务架构,在范式理论上符合3NF,它与OLTP系统中的3NF的区别,在于数据仓库中的3NF上站在企业角度面向主题的抽象,而不是针对某个具体业务流程的实体对象关系抽象,它更多的是面向数据的整合和一致性治理,正如Immon所希望达到的:“single version of the truth”。

3.2.维度模型

维度模型是数据仓库领域另一位大师Ralph Kimall所倡导,他的《The DataWarehouse Toolkit-The Complete Guide to Dimensona Modeling,中文名《数据仓库工具箱》,是数据仓库工程领域最流行的数仓建模经典。维度建模以分析决策的需求出发构建模型,构建的数据模型为分析需求服务,因此它重点解决用户如何更快速完成分析需求,同时还有较好的大规模复杂查询的响应性能。

典型的代表是我们比较熟知的星形模型,以及在一些特殊场景下适用的雪花模型。

步骤:

选择分析决策的业务过程。

选择粒度

选择维度

选择事实 -分析需要衡量的指标。

3.3.DataVault

DataVault是Dan Linstedt发起创建的一种模型方法论,它是在ER关系模型上的衍生,同时设计的出发点也是为了实现数据的整合,并非为数据决策分析直接使用。它强调建立一个可审计的基础数据层,也就是强调数据的历史性可追溯性和原子性,而不要求对数据进行过度的一致性处理和整合;同时也基于主题概念将企业数据进行结构化组织,并引入了更进一步的范式处理来优化模型应对源系统变更的扩展性。

它主要由:Hub(关键核心业务实体)、Link(关系)、Satellite(实体属性) 三部分组成 。

相关书籍: Data Vault modeling Guide

3.4.Anchor模型 ['æŋkɚ]

Anchor模型是由Lars. Rönnbäck设计的,初衷是设计一个高度可扩展的模型,核心思想:所有的扩展只是添加而不是修改,因此它将模型规范到6NF,基本变成了K-V结构模型。

Anchor模型由:Anchors 、Attributes 、Ties 、Knots 组成,相关细节可以参考《AnchorModeling-Agile Information Modeling in Evolving Data Environments》

4.数据仓库子系统

数据监控 - 保证数据稳定

规范设计 -开发一致性

开发模板和工具 - 提升开发效率 (补数,对数)

元数据--- 解决数据易用

调度系统 - 解决程序依赖

数据监控:

数据未生成

数据总条数异常

某渠道或来源数据异常

数据格式异常

同比环比异常

监控方法:

根据azakaban报警信息

任务执行完后验证(同比,环比,验证,报警)

规范设计:

命名规范

数据目录结构规范

程序目录规范

处理流程规范

开发模板和工具:

日期获取,同比环比日期获取

删除文件操作

结果数据入库

补数工具

对数工具

元数据:

基础元数据

业务元数据(表结构描述为文档)

调度系统:

azkaban调度

二.建模流程详解

业务建模 - 主题划分

层次划分

BASE层: 存储每天的增量数据和变更数据,如Canal接收的业务变更日志, 按天创建分区。

ODS层: 明细数据 (数据清洗,转换,字段拆分 ),轻粒度的汇总。抽象出来一些通用的维度:时间、ip、id,并根据这些维度做一些统计值。

MDS:分主题: 宽表,维表+事实表

RPT: 生成特征, 应用的数据 , OLAP 决策分析,数据挖掘。

(一个维表可以给多个事实表使用)

数据仓库使用kylin做多维数据分析。

数据仓库可视化:zeppelin + kylin 做可视化。

三.数仓架构

数据仓库定义:

面向主题: 用户主题(用户留存分析,用户画像,会员分析),行为主题,订单主题,库存主题

集成数据使用于OLAP离线分析场景

用于决策分析,数据挖掘,报表统计

数据仓库架构:

数据接入:

四.集群运维

部署:

Apache(社区版) (目前使用)

CDH (Cloudera)

HDP (Hortonworks)

五.数据质量监控

1.监控

日常监控、数据对账、性能监控。

(日常监控最重要)

日常监控内容:

数据落地监控

数据掉0监控:实际扩展一下就是数据量阈值监控,少于某个量就告警

重复数据监控:很多表一定要监控重复数据的,这点至关重要。

关键指标监控

数据同比环比监控

这是一些常用的监控,可以做一个规则引擎,上面提到的都做到规则里面,哪个表需要了就配置一下, 然后执行引擎去执行。

2.日常监控实现

规则引擎:

Sql模板 :提前配置好大部分的sql模板,然后需要监控哪张表了就在这张表配置一下就行。

元数据:Hive表的行数都是在元数据库中有存放的,我们可以直接通过Hive的元数据来抓取表的每天的数据量的。

自定义模板

执行引擎:

1.sql执行:

提前配置好大部分的sql模板,然后需要监控哪张表了就在这张表配置一下就行。

具体的执行引擎的话可以考虑presto或者spark sql,特别大的任务可以考虑hive。

2.直接获取数据量

Hive是有元数据管理的,它的元数据库中是记录Hive的所有表的记录数的,这些记录数可以直接用作数据量相关的监控,比如数据掉零、数据量环比同比、数据量趋势等。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
数据建模知多少
范式模型
万字详解数据仓库建设体系方法
大话数仓,数据仓库,维度建模方法(二)
如何成为一个合格的数据架构师?
干货:解码OneData,传说中的阿里数据中台是如何练成的?
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服