企业究竟该如何构建数据模型?

2020 年 9 月 25 日

企业究竟该如何构建数据模型?

模型没有对错之分,只有适合的业务场景之分。数据模型能够促进业务与技术进行有效沟通。只要基于数据进行决策及拓展业务边界,好的数据模型必不可少。那么,企业究竟该如何构建数据模型呢?

数据中台能解决什么问题?

我们用四个字总结:全、统、通、用。全:数据中台和数据仓库的区别,数据仓库是满足业务需求或业务主题的;而数据中台是一个大而全的概念,为企业提供战略性的数据中台服务。数据应收尽收,所有能沉淀到数据中台的数据都收集到数据中台,包括增量、全量、实时、离线的数据。

统:统一数据标准规范。从数据质量标准、安全标准、模型规范、开发规范统一起来形成数据资产。

通:打通人的身份 ID、商品 ID、媒介 ID,消除数据孤岛。

用:体现在数据服务,用起来会有流共享、批共享及其他共享。总结起来:「全」是基础;「统和通」是途径;「用」是最终目的,最高境界是数据驱动业务创新和变革。

数据中台 = 方法论 + 实施 + 工具

数据中台能落地的关键点:强大的数据中台理论体系支撑 + 大数据实施流程体系、业务团队能力 + 大数据建设产品工具集。

One Data 方法论

One Data = One Model + One ID + One Service

One Model:统一数据模型,规范指标、标签,消除二义性,将数据从成本中心变成利润中心。

One ID:实体 ID 的唯一性,数据打通后进行数据升维,将数据从孤立变为融通。

One Service:统一数据服务,数据从过去的复制到一次开发,多次复用。

数据模型选择思考

熟悉数据仓库的同学都了解两位大师,一位是数据仓库之父——Bill Inmon,他提倡的顶层设计是自顶向下的,采用三范式的设计,非常严谨可减少数据的冗余。

另一位是维度建模大师——Ralph Kimball,维度建模更简单,执行起来更容易上手。顶层设计思路是自底向上的,从业务出发,从概念模型到逻辑模型再到物理模型,提倡先有数据集市,各个小的数据集市可以组成数据仓库。

这里仅列举两种模型:星型模型与雪花模型。星型模型是维度建模中比较经典的模型,也是目前用的较普遍的模型,星型模型是所有维度表都直接连接到事实表上,整个图解就像星星一样。

雪花模型是对星型模型的扩展。通过三范式建模,数据冗余比较少,更加规范、严谨,更有利于保持数据的一致性。

通常情况下,为了让下游能更好理解业务,快速提供数据服务,我们会选择星型模型;而在维度信息变化非常频繁,或者数据存储成本非常高的情况下,我们可以采用雪花模型。归根到底,数据模型没有好坏之分,只有能否解决业务问题。

那泛零售企业该如何选择数据中台模型?

从顶层设计、建模理论、业务场景三个大方向考虑。

顶层设计:数据中台是大而全的概念,Inmon 大师自顶向下的设计思路兼顾业务全局,比较符合数据中台理论。

建模理论:主要以维度建模为核心,结合多种建模百花齐放。

业务场景:如泛零售行业最主要的是,“人货场”,从“人”:组织、客户;“货”:商品、服务;“场”: 渠道、门店、商场等;“行为”: 订单、营销、工单等考虑。OneModel图片

普遍情况下,一个大的集团可能有好多个大的业务板块,比如地产、金融、电商等。而一般的小公司业务比较单一的话就只分一个业务板块。

数据域是面向业务分析,将业务过程或者维度进行抽象的集合。

业务过程是指企业的业务活动事件,如下单、支付、退款都是业务过程。

维度设计是维度建模的灵魂,也是数据中台模型设计的基础,维度设计的核⼼是构建⼀致性维度。而粒度可以认为是维度的组合,如卖家和买家结合起来可以理解为两个维度,一个粒度。数据模型最佳实践

好的数据模型最终都为业务而生。

具体来说,就是把业务抽象化,提炼成数据模型,再通过数据解决业务问题。

数据建模过程中有哪些常见问题?

数据域划分:可理解,全局考虑,数量适中。

业务过程:是一个逻辑的概念,需与度量关联。

一致性维度:做维度表的时候,有的公司有自己的主数据系统,但有些公司没有自己的主数据系统,需要将数据合并,因此诞生了桥接表,用逻辑的维度表,底层是多张表拼凑而成,且维度表每天都在变化。

明细事实表:分为多事实、单事实、无事实的事实表,很多人会误解为事实表一定要有度量值,但不一定,有的是行为的操作数据,甚至维度表和事实表之间可以相互转换,只有在粒度一致的情形下,才能将多个的事实进行合并。

数仓分层:从 ODS-CDM-ADS。

了解维度和粒度之间的关系, 粒度是维度的组合。

数据模型过程中,有何设计心得?

数据不丢失,是最重要的一点。在 ODS 层的设计就需体现,要长期保留数据。

