编者按:本文是松子(李博源)的大数据平台发展史系列文章的第二篇(共四篇),本系列以独特的视角,比较了非互联网和互联网两个时代以及传统与非传统两个行业。是对数据平台发展的一个回忆,对非互联网、互联网,从数据平台的用户角度、数据架构演进、模型等进行了阐述。
前言,”数据模型“ 这个词只要是跟数据沾边就会出现的一个词,在数据库设计、数据仓库、数据挖掘上、业务里都存在,聚焦一下,这里提到的是数据平台中的”数据模型“。 这是一个非常的抽象词,个人也很难用简单语言把他描述出来,这一章也是整个系列中较为抽象的一章节,同时这个章节将会回答非互联网数据平台数据模型是什么?如何需要数据模型?如何简单的建设?
在“我所经历的大数据平台发展史 上篇 非互联网时代”曾经提到 Bill inmon 与 Ralph kilmball 两位大师的设计理念,对业务的数据按照某种规则进行有效组织并满足业务需求。
在构建过程中,有一个角色理解业务并探索分散在各系统间的数据,并通过某条业务主线把这些分散在各角落的数据串联并存储同时让业务使用,在设计时苦逼的地方除了考虑业务数据结构要素外,还得考虑可操作性、约束性(备注 约束性是完成数据质量提升的一个关键要素,未来新话题主题会讨论这些),这个既要顾业务、数据源、合理的整合的角色是数据模型设计师,又叫数据模型师。
非互联网时代的数据模型是一个高度智慧业务抽象结晶,数据模型是整个系统建设过程的导航图。
(点击放大图像)
平台中模型设计所关注的是企业分散在各角落数据、未知的商业模式与未知的分析报表,通过模型的步骤,理解业务并结合数据整合分析,建立数据模型为 Data cleaning 指定清洗规则、为源数据与目标提供 ETL mapping (备注:ETL 代指数据从不同源到数据平台的整个过程,ETL Mapping 可理解为 数据加工算法,给数码看的,互联网与非互联网此处差异性也较为明显,非互联网数据平台对 ETL 定义与架构较为复杂)支持、 理清数据与数据之间的关系。(备注:Data cleaning 是指的数据清洗 数据质量相关不管是在哪个行业,是最令人头痛的问题,分业务域、技术域的数据质量问题,需要通过事前盘点、事中监控、事后调养,有机会在阐述)。
大家来看一张较为严谨的数据模型关系图:
(点击放大图像)
- 数据模型是整个数据平台的数据建设过程的导航图。
- 有利于数据的整合。数据模型是整合各种数据源指导图,对现有业务与数据从逻辑层角度进行了全面描述,通过数据模型,可以建立业务系统与数据之间的映射与转换关系。排除数据描述的不一致性。如:同名异义、同物异名..。
- 减少多余冗余数据,因为了解数据之间的关系,以及数据的作用。在数据平台中根据需求采集那些用于分析的数据,而不需要那些纯粹用于操作的数据。
在面对企业复杂业务与成千上万的数据项进行设计时,没有哪个牛逼的人都记得住的,所以出现了按照某种层次规则去有组织并抽象与管理易用,由此诞生了概念模型、逻辑模型、物理模型 (备注 数据平台数据模型,而非数据挖掘的模型)。
数据模型在数据平台的数据仓库中是一个统称,严格上来讲分为概念模型、逻辑模型、物理模型。(备注:四类模型如何去详细构建文本不深讲,关于非互联网企业的数据模型网上非常多)
(点击放大图像)
在“我所经历的大数据平台发展史 上篇 非互联网时代“提到两位大师的架构与争论,进一步聚焦来说,争论点我的认为其实是在数据模型的支持上,Bill Inmon 的 EDW 的原则是准三范式的设计、Ralph kilmbal 是星型结构。
Bill Inmon 对 EDW 的定义是面向事物处理、面向数据管理,从数据的特征上需要坚持维护最细粒度的数据、维护最微观层次的数据关系、保存数据历史。所以在构建完毕的数据平台中可以从中映射并检查业务信息的完整性(同时也是养数据过程中的重要反馈点),这种方式还可以找出多个系统相关和重合的信息,减少多个系统之间数据的重复定义和不一致性,减小了应用集成的难度。
(点击放大图像)
(点击放大图像)
该建设方式的要点是首先建立各个数据源业务的实体关系、然后再根据保存的主子实体关系、存储性能做优化。
Ralph kilmball 对 DM(备注:数据集市,非挖掘模型)的定义是面向分析过程的 (Analytical Process oriented),因为这个模型对业务用户非常容易理解,同时为了查询也是做了专门的性能优化。所以星型、雪花模型很直观比较高性能为用户提供查询分析。
(点击放大图像)
该方式的建模首先确定用户需求问题与业务需求数据粒度,构建分析所需要的维度、与度量值形成星型模型;(备注 涉及的复杂维度、退化维度等不在这个讨论范围)。
数据模型的业务建模阶段、领域概念模型阶段、逻辑模型阶段、物理模型阶段是超级学术与复杂的话题,而且在模型领域根据特点又分主数据 (MDM)、CIF(企业级统一视图) 、通用模型 (IBM 的金融、保险行业通用模型、 Teradata 的 金融通用模型、 电信移动通用模型等),锁涉及到术语”扩展“、”扁平化“、”裁剪“等眼花缭乱的建模手法,数据模型不同层次 ODS、DWD
DWD、DW、ST 的分层目的不同导致模型设计方法又不同。相信业界有很多大牛能讲的清楚的,以后有机会再交流。
(点击放大图像)
(点击放大图像)
(点击放大图像)
(点击放大图像)
本文带大家回忆了历史非互联网的数据平台发展与核心模型特点,当然数据平台的发展不是一步到位的,是经过无数人的智慧、努力反复迭代而逐渐演进的。
非互联网企业的数据平台发展,每一代的平台架构中的结构都是及其复杂的,比如 ETL 架构、数据模型架构、BD 的架构、前端展现、元数据、数据质量等各方面,每一部分展开都是一个很深的话题,有机会再分享给大家。
下篇章将分享给大家互联网时代的数据平台,互联网的数据平台也就是在 07 年 -08 年左右开始迅猛发展的,在发展的初期也是从传统数据平台的第三代架构开始演进的,互联网产品发展特点是“糙、快、猛”,同时数据量的超快速膨胀所带来的技术变革,从数据仓库 -> 海量数据 -> 大数据膨胀必然原有的技术无法支撑高 IO 吞吐、密集型计算,从而发展了合适互联网大数据平台。
关于作者
松子(李博源),自由撰稿人,数据产品 & 数据分析总监。2000 年开始数据领域,从业传统制造业、银行、保险、第三方支付 & 互联网金融、在线旅行、移动互联网行业 ; 个人沉淀在大数据产品、大数据分析、数据模型领域;欢迎关注个人微信订阅号:songzi2016。
感谢杜小芳对本文的审校。
给 InfoQ 中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ,@丁晓昀),微信(微信号:InfoQChina)关注我们。