本章节主要讲业务驱动的数据架构设计
1 数据架构定义
数据架构在DAMA和TOGAF中有不同的定义,但是其核心都包括了三件事:数据架构的终极目标是支撑战略;数据架构的具体内容包括数据需求、数据设计和数据管理;数据设计的内容包括数据模型设计、数据存储设计、数据流程设计。
数据领域的发展主要包括从OLTP到BI,再到BigData,技术变成API的发展从最早的Spark Streaming (低级API)到后来的Strucured Streaming(高级API),数据架构从最早的数据架构发展到企业数据管理。我们的数据管理能力成熟度模型标准是GB36073。
2 TOGAF的数据架构方法
业务架构、数据架构、应用架构、技术架构在设计上都是9步,而且框架都一模一样。
1)确定设计那些视点
2)开发基线数据架构
3)开发目标数据架构
4)进行差距分析
5)识别能力增量
6)架构影响评估
7)干系人评审
8)敲定数据架构
9)创建架构文档。
3 数据架构的设计过程
数据架构的实际工作内容如下图:
a 数据需求
数据需求=需要管理那些数据类型,包括根据不同领域的业务需求,识别生产库、历史库、BI库;识别主数据对应的数据类型;识别结构化、非结构化的数据;
b 静态设计
静态设计=逻辑数据模型+物理存储与分布。静态设计主要包括四个方面:数据模型设计、数据生命周期设计、数据存储策略设计、数据分布策略设计。逻辑数据模型设计一般采用E-R图设计。
c 动态设计
动态设计=数据流+数据沿袭+数据接口。动态设计的核心是数据经过什么样的传递、路径、处理方法和通过什么样的交换接口。
d 数据管理
数据管理=数据标准+数据质量+数据安全。数据标准是数据质量的基础,没有数据标准就没有数据质量。数据安全可以认为是数据标准的一个分类标准。
4 数据架构设计实践
a数据建模
1) 业务主体、业务域【巨粒度】-发现数据域
在巨粒度分析过程中,通常采用UC矩阵作为主力工具。UC矩阵是IBM公开发布的业务系统规划(BSP)方法中的一种。UC矩阵分为横纵两个纬度。横坐标代表业务主体或者功能域,纵坐标代表巨粒度的数据域。
2)业务流程【粗粒度】-发现数据实体、属性、关系
粗粒度分析过程中,通常借助Archimate业务流程图识别图中每个流程片度相关的数据实体,最为方便。
3) 功能、特性【中粒度】-细化数据实体、属性、关系
业务流程说到底是围绕业务的,而功能特性却是“业务能力+系统能力”。
4)业务规则【细粒度】-细化数据实体、属性、关系
明确业务规则,并逐条确认数据模型是否支持他。
b 分析数据需求,识别数据类型
根据业务功能域识别结构化数据和非结构化数据。
c 数据数据模型,定义生命周期
数据表的设计至关重要。采用传统表和事实表、维度表堆后续的计算很有帮助,尽量设计成静态表。对大型的表进行拆解。
d 规划数据存储,设计数据分布
在数据规划中,将生产数据和历史数据分离,再将结构化数据与非结构化数据进行分离,将音频等文件单独保存,在接线记录数据库表里保存其地址。
e 数据流、数据沿袭、数据交换格式设计
数据应该经过什么样的流程或ETL方法进入到数据仓库,为后面的分析做基础。
5 总结
本章主要讲了数据架构的定义、组成以及数据架构基于TOGAF的设计过程,并用具体的案例对5个步骤的过程进行了演示。数据架构的需求来源于业务架构,但是最终的目标也是支撑业务实现,满足最初的规划需求。而整个过程的难点是数据模型识别的充分性、完整性以及数据库表规划的合理性。前者关系到数据能否支撑业务的全面开战,后者关系到业务活动能够及时响应以及后续的更新升级。比如一个字段很多的大表设计对于一个实时性响应很高的项目就是致命的。