元数据宽泛地定义为“关于数据的数据”(即对存储数据的描述)。尽管这样的定义并非不正确或不准确,但当人们需要组织、搜索和管理元数据以支持驱动业务或组织操作的应用程序时,这种定义过于宽松和模糊。
1、元数据的分类
理论上,元数据分为四种:业务元数据、技术元数据、管理元数据、操作元数据。在实践中,我认为可以分为以下几种类型。
系统编目元数据
关系数据库系统会自动维护一种元数据,这种元数据通常被称为系统目录。系统目录是数据描述符,包括诸如关系表、列表、使用表等表。关系表包括数据库中每个关系的列名,而列表包括数据类型、长度、完整性约束(允许或不允许为空;唯一或不允许)等。使用表包括已编译代码何时无效并需要重新编译的信息。
关系元数据
关系元数据是指关于数据实体(即表)之间关系的信息。关系包括:一个表中的列与另一个表中的列之间的主键-外键关系;面向对象系统或面向对象数据库中类与其子类之间的泛化/专门化关系(即 IS-A关系);实体与其属性之间的聚合关系;面向对象系统或面向对象数据库中类与其子类之间的继承关系;以及任何其他特殊的语义关系,这意味着更新或删除依赖关系。
内容元数据
内容元数据是对存储在任意粒度中的数据内容的描述。内容数据可以是单个对象(对于文本文档而言)、表中的列或表。内容元数据可以像一个关键字那样简单,也可以像业务规则、计算税收或佣金的公式或指向整个文档的链接那样复杂。就创建、读取和更新而言,内容元数据是最劳动密集型的元数据类型之一。
数据血缘元数据
数据血缘元数据是关于存储数据的生命周期数据。它包括有关数据创建(何时、谁、为什么)、后续更新(何时、谁、为什么)、转换、版本控制、汇总、迁移和复制的信息。它还包括转换规则,以及迁移和复制的描述。正如内容元数据一样,数据血缘元数据也可以是任意的粒度。数据血缘元数据广义上说是关系元数据的一种形式,因为数据转换、迁移和复制意味着相同原始数据的不同表现之间存在依赖关系。例如,当在一个文档中发现错误的数据时,需要进行更改不只是该文件,而且所有其他文件,从该文件衍生。
技术元数据
技术元数据是关于存储数据的技术信息。它包括格式(例如:医生、动图、用于创建或更新数据的软件(包括发布号码)、用于访问数据的 API等。
使用元数据
使用元数据是对用户和应用程序如何使用数据以及为何目的使用数据的描述。它通常被称为“业务数据”,因为目标用户通常是业务分析师。
系统元数据
系统元数据是对整个系统环境的描述,包括硬件、操作系统、应用软件等。
进程元数据
流程元数据是应用程序操作的流程的描述,以及流程每个步骤的任何相关输出。
我注意到,尽管其他作者和公司将数据使用元数据、系统元数据和处理元数据作为合法类型的元数
据包括在内,但将它们作为元数据包括在内的理由相当薄弱。这些类型的元数据更准确地说是“数据”,而不是“元数据”。此外,尽管其他专家和公司倾向于将 SQL 代码、设计图等“数据”称为元数据,但我认为应该更准确地将这些称为“数据”。“合法”元数据是客户需要的元数据,以便理解存储数据的语义和血缘,并正确运行应用程序以支持业务需求。换句话说,没有必要将各种技术方案或产品说明书中定义非常广泛和模糊的所有“元数据”都视为合法的元数据。
2、元数据管理的三大难点
元数据管理存在三种类型的困难,即元数据的定义和管理、技术和标准。元数据定义和管理是关于定义、创建、更新、转换和迁移与用户目标相关和重要的所有类型的元数据。除了系统编目元数据和其他类型元数据的很小一部分之外,大多数元数据都需要频繁、及时和严格的手工数据采集和更新。许多组织没有人力资源或规程来识别、采集和管理全面的元数据。
元数据管理技术包括元数据设计工具,允许用户对所有数据源的元数据模式进行建模;元数据存储系统允许用户从各种数据源、搜索和查询中提取元数据与其他用户交换元数据等。
元数据标准不仅包括用于元数据建模和交换的元数据标准,还包括词汇表和知识本体。
正是这些困难阻碍了元数据管理技术的普遍采用。大多数元数据管理技术供应商声称(计划)采用了对象管理组织的元数据建模标准元对象工具(MOF)和公共仓库元模型(CWM),以及元数据导入和导出标准 XML 元数据交换(XMI)。
在词汇和知识本体方面,如果有合适的行业标准,则可以全部或部分采用该标准。在没有行业标准或行业标准过于繁琐或不适当的情况下,至少应界定和使用企业内部的“标准”。
此外,在记录元数据的采集、更新、转换、迁移、复制以及相关的转换规则和业务规则等方面,企业内部需要定义和遵循适当的过程。
3、元数据管理系统的功能与体系结构
第一代和第二代元数据管理系统没有提供管理元数据的适当设施,也没有标准。这些系统的主要问题之一是,所有元数据都集中存储,当数据源发生更改时,中央元数据必须手动更新。元数据管理的一个趋势是对分布式数据源的实时访问。这意味着全局元数据模型保存在中央存储库中,并根据需要从分布式数据源中提取元数据。这称为联合元数据存储库。从数据源中实时提取元数据是通过为该数据源设计的适配器执行的。然而,联合元数据存储库的性能可能会受到影响,因为某些类型的元数据(例如,数据血缘元数据、技术元数据、数据使用元数据、系统元数据、进程元数据)来自任何数据源,甚至可以从数据源中提取的元数据(例如,内容元数据、目录元数据、关系元数据)出于性能原因,通常应该放在中央存储库中。因此,在中央存储库中同时维护联合全局元数据和一些实际元数据的混合方法是理想的体系结构。
就元数据管理而言,目前市场上的元数据管理系统已经比第一代和第二代元数据系统更加强大。元数据管理系统中的基本功能模块应该包括一个有图形用户界面的元数据设计者/建模者查询管理器(包括查询制定、索引创建和管理工具)、元数据和查询结果浏览器,以及图形用户界面安全和访问控制(通过访问控制列表或组和以角色为基础的存取控制) 备份和恢复(元数据) 。适配器允许从各种现代企业应用程序中提取数据,如 ERP、CRM、SCM 和 ECM 系统,以及各种数据类型,如关系数据库、索引顺序文件、遗留层次数据库、消息中间件、HTML、XML、多媒体数据等。 支持Java、XML 和 web 服务中的应用程序开发。采用 XMI、MOF 和CWM 等标准。
通常,元数据管理系统的供应商提供自己的适配器和由第三方适配器供应商提供的适配器。此外,适配器的趋势是双向的,即元数据管理系统从数据源接收数据(和元数据),并将更新的数据推回到数据源。
除了上述“基本”设施之外,元数据管理系统确实需要提供影响分析、数据血缘分析以及支持术语和数据标准的功能。几乎没有元数据存储系统支持这些“高级”功能。
如前所述,大部分元数据只能手动创建或更新,这种元数据需要增加可通过适配器自动提取和更新到数据源的部分元数据。出于这个原因,元数据存储库倾向于强调元数据的可扩展性,即提供适应添加新类型元数据的工具。然而,这种重要的设施并不容易提供。原因是,随着新类型元数据的增加,必须以与现有类型元数据一致的方式兼顾与新类型元数据相关的数据血缘、基于语义关系的数据依赖、词汇和知识本体等考虑因素。
4 可能需要咨询服务的元数据管理问题
依赖于一个或多个管理大量复杂数据的复杂企业应用程序的企业总是需要管理元数据。鉴于当今的元数据管理技术、元数据管理标准的现状以及大部分元数据管理无法自动化这一事实,意味着企业不仅需要元数据存储系统,也需要咨询服务。以下是元数据管理的一些领域(或主题),在这些领域中,咨询服务需要补充元数据存储库系统。
确定与企业数据管理目标相关和重要的元数据(这将需要采访业务分析师和技术经理) ;
元数据设计和建模(使用特定的元数据存储系统)定义元数据词汇表(这应该分阶段完成;此外,这将需要访问业务分析师和技术经理);
定义元数据知识本体(这也应该分阶段完成;此外,这将需要访问业务分析师和技术经理);
适配器开发(使用元数据存储系统附带的适配器开发 SDK) ;
确定元数据和数据预取(到元数据存储库中)策略。