如何搭建一个数据仓库

本文涉及的产品
云原生数据仓库AnalyticDB MySQL版,基础版 8ACU 100GB 1个月
简介: 如何搭建一个数据仓库

这是我的第9篇原创

实用干货来了!

有朋友私信我,说希望了解数仓的整体建设中的细节及模板。那有啥说的,上干货!


数仓全景图镇楼

00建设过程

数仓建模的过程分为业务建模、领域建模、逻辑建模和物理建模,但是这  些步骤比较抽象。为了便于落地,我根据自己的经验,总结出上面的七个步骤:梳理业务流程、垂直切分、指标体系梳理、实体关系调研、维度梳理、数仓分层以及物理模型建立。每个步骤不说理论,直接放工具、模板和案例。

01业务流程

1.找到公司核心业务流程,找到谁,在什么环节,做什么关键动作,得到什么结果。


2梳理每个业务节点的客户及关注重点,找到数据在哪。



02分域/主题

3.决定数仓的建设方式,快速交活,就用自下而上的建设。要全面支撑,就顶层规划,分步实施,交活稍微慢点。


4.同时按照业务领域划分主题域。主题域的划分方法有:按业务流划分(推荐)、按需求分、按职责分、按产品功能分等。



03指标体系

5.指标的意义在于统一语言,统一口径。所以指标的定义必须有严格的标准。否则如无根之水。

指标可分为原子指标、派生指标和衍生指标,其含义及命名规则举例如下:


6.依照指标体系建设标准,开始梳理指标体系。整个体系同样要以业务为核心进行梳理。同时梳理每个业务过程所需的维度。维度就是你观察这个业务的角度,指标就是衡量这个业务结果 坏的量化结果。


请注意,此时不能被现有数据局限。如果分析出这个业务过程应该有这个指标,但是没有数据,请标注出来,提出收集数据的需求。


04实体关系

7.每个业务动作都会有数据产生。我们将能够获取到的数据,提取实体,绘制ER图,便于之后的维度建模。




8.同样以业务过程为起点向下梳理,此时的核心是业务表。把每张表中涉及的维度、指标都整理出来。


05维度整理

9.维度标准化是将各个业务系统中相同的维度进行统一的过程。其字段名称、代码、名字都可能不一样,我们需要完全掌握,并标准化。

维度的标准尽可能参照国家标准、行业标准。例如地区可以参照国家行政区域代码。

另外,有些维度存在层级,如区域的省、市、县。绝大多数业务系统中的级联就是多层级维度。


06数仓分层

10.数据仓库一般分为4层,名字可能会不一样,但是其目的和建设方法基本一致:

每一层采用的建模方法都不一样,其核心是逐层解耦。越到底层,越接近业务发生的记录,越到上层,越接近业务目标。


11.依托数仓分层的设计理论,根据实际业务场景,我们就可以梳理出整体的数据流向图。这张图会很清晰的告诉所有人,数据从那来,到哪里去,最终提供什么样的服务。


07模型建立

12.此时才真正进入纯代码阶段。数仓、ETL工具选型;ETL流程开发;cube的建立;任务调度,设定更新方式、更新频率;每日查看日志、监控etl执行情况等等。

前面梳理清楚了,ETL会变的非常清晰


私货

1、数仓建设必须从业务中来,到业务中去;

2、数仓分层的目的是业务解耦;

3、无论哪种建模方式,其核心是业务实体;

4、按领域建设能快速交活,后遗症将会在2年之后爆发,且难以解决;

5、数仓建设应该把75%的时间投入到设计阶段,如果不是,那你就惨了;

6、数仓本身也可以迭代。

7、传统数仓并没有一种叫做“宽表模型”的模型,大数据时代新诞生的名词,因为很多大数据组件join代价极高。实际上是范式退化。

相关实践学习
AnalyticDB MySQL海量数据秒级分析体验
快速上手AnalyticDB MySQL,玩转SQL开发等功能!本教程介绍如何在AnalyticDB MySQL中,一键加载内置数据集,并基于自动生成的查询脚本,运行复杂查询语句,秒级生成查询结果。
阿里云云原生数据仓库AnalyticDB MySQL版 使用教程
云原生数据仓库AnalyticDB MySQL版是一种支持高并发低延时查询的新一代云原生数据仓库,高度兼容MySQL协议以及SQL:92、SQL:99、SQL:2003标准,可以对海量数据进行即时的多维分析透视和业务探索,快速构建企业云上数据仓库。 了解产品 https://www.aliyun.com/product/ApsaraDB/ads
相关文章
|
4月前
|
存储 数据采集 数据可视化
|
6月前
|
存储 关系型数据库 OLAP
【数据仓库与联机分析处理】数据仓库
【数据仓库与联机分析处理】数据仓库
55 2
|
分布式计算 运维 Hadoop
数据仓库搭建
数据仓库搭建
186 0
|
消息中间件 数据采集 JSON
数据仓库实战 2
数据仓库实战 2
135 0
|
SQL 数据库 HIVE
数据仓库实战 3(一)
数据仓库实战 3(一)
|
数据库
|
关系型数据库 MySQL 开发工具
|
SQL 数据采集 存储
数据仓库实战 1
数据仓库实战 1
198 0
|
SQL 存储 分布式计算
「数据仓库」怎么选择现代数据仓库?
「数据仓库」怎么选择现代数据仓库?