数据不重复,为保证数据治理的准确性,重复的数据需要提前剔除。

模型能共享,数据集市中的模型共享容易做到,数据集市是满足业务需求的,但是数据中台的模型共享,明细事实表和维度表都需要用到,但是业务会不断进行迭代和创新,所以也可能避免不了要从原始数据中取的可能。

空间换时间,为了能更大程度进行共享,可以做冗余的设计。

任务能重跑,保证后期的运维能力。

业务是爸爸,所有不考虑业务的数据模型都是耍流氓。即使数据模型设计得再好,若业务模型不认可,不满足业务的数据模型都是无效的。数据模型最终都是为业务服务的。不管是黑猫白猫,在一定的设计思想里满足之后都是可以进行创新的。

数据模型的前沿畅想

新方向 = 产品化 + 行业化 + 智能化

模型产品化

盘点即上云:若对数据进行认真盘点,收集足够多的元数据,把表结构、字段类型、数据库类型,只要把元数据盘点完后一键导入,并可以一键生成头部任务,因此,数据开发人员只需要解决异常情况即可。

设计即开发:有了模型的设计,维度表、事实表、指标定义后,底层的代码是自动实现的,不必再担心 SQL 的优化、性能调优。

资产即服务:所有的数据进行模型设计后,所有的表都可以进行数据资产化,有了资产即有服务。

模型行业化

每个行业有明显的特点,如泛零售行业对人货场的分析比较固定,因此建的模型固定的部分是可以通用的。

模型智能化

模型设计越来越简单,容易上手,模型物理层的优化越来越智能,模型和智能应用结合,赋能业务。

作者简介:

天启,奇点云高级数据架构专家 。原海尔集团数据架构师,原阿里巴巴政务团队数据架构师。

精通数据仓库建模理论及数据开发技术,具备零售、政务、医药、制造等多个领域数仓和数据中台建设经验及 PB 级数据仓库与数据中台建设经验。

2020 年 9 月 25 日 10:30 876
用户头像
刘燕 InfoQ记者

发布了 394 篇内容, 共 130.1 次阅读, 收获喜欢 621 次。

关注

评论

发布
暂无评论
发现更多内容

draw.io-取代visio的流程图绘制工具

Rice嵌入式开发技术分享

chrome vscode 写文章神器 draw.io

做PO难,难于上青天

刘华Kenneth

敏捷 产品经理 决策 PO

ARTS打卡第一周5.25-5.31

我笔盒呢

如何用CSS选择符(数字开头) 杀死队友

学习委员

JavaScript html css3 Web 前端鬼画符

时代在变,产品运营能力很重要

夜来妖

程序员人生 程序人生 产品经理 产品推荐 程序媛

B端产品经理养成记(1):业务场景

涛哥

产品经理 需求 产品开发

不吹不黑!GitHub 上帮助人们学习编码的 12 个资源,错过血亏...

JackTian

GitHub 程序员 编码 开源项目 学习资源

Kafka系列9:面试题是否有必要深入了解其背后的原理?我觉得应该刨根究底(上)

z小赵

大数据 kafka 实时计算

愚蠢写作术(1):怎么让你的标题被读者忽视

史方远

个人成长 写作

转行程序员浅谈进程间的socket通信

WB

Linux socket 转行程序员

钢铁侠马斯克之仰望星空

池建强

创业 马斯克 Space X

工作 vs 生活

shengjk1

RocketMQ - 如何实现事务消息

Java收录阁

RocketMQ

B端产品经理养成记(2):用户故事

涛哥

产品经理 需求 产品开发

【5月】本月读书学到了什么

Neco.W

创业 读书感悟 阅读量

RocketMQ - 高可用设计

Java收录阁

RocketMQ

写博客的那些事

shengjk1

工厂模式(四)泛型工厂之MyBatis Mapper代理

LSJ

Java 设计模式 泛型 工厂注册中心

游戏夜读 | 关于构图的困难

game1night

【ARTS打卡】Week01

Rex

学习笔记

John 易筋 ARTS打卡Week 02

John(易筋)

ARTS 打卡计划 ARTS活动 arts

【openlayers】在vue中使用ol

学习委员

JavaScript html Vue 地图 openlayers

戒掉手机吧

鼎玉谷

人生 手机 时间 浪费 控制

ARTS打卡Week 02

teoking

objective-c LeetCode WebRTC

Element-UI实战系列:Table+Pagination组件实现已选和全选功能

brave heart

Vue 前端 Element

ARTS week 2

刘昱

你会写测试用例吗

鱼贩

使用Kotlin语言初始化数组

mengxn

数组 kotlin 初始化

1 ARTS 2020-05-31

3.141516

LeetCode

ARTS(2020-05-25/2020-05-31)

天行者

正确阅读

MAC OS 下 HomeBrew 使用

耳东

macos brew homebrew

企业究竟该如何构建数据模型?-InfoQ