01数据架构的起源
追根溯源是一个数据人的底层思维逻辑,因此,我们先说一说数据架构的起源(来源也行,一个意思)。
其实,我们现在IT行业经常说的软件架构、系统架构、XX架构的核心思想都是从建筑行业学来的,架构的英文单词“Architecture”其本身就是“建筑学、建筑物、结构构造”的意思。
在DAMA-DMBOK2中指出“数据架构”是“企业架构”的一个重要的组成部分。
而提到企业架构,它是起源于IBM公司系统杂志的一篇文章“A framework for information systems architecture”,这篇文章的作者John Zachman,是业内公认的企业架构理论的首创者,而他提出企业架构的理论就是我们熟知的“Zachman框架”!
简单理解,建筑学就是研究如何将一堆砖头、水泥、钢筋等建筑材料按照一定的结构搭建起来,形成满足人们生活、工作所需的各式建筑物。实际上,Zachman老先生的企业架构思想也是源自于“建筑学”,其本质的原理都是从现状向目标迁移的过程。因此,企业架构包含了当前架构、目标架构、迁移计划和IT路线图。
关于企业架构,除了Zachman框架之外,还有联邦企业架构框架(FEA)、国防部架构框架 (DODAF)、UDPM、UAF等,当然还有非常流行的——Togaf框架。每个企业架构框架的管理原则都涉及推动有关业务战略及其如何通过 IT 实现未来目标。通常,企业架构是由四个基本的相互关联的专业领域构成:
- 业务架构:定义了组织的业务战略、企业治理、组织机构和关键业务流程;
- 应用架构:为要部署的应用系统之间的交互以及它们与组织核心业务流程的关系提供蓝图,并为集成业务功能公开的服务接口;
- 数据架构:描述了组织的逻辑和物理数据资产以及相关数据管理资源的结构;
- 技术架构:描述了支持部署核心任务关键型应用程序所需的硬件、软件和网络基础设施;
02数据架构的演进
作为企业架构的组成,数据架构在不同时代,其形态也是不一样,它是随着信息技术的不断发展而向前演进的。
1. 单体应用架构时代
在信息化早期(上世纪80年代),企业信息化初步建设,信息系统以单体应用为主,例如:早期的财务软件、OA办公软件等。这个时期还没有数据管理的概念还在萌芽期,数据架构比较简单,主要就是数据模型、数据库设计,满足系统业务使用即可。
2. 数据仓库时代
随着信息系统使用,系统的数据也逐步积累起来。这时候,人们发现数据对企业是有价值的,但是割裂的系统导致了大量信息孤岛的产生,严重影响了企业对数据的利用。于是,一种面向主题的、集成的、用于数据分析的全新架构诞生了,它就是数据仓库。
与传统关系数据库不同,数据仓库系统的主要应用是OLAP(On-Line Analytical Processing),支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。这个阶段,数据架构不仅关注数据模型,还关注数据的分布和流向。
3. 大数据时代
大数据技术的兴起,让企业能够更加灵活高效地使用自己的数据,从数据中提取出更多重要的价值。与此同时,在大数据应用需求的驱动下,各类大数据架构也在不断发展和演进着,从批处理到流处理,从大集中到分布式,从批流一体到全量实时。
1)传统大数据架构
之所以叫传统大数据架构,是因为其解决的是数据仓库、BI应用的性能瓶颈问题,数据分析业务没有发生任何变化,主要是技术上的升级。传统大数据架构从结构上与数据仓库基本一致,还是分为三个部分:数据采集、数据处理、数据输出与展示。
▲图:传统大数据架构,来源:51CTO 栗子哥《从传统大数据架构到Lambda架构到Kappa架构》
相比传统数据仓库,传统大数据架构是基于hadoop的各类组件构建的,例如:数据存储用HDFS,数据采集用Sqoop、Flume、Kafka等,数据处理用MapReduce、Hive、Spark等,大数据技术的应用使得数据处理的性能得到了巨大提升。
2)Lambda架构
Lambda是大数据架构中举足轻重的一个大数据架构,Lambda的数据通道分为两条分支:实时流和离线。实时流依照流式架构,保障了其实时性,而离线则以批处理方式为主,保障了最终一致性。Lambda 架构总共由三层系统组成:批处理层(Batch Layer),速度处理层(Speed Layer),以及用于响应查询的服务层(Serving Layer)。
▲图:Lambda架构,来源:51CTO 栗子哥《从传统大数据架构到Lambda架构到Kappa架构》
Lambda 架构灵活,可以适用多种应用场景,但在也存在着一些不足,实时层和离线层模块冗余、维护复杂。
3)Kappa架构
Kappa架构在Lambda 的基础上进行了优化,将实时和流部分进行了合并,将数据通道以消息队列进行替代。Kappa架构解决了Lambda 架构需要维护两套分别跑在批处理和实时计算系统上面的代码的问题,全程用流系统处理全量数据。
▲图:Kappa架构,来源:51CTO 栗子哥《从传统大数据架构到Lambda架构到Kappa架构》
大数据时代,我们以上介绍的几种大数据架构,虽然名字中都含有“数据架构”四个字,但是和我们今天要讲的数据架构还不完全是一回事,大数据架构准确来说,应该叫大数据技术架构,而数据架构是用来承接业务的,技术是其实现手段。
技术架构会影响数据架构,但不论技术如何变迁,数据架构的本质并没有变,它始终都是数据模型、数据流向、数据分布和数据处理方式的综合体现。
03数据管理中的数据架构
关于数据架构的定义其实在业内并没有形成统一的认知,不同人对于数据架构的理解或许都是不同的,这一点我们其实可以从几个权威的数据管理体系中窥见一二。
1. DAMA-DMBOK2中的数据架构
在DAMA的数据管理知识体系指南(DMBOK2)中对数据架构的定义是:“识别企业的数据需求(无论数据结构如何),并设计和维护总蓝图以满足这些需求。使用总蓝图来指导数据集成、控制数据资产,并使数据投资与业务战略保持一致”。其主要包含两个部分:企业数据模型、数据流设计、数据价值链、实施路线图。
图:Dama数据架构,来源《DAMA数据管理知识体系指南2.0》
- 企业数据模型:企业数据模型是一个整体的、企业级的、独立实施的概念或逻辑数据模型,为企业提供通用的、一致的数据视图。企业数据模型包括数据实体(如业务概念),数据实体间的关系、关键业务规则和一些关键属性,它为所有数据和数据相关的项目奠定了基础。
- 数据流设计:定义数据库、应用、平台和网络(组件)之间的需求和主蓝图。这些数据流展示了数据在业务流程、不同存储位置、业务角色和技术组件间的流动。
- 数据价值链:DMBOK2中没有明确交代,笔者理解就是基于企业核心业务价值链的数据分布和流向,与数据流设计是一致的。
- 实施路线图:描述了架构3~5年的发展路径。考虑到实际情况和技术评估,路线图和业务需求共同将目标架构变为现实。企业架构实施路线图包括:高层次里程碑事件、所需资源、成本评估、业务能力工作流划分。
2. DCMM中的数据架构
在国标《数据管理能力成熟度评估模型(DCMM)》中,数据架构是DCMM的8大领域之一,它对数据架构的定义是:“通过组织数据模型定义数据需求,指导数据资产的分布控制和整合,部署数据的共享和应用环境,以及元数据管理的规范”。
在DCMM中,数据架构包含了数据模型、数据分布、数据集成与共享、元数据管理四个部分内容。
- 数据模型:使用结构化的语言将收集到的组织业务经营、管理和决策中使用的数据需求进行综合分析,按照模型设计规范将需求重新组织。数据模型包括:主题域模型、概念模型、逻辑模型和物理模型。
- 数据分布:针对组织级数据模型中的数据定义,明确数据在系统、组织和流程等方面的分布关系,定义数据类型,明确权威数据源,为数据相关工作提供参考和规范。
- 数据集成共享:建立组织内各应用系统、各部门之间的集成共享机制,通过组织内部数据集成共享相关制度、标准、技术等方面的管理,促进组织内部数据的互联互通。
- 元数据管理:主要是关于元数据的创建、存储、整合与控制等一整套流程的集合。
3. 华为的数据之道
在《华为数据之道》一书以及华为很多公开材料中,并没有明确给出数据架构,而是给出了信息架构的概念:“是指以结构化的方式描述在业务运作和管理决策中所需要的各类信息及其关系的一套整体组件规范。”
从定义上看,华为给出的信息架构和我们所说的数据架构是十分相识的,它包括了数据资产目录、数据标准、数据模型、数据分布四个部分。
▲图:信息架构,来源《华为数据治理之旅》
- 数据资产目录:通过分层结构的表达,实现对数据的分类和定义,建立数据模型的输入,形成完善的企业资产地图,也在一定程度上为企业数据治理、业务变革提供了指引。基于数据资产目录可以识别数据管理责任,解决数据问题争议,帮助企业更好地对业务变革进行规划设计,避免重复建设。
- 数据标准:数据标准定义公司层面需共同遵守的属性层数据含义和业务规则,是公司层面对某个数据的共同理解,这些理解一旦确定下来,就应作为企业层面的标准在企业内被共同遵守。
- 数据模型:是从数据视角对现实世界特征的模拟和抽象,根据业务需求抽取信息的主要特征,反映业务信息(对象)之间的关联关系。
- 数据分布:定义了数据产生的源头及在各流程和IT系统间的流动情况。
DAMA的DMBOK2、国标的DCMM、华为的数据之道是当下业界认可的三个主流据管理体系。可以看到,在这三个体系中关于数据架构的定义和内容都不相同。那么,您认为的数据架构应该是什么?或者说,您认为以上三个数据管理系统中,哪个数据架构更合理、更符合企业管数、用数的?
接下来,我们聊聊数据架构的底层逻辑!
04数据架构的底层逻辑
在遥远的原始社会,人类过着穴居野处的生活,为了适应自然,抵御猛兽,原始社会的人类会利用一些大树或者直接在地上用树枝树叶搭建一些简易的房子或栅栏。这个时候,人类建筑架构的思维模式已经开始萌芽。从原始部落的穴居野处、茅屋蓬荜,到如今的钢筋水泥、高楼林立,建筑架构的发展,本质是一部人类对居住环境的功能和性能不断追求的发展史。
相比建筑业,IT行业还是一个年轻的行业,它的一些理论体系都是从传统行业中引进而来的,包括我们今天聊的“架构”。架构思维的底层逻辑是将一个复杂的系统,从多个维度分解为多个架构元素,并定义这些元素之间的接口和交互关系、集成机制。
按照“熵增定律”,架构的本质就是就是对系统进行有序化重构,不断减少系统的“熵”,使系统不断进化。而这里,所谓的“熵”就是构成软件的相关架构元素:组件、结构、功能、流程、数据、接口等。
架构的本质是不断减少系统的“熵”,数据架构也一样。数据架构的底层逻辑具有一定的数据资源规划的内涵,是对企业数据进行结构化、有序化治理,让企业从数据孤岛走向数据共享,让企业数据能够更好的被管理、流动和使用,充分释放数据价值。
基于这一底层逻辑,我们就不难理解DAMA、DCMM和华为在数据架构定义和内容上,虽然有所差异,但本质是一样的。
在DAMA的数据管理体系中,数据架构最核心的是数据模型和数据流,而数据架构的设计、数据主价值链,数据架构实施都是围绕数据模型和数据流的梳理、设计和落地而展开的。
在DCMM体系中,数据架构除了数据模型和数据分布(数据流)还包含了数据集成共享和元数据管理,这两个也数据管理中比较大的领域,放在数据架构中略显突兀。但是,数据模型、数据分布是通过元数据落地的,而数据集成共享也是数据模型并且集成的过程也反映了一定的数据流向,因此DCMM的核心其实还是数据模型和数据流向。
在华为数据之道中,没有提数据架构而是信息架构。如果我们基于“DIKW模型”,在理解了“数据-信息-知识-智慧”的基础之上,其实更容易理解华为的信息架构。
在笔者看来,华为信息架构是对数据架构的进一步提炼,是在数据管理实践的视角给出的定义。如果说,其他两套体系的数据架构偏理论和技术,那华为给出的信息架构则偏实践和业务,但其基础的内容仍然没变,还是数据模型和数据分布。
在企业的数据项目实践中,数据架构连接了企业的数据管理现状和未来要实现的目标,笔者认为不必纠结哪套体系的数据架构理论更严谨、逻辑更合理,而要将重点放在数据目标的实现上,“能抓住老鼠的那只猫就是好猫!”