本文根据数据管理中的数据架构、数据建模和设计的具体要求,结合SAP的模型设计及元数据管理工具SAP Powerdesigner(以下简称PD),探讨如何做好企业的数据管理。
一、什么是数据管理?
数据是以文本、数字、图像、声音和视频等格式对事实进行表现。数据是企业的资产,也是企业的生产要素。根据国际数据管理协会(DAMA International)的DMBOK 2定义,数据管理是规划、控制和提供数据及信息资产的一组业务职能,包括开发、执行和监督有关数据计划、政策、方案、项目、流程和程序,从而控制、保护、交付和提高数据和信息资产价值。如何有效管理数据,挖掘数据的价值,进行数字化决策,最终完成从传统企业向数字化企业的转型,是当前数据管理重要使命。
DMBOK 2认为数据管理是以数据治理贯穿的十大功能模块,具体如下图所示。其中的数据架构、数据建模和设计可以看作是数据管理的起点。
图1 DMBOK2数据管理知识体系
1、数据架构及数据建模和设计
数据架构是用于定义数据需求,指导对数据资产的整合和控制,以使数据投资与业务战略相匹配的一套构建规范。数据架构整合企业的数据、并标准化,数据架构管理的职能是定义数据资产管理蓝图。数据建模和设计阶段是对数据模型的精确表示和传递。其输出物包括模型实体的所有属性和关系。
2、数据架构及数据建模和设计常见问题
数据架构及数据建模和设计虽然很重要,但是在现实中常常被忽视,流于形式。对于软件开发方来说,小作坊模式的模型管理,最常见的工具反而是Excel,无团队协作、安全管控,也无法保证设计文档的及时更新。对最终软件及数据使用用户来说,架构文档仅仅成为项目验收的官样文字,文不对题,束之高阁。具体表现在以下几个方面:
- 模型架构在系统建设的各个阶段无法实现不同角色之间的信息同步;
- 模型设计过程中无法做到版本分支和合并,以及权限管理;
- 系统验收需要的设计文档,耗费大量人力物力;
- 系统上线后,系统运维人员无法获取有用的模型设计文档;
- 系统使用过程中,因系统的升级导致模型和真实系统无法一一对应;
- 企业只有运行元数据,欠缺架构设计元数据管理。
这些现状导致数据管理无法正常进行,数据管理基于“无本之木、无源之水”,通过数据管理实现数据价值也就成了一句空话。
3、数据架构框架
架构框架是架构的架构,是对架构的思考和理解,确定从哪些层面和方面去设定架构,常见流行的架构框架例如Zachman(Zachman Framework),也是DMBOK 2推荐的企业数据架构框架之一。
Zachman框架是一种逻辑结构,它旨为信息技术企业提供一种可以理解的信息表述。它可以对企业信息按照要求分类和从不同角度进行表示。Zachman框架的创始人John Zachman早在1987年就提出了这种思想,全称为企业架构和企业信息系统结构架构(Zachman Framework for Enterprise Architecture and Information Systems Architecture)。
PD支持由Zachman演化而来的美国联邦政府的标准架构FEAF(Federal Enterprise Architecture Framework)框架。下图是利用PD构建FEAF框架矩阵视图的例子:
图2 FEAF框架矩阵视图
PD的FEAF框架矩阵,正是根据FEAF第四级(Level IV)来定义的。它以一个二维的表格来作为框架的结构。其中,行是关注的视角(Perspective),比如所有者视角(Owner’s View),设计者视角(Designer’s View)等等;列是关注的焦点(Focus),比如数据构架(What),应用构架(How)和技术构架(Where);而单元格就是在相应的视角和焦点下的模型或文档,比如在构建者和数据的角度,我们需要的是物理数据模型(Physical Data Model)。
二、SAP企业架构设计
1、企业架构设计
企业架构必须紧密结合业务,架构设计的原始驱动是业务需求。业务需求可以通过PD的需求模型来进行建模。在业务需求驱动下,PD将企业架构分为四个层次:
图3 需求驱动的企业架构设计
业务架构(Business Architecture):业务层面的建模,例如对业务流程、组织结构、人员、数据流、服务的设计,通过该层面的建模,可以标识出相关的业务流程以及其归属和使用关系。用户可以利用PD中的企业架构模型中的城市规划图(City Planning Diagram)、流程图(Process Map)、组织结构图(Organization Chart)、业务沟通图(Business Communication Diagram)、业务流程模型中的数据流图(Data Flow Diagram)、面向对象模型中的用例图(Use Case Diagram)来进行业务层的设计和实现。
数据架构(Data Architecture):数据层面的建模,例如对业务流程中使用的数据、实体以及它们之间关系、物理数据库中的表、视图、存储过程建模,其目的是标识出企业应用和业务流程中使用数据的相互关系。PD中用户可以利用概念数据模型(Conceptual Data Model)、逻辑数据模型(Logic Data Model)以及物理数据模型(Physical Data Model)、面向对象的类图(Class Diagram)、XML模型(XML Model)来完成数据层的设计和实现。
应用架构(Application Architecture):应用层面的建模,例如对企业中应用程序架构、组件结构、服务调用关系以及具体类、接口、实例关系建模。PD中企业架构模型中的应用程序架构图(Application Architecture Diagram)、服务导向图(Service Oriented Diagram)、面向对象模型中的行为类图(Behavioral Diagrams)以及可执行的业务流程(Business Process Executable Model)都可以在多个角度来支持企业应用的完整建模。
技术架构(Technology Architecture):技术层面的建模,用来标志应用程序、数据、服务和网络的的拓扑结构等。包括技术框架图(Technology Infrastructure Diagram)、网络部署图(Network Diagram)、UML模型中部署图(Deployment Diagram)可以完成该层面上的建模需求。
2、数据建模和设计
PD提供业界领先的数据架构设计能力,支持所有信息管理环境的模型设计和实现,通过独特的不同模型链接和同步技术,建立业务模型和数据模型的相关性,实现从业务视角看数据模型,和从数据视角看业务对象。
图4 数据架构设计
PD数据模型种类包括:1)需求模型;2)概念/逻辑/物理模型,3)XML模型,4)数据流动模型(支持ETL建模、复制服务器建模和远程数据同步建模)。使用独特的链接和同步技术实现模型之间的自动生成和影响分析。
PD在数据模型设计中支持非常多的数据平台,例如:Hadoop Hive,HP Neoview,IBM DB2 for z/OS,IBM DB2 for Common Server,Greenplum,JSON,Microsoft SQL Server,Netezza,Oracle,SAP Business Suite,SAP HANA,SAP Adaptive Server Enterprise,SAP IQ,SAP SQL Anywhere,Teradata,Informix SQL,Ingres,Interbase,Microsoft Access,MySQL,NonStop SQL,PostgreSQL,Red Brick Warehouse等。
对大数据建模也有很好的支持:Microsoft SQL Azure、Hadoop Hive 、Amazon Redshift、JSON、JSON NoSQL schema、SAP Big Data Services 等。
数据流动模型支持复制服务器和ETL工具。支持SAP Data Services的模型文件导入/导出及正向/反向工程。支持SAP Replication Server复制服务器和MobiLink 建模设计, 正向/反向工程。
图5 数据流动模型
也支持多维建模和Cube生成,从PDM中的多维模型直接生成SAP Business Object的语义层。
图6 多维模型
三、对数据管理的支持
那么,PD如何具体地支持DMBOK2中的数据架构及数据建模和设计呢?
1、项目全过程的架构设计
PD覆盖软件项目开发全过程的架构及模型设计,参考如下示意图,支持从需求到数据建模,业务建模和对象建模等建模工作;模型文件多种格式文档自动输出;其他建模工具模型文件的导入导出;模型与实体的正向/反向工程。
图7 项目全过程的架构设计
2、团队协作和知识库
PD通过知识库(Repository)存储架构模型信息,常见的关系数据库(RDBMS),例如SAP HANA、SAP ASE、Oracle等可以用做PD知识库,PD产品中包含用于知识库的SAP SQL Anywhere数据库。提供多种角色支持和全面权限控制,更高效方便的保证了团队内部的架构模型共享,数据一致性和完整性。知识库系统结构如下图所示。
图8 知识库系统结构
其功能包括:
1)模型管理——在知识库存储和版本化PD模型及其他类型文档。用户可以在客户端访问服务器端数据库。
2)安全——基于角色的安全机制,全面的权限管理。数据库管理员或团队负责人能控制用户对模型的访问和可视化区域。同时提供记录访问日志的审计功能。
3)跨模型的冲突分析——知识库能为跨模型的冲突分析提供并维护完整的存储和完整的模型间依赖关系。
4)软件资产管理——查找和重用跨越模型和项目的对象。知识库提供了版本管理功能,包含管理分支(Manage Branches),管理配置(Manage Configurations)和对象查询等功能来跟踪、记录项目变更和重用已有对象,以更好的支持团队成员高效率并发工作。
图9 知识库管理设置
3、单点登陆和二次开发
PD提供B/S架构的设计开发使用环境,其用户鉴权可以整合到客户的现有数据管理平台,实现统一鉴权单点登陆。同时提供基于JAVA、VB、C++、C#、PB等多种形式的程序开发接口,可以通过API程序开发模式嵌入到客户现有数据管理应用系统中。
4、PD对DMBOK2支持综述
在DMBOK 2中的数据架构和数据建模分属两个不同板块,而这两部分内容相关性比较大,简单说数据架构属于更高层面的抽象,其输出物包括:
1)企业数据模型:一般到概念模型层面,模型对象属性一般只包含关键属性,以及数据规范;
2)数据流设计:定义数据库、应用、平台和网络之间的需求和主蓝图;
3)数据价值链;
4)实施路线图。
其中PD的数据架构中的概念模型设计可以实现企业数据模型设计,后面几种输出物可以通过PD 的“应用程序架构图模型(Application Architecture Diagram)”和“企业架构模型(Enterprise Architecture Model)”完成。
DMBOK 2中数据建模和设计阶段的输出物包括概念数据模型、逻辑数据模型和物理数据模型。PD的数据建模中的概念模型设计、逻辑模型设计、物理模型设计与之完全一一映射。PD模型之间的链接和同步支持从需求到各种模型之间的影响分析。PD物理模型支持多个数据库平台的正向/反向工程。
PD的团队协作和知识库完全满足DMBOK 2对应的模型设计过程中的团队协作沟通和信息共享要求。二次开发能力,让PD嵌入到客户的数据管理系统中。通过PD的使用可以让数据管理更规范、系统和科学,为数据管理搭建坚实的基础。
作者信息
罗永强 SAP资深系统架构师
近20年的大数据、数据仓库、商业智能、数据集市、算法交易等系统建设经验,涉足电信、金融、政府、零售、制造、能源、化工等多个行业。曾任某国有大型商业银行分行级数据中心主任。当前专注于数据管理和平台产品,负责跨行业大数据、数据仓库、数据架构及数据治理解决方案设计、技术交流、业务咨询和招投标等工作。