大家好,很高兴在这里和大家探讨和分析元数据管理的技术和想法。本次分享的内容包括以下三部分:
首先,通过以下这张片子我们先看一下传统元数据管理都在管哪些内容。
由于元数据管理是随着数据仓库建设过程逐渐完善起来的,因此元数据管理主要集中在数据领域。例如数据结构、数据加工转换关系等。
元数据管理起源于传统数仓,逐渐扩大到大数据管理,再到服务管理,不断地突破传统管理范畴,实现广义元数据管理。
在这个过程中,稳定可扩展的管理架构是元数据实施的保障。
为了实现元数据管理目标,需要有以下几个关键步骤:
1、采集:第一步必须把所有的元数据信息纳进管理体系,保证有管理对象;
2、存储:采集进来后必须有合适的存储能力和策略,保证能够很好地应用;
3、管理和应用:要有很好的自身管理,同时又能方便地共享应用。
随着元数据管理范畴不断扩大,元数据来源、类型越来越多,如何保证元数据从采集、存储到应用等关键环节的稳定和扩展,是元数据管理关注的重点。
统一的标准和规范能很好地解决通用性和扩展性,由OMG提出的CWM(Common Warehouse Metamodel)规范为初期元数据管理提供了强大的理论基础。该规范提供了一个描述相关数据信息元数据的基础框架,并为各种元数据之间的通信和共享提供了一套切实可行的标准。
CWM规范为数据类元数据管理提供了理论基础,CWM(Common Warehouse Metamodel)规范基于UML(Unified Modeling Language)、MOF(Meta Object Facility)和XMI(XML Metadata Interchange)标准;这三个标准是OMG元数据库体系结构的核心。通过这三个标准实现了对元数据的定义(设计)、交换(交互)、存储、存取(操作)等,为元数据管理提供全面能力支持。
随着元数据管理范围的不断扩大,微服务、业务等也需要一套规范支撑。
MOF(Meta Object Facility,元对象设施)标准是一个模型驱动的分布式对象框架,是OMG关于元模型和元数据库的标准;MOF为构建模型和元模型提供了可扩展的框架,并提供了存取元数据的程序接口。
CWM(Common Warehouse Metamodel)规范基于MOF定义了数据相关的元数据,以及存储和操作规范。
微服务元数据管理也可以通过一套类似CWM的规范CMM(Common Microservices Metamodel)规范来实现微服务元数据管理。
基于MOF标准可以实现不同类型元数据规范,最终提供可扩展的数据采集、统一的元数据存储等元数据管理能力。
有了CWM、CMM等对数据、微服务整体过程的元模型做的规范,接下来就是把这些逻辑结构转换成实际的存储结构,实现元数据管理落地的第一步。
下面章节重点讲一下如何通过MOF规范实现元数据扩展存储。
元模型是定义元数据属性及关系的,一般来讲,元模型存储有两种方式。
1、将元模型UML转换成系统数据库表和属性,实现一对一管理存储,例如主键元模型存在主键记录表中、存储过程元模型存在存储过程记录表中等。
2、基于MOF元元模型实现元模型通用存储结构。
如图中所示以CWM模型中关系型包为例进行说明,方式一直接将元模型转化为库表,方式二按照元元模型的方式存储元模型;尽管第二种实现方式上复杂度会更高一些,但是在扩展性有绝对优势,是元数据管理实现优先选择方式。
选定了实现方式后,一般可以通过三步来实现元数据的管理:
第一步,将MOF元元模型落地为库表结构,支持元模型的扩展。
第二步,基于MOF设计元模型,例如将CWM(公共仓库元模型)/CMM内置到元模型列表中。
第三步,按照扩展后的元模型,采集元数据,纳入到元数据系统,从而驱动数据管理和服务。
元数据管理体系分三层,第一步M1(元数据)、M2(元模型)、M3(元元模型),元元模型位于最上层,也是最抽象的一层。
MOF元元模型中描述了包、元素、属性、命名空间和约束等对象及其关系。有了MOF作为底层元元模型来支持元数据管理,在M2层中可以定义和扩展元模型,例如CWM模型,将来还可以扩展到CMM模型、业务模型等,从而支持微服务元数据的管理。
在元数据管理三层管理架构的支持下,通常只需要做元模型定义和元数据采集,就能够实现不同元数据管理。
例如:将表与字段元数据要采集到元数据管理系统。
首先,元模型定义和描述元数据特征,包括类属性描述、关系的描述等;
然后,将元数据采集进来,存储到系统中。
把不同的元数据纳入进来,可以围绕这些元数据做的事情有哪些?
接下来,我们介绍一下元数据管理,特别是针对广义元数据管理方面的作用。
通过元数据管理我们能够做到:
1、实现多样、繁杂的元数据信息集中管理,为企业数据(服务)管理提供统一的视图,实现企业级数据(服务)资产管理,方便数据(服务)交互共享,同时为后续规划提供依据;
2、通过管理维护数据(服务)之间关系,实现数据(服务)自动关联分析,为问题定位、影响分析、上线加速等提供支撑;
3、建立数据(服务)标准,统一交换、存储、应用口径,减少共享壁垒,降低应用出错几率,提升质量。
………
通过这些基本能力,元数据在数据管理、微服务管理、业务管理等方面都能发挥很大的作用。
通过元数据管理,在数据方面能做到:1、数据标准化;2、数据开放;3、数据质量提升等;
在微服务方面,能提供以下支撑:1、服务开发、应用等标准化;2、服务应用监控,优化服务应用等;
未来,在业务方面也能通过元数据实现:业务流程分析、业务流程优化等能力。
下面我们用一个微服务的例子,举例说明一下元数据的作用:
通过这张图,我们可以看到,通过元数据可以清晰地了解微服务之间调用关系,通过这种管理我们可以:
1、明晰核心服务:重点资源跟踪维护,设计、开发时候在性能、稳定方面有更高要求;
2、调用关系优化:简化调用流程;服务优先级控制;
3、问题追踪:辅助问题定位等
…………
在普元数字化云平台中也规划了元数据服务,用元数据驱动微服务架构。
因此,元数据在微服务管理过程中作用是很明显的,而通过前面的分析,数据管理微服务从技术上完全可行,且很有必要性;相信随着微服务应用的不断发展,元数据管理地位必然越来越重。
以上是我分享的内容,希望和大家一起探讨,谢谢!
关于作者
吴艳伟
现任普元大数据产品线产品管理部总监,近十年IT工作经验。带领和参与了普元元数据、监控调度等数据产品的规划与研发。曾参与国开银行、中信银行、兴业银行卡中心等企业数据治理项目并主导完成了银联元数据管理项目、长城资产元数据建设和数据标准咨询项目。