# 元数据管理
元数据最常见的定义是“关于数据的数据”。这个定义非常简单,但也容易引起误解。可以归类为元数据的信息范围很广,不仅包括技术和业务流程、数据规则和约束,还包括逻辑数据结构与物理数据结构等。它描述了数据本身(如数据库、数据元素、数据模型),数据表示的概念(如业务流程、应用系统、软件代码、技术基础设施),数据与概念之间的关系。
元数据可以帮助组织理解其自身的数据、系统和流程,同时帮助用户评估数据质量,对数据库与其他应用程序的管理来说是不可或缺的。它有助于处理、维护、集成、保护和治理其他数据。元数据就像大型图书馆中成千上万数据的索引目录卡片,没有目录卡片,读者将不知道如何寻找一本特定的书籍甚至一个特定的主题。
元数据可以确保组织识别私有或敏感数据,能够管理数据的生命周期,以实现自身利益,满足合规要求,减少风险敞口。如果没有可靠的元数据,组织就不知道它拥有什么数据、数据表示什么、数据来自何处、它在系统中如何流转,以及谁有权限访问它。
# 目标和原则
数据管理需要元数据,元数据本身也需要管理,可靠的管理元数据有助于:
- 通过提供上下文语境和执行数据质量检查提高数据的可信度。
- 通过扩展用途增加数据的价值。
- 通过识别冗余数据和流程提高运营效率。
- 防止使用过时或不正确的数据。
- 减少数据的研究时间。
- 改善数据使用者和IT专业人员之间的低效沟通。
- 创建准确的影响分析,从而降低项目失败的风险。
- 通过缩短系统开发生命周期事件,来缩短产品上市时间。
- 通过全面记录数据背景、历史和来源降低培训成本和员工流动的影响。
- 满足监管合规要求。
元数据管理不善容易产生如下问题:
- 产生大量冗余的数据和数据管理流程。
- 出现重复和冗余的数据字典、存储库和其他元数据存储方式。
- 出现不一致的数据元素定义和数据滥用风险。
- 元数据的不同版本之间相互矛盾且有冲突,降低了数据使用者的信心。
良好的元数据管理可以确保对数据资源的一致理解和更加高效的跨组织开发应用,元数据管理的目标包括:
- 记录和管理数据相关的业务术语和知识体系,以确保人们理解和使用数据内容的一致性。
- 收集和整合来自不同来源的元数据,以确保人们了解来自组织不同部门数据的相似与差异。
- 确保元数据的质量、一致性、及时性和安全。
- 提供标准途径,使元数据使用者(人员、系统和流程)可以访问元数据。
- 推广或强制使用技术元数据标准,以实现数据交换。
成功实施元数据解决方案应遵循以下指导原则:
- 组织承诺。确保组织对元数据管理的支持,将元数据管理作为企业战略中的一部分,将数据作为企业资产进行管理。
- 战略。制定元数据战略,考虑如何创建、维护、集成和访问元数据。战略能推动需求,这些需求应该评估、购买和安装元数据管理产品之前定义。元数据战略必须与业务优先级保持一致。
- 企业视角。从企业视角确保未来的可扩展性,但是要通过迭代和增量交付来实现,以带来价值。
- 潜移默化。宣导元数据的必要性和每种元数据的用途,潜移默化其价值将鼓励业务使用元数据,同时也未业务提供知识辅助。
- 访问。确保员工可以了解如何访问和使用元数据。
- 质量。认识到元数据通常是通过现有流程生成的,所以流程所有者应对元数据质量负责。
- 审计。制定、实施和审核元素标准,以简化元数据的集成和使用。
- 改进。创建反馈机制,以便数据使用者可以将错误的或过时的元数据反馈给元数据管理团队。
# 基本概念
# 元数据的类型
元数据通常分为三种类型:业务元数据、技术元数据和操作元数据。这些类别使人们能够理解属于元数据总体框架下的信息范围,以及元数据的产生过程。这些类别有助于了解定义元数据需求的过程。
业务元数据主要关注数据的内容和条件,另包括数据治理相关的详细信息。业务元数据包括主题域、概念、实体、属性的非技术名称和定义、属性的数据类型和其他特征,如范围描述、计算公式、算法和业务规则、有效的域值及其定义。业务元数据的示例包括:
- 数据集、表和字段的定义和描述。
- 业务规则、转换规则、计算公式和推导公式。
- 数据模型。
- 数据质量规则和检验结果。
- 数据的更新计划。
- 数据溯源和数据血缘。
- 数据标准。
- 有效约束值。
- 数据所有者、数据管理专员的联系信息。
- 已知的数据问题。
- 数据使用说明。
技术元数据提供有关数据的技术细节、存储数据的系统以及在系统内和系统之间数据流转过程的信息。技术元数据包括:
- 物理数据库表名和字段名。
- 字段属性。
- 数据库对象的属性。
- 访问权限。
- 数据的CRUD规则。
- 物理数据模型,包括数据表名、键和索引。
- 记录数据模型与实物资产之间的关系。
- ETL作业详细信息。
- 文件格式模式定义。
- 源到目标的映射规则文档。
- 数据血缘文档,包括上游和下游变更影响的消息。
- 程序和应用的名称和描述。
- 周期作业的调度计划和依赖。
- 恢复和备份规则。
- 数据访问的权限、组、角色。
操作元数据描述了处理和访问数据的细节,例如:
- 批处理程序的作业执行日志。
- 抽取历史和结果。
- 调度异常处理。
- 审计、平衡、控制度量的结果。
- 错误日志。
- 报表和查询的访问模式、频率和执行时间。
- 补丁和版本的维护计划和执行情况,以及当前的补丁级别。
- 备份、保留、创建日期、灾备恢复预案。
- 服务水平协议(SLA)要求和规定。
- 容量和使用模式。
- 数据归档、保留规则和相关归档文件。
- 清洗标准。
- 数据共享规则和协议。
- 技术人员的角色、职责和联系信息。
# 非结构化数据的元数据
从本质上来说,所有的数据都是有一定结构的,但并非所有的数据都是以行、列的形式在我们熟悉的关系型数据库中记录的。任何不在数据库或数据文件中的数据都被认为是非结构化数据。
相比结构化数据的元数据包括:描述元数据,如目录信息和同义关键字;结构元数据,如标签、字段结构、特定格式;管理元数据,如来源、更新计划、访问权限和导航信息;记录元数据,如保留策略;保存元数据,如存储、归档条件和保存规则。
# 元数据来源
从元数据的类型可以清楚的看出,元数据的来源各异。具体来源如下:
- 应用程序元数据存储库。元数据存储库指存储元数据的物理表,这些表通常内置在建模工具、BI工具和其他应用程序中。
- 业务术语表。业务术语表包含健壮的信息以及跟随时间变化的管理能力。业务术语表包含了不同角色的职责、业务术语定义、维护术语的人员及更新日期、数据血缘和权威数据来源。
- 数据字典。数据字典定义数据集的结构和内容,其可以用于管理数据模型中每个元素的名称、描述、结构、特征、存储要求、默认值、关系、唯一性和其他属性。
- 数据集成工具。数据集成工具提供了API,允许外部元数据存储库提取血缘关系信息和临时文件元数据,其还可以提供有关各种数据集成作业执行的元数据,包括上次成功运行、持续时间和作业状态。某些元数据存储库可以提供数据集成运行时的统计信息和元数据,并将其与数据元素一起公开。
- 数据库管理系统目录。数据库目录是元数据的重要来源,它描述了数据库的内容、信息大小、软件版本、部署状态、网络正常运行时间、基础架构正常运行时间、可用性,以及许多其他操作元数据属性。
- 字典和目录。数据字典包含有关术语、表和字段的详细信息,但是字典或目录包含有关组织内数据的系统、源和位置信息。元数据目录可以了解企业中的数据范围,无论是研究问题还是查找有关寻找新应用程序的信息。
- 建模工具。建模工具用于构建各种类型的数据模型:概念模型、逻辑模型和物理模型,这些工具生成与应用程序或系统模型设计相关的元数据,如主题域、逻辑实体、逻辑属性、实体和属性的关系、父类型和子类型、表、字段、索引、主键和外键、完整性约束以及模型中其他类型的属性。
- 服务注册。服务注册是从面向服务架构(SOA)角度管理和储存有关服务和服务终端的技术信息,如定义、接口、操作、输入和输出参数、制度、版本和示例场景。一些和服务相关的最重要的元数据包括服务版本、服务位置、数据中心、可用性、部署日期、服务端口、IP地址、统计端口、连接超时和连接重试超时。
# 元数据架构类型
与其他形式的数据一样,元数据也有生命周期,从概念上讲,所有元数据管理解决方案都包含与元数据生命周期相对应的架构层次:
- 元数据创建和采集。
- 元数据在一个或多个存储库中存储。
- 元数据集成。
- 元数据交付。
- 元数据使用。
- 元数据控制和管理。
可以采用不同的架构方法获取、存储、集成和维护元数据,供消费者访问元数据。
集中式元数据架构
集中式元数据架构由单一的元数据库组成,包含来自各种不同源的元数据副本。IT资源有限的组织或者那些追求尽可能实现自动化的组织,可能会选择避免使用此架构选项。在公共元数据存储库中寻求高度一致的组织,可以从集中式元数据架构中获益。
集中式存储库的优点有:
- 高可用,因为它独立于源系统。
- 快速的元数据检索,因为存储库和查询功能在一起。
- 不受第三方或商业系统特有属性影响。
- 抽取元数据时刻进行转换、自定义或使用其他源系统中的元数据进行补充,提高了元数据的质量。
集中式存储的缺点有:
- 必须使用复杂的流程确保元数据源头中的更改能够快速同步到存储库中。
- 维护集中式存储库的成本可能会比较高。
- 元数据的抽取可能需要自定义模块或中间件。
- 验证和维护自定义代码会增加对内部IT人员和软件供应商的要求。
分布式元数据架构
一个完全分布式的架构中维护了一个单一的接入点,元数据检索引擎通过实时从源系统检索数据来响应用户请求。分布式元数据架构没有持久化的存储库,在这种架构中,元数据管理环境维护必要的源系统目录和查找信息,以有效处理用户查询和搜索。可通过公共对象请求代理或类似的中间件协议访问这些源系统。
分布式元数据架构的优点包括:
- 元数据总是尽可能保持最新且有效,因为它是从其数据源中直接检索的。
- 查询是分布式的,没可能会提高响应和处理效率。
- 来自专有系统的元数据请求仅限于查询处理,不需要详细了解专有的数据结构,因此最大限度的减少了实施和维护所需的工作量。
- 自动化元数据查询处理的开发可能更简单,只需要很少的人工干预。
- 减少了批处理,没有元数据复制或同步过程。
分布式元数据架构的缺点包括:
- 无法支持用户定义或手动插入元数据项,因为没有存储库可以放置添加项。
- 需要通过统一的、标准化的展示方式呈现来自不同系统的元数据。
- 查询功能受源系统可用性影响。
- 元数据质量完全取决于源系统。
# 元数据管理方法
# 定义元数据战略
元数据战略描述组织应如何管理其自身元数据,以及元数据从当前状态到位了状态的实施线路。元数据战略应该为开发团队提供一个框架,以提升元数据的管理能力。元数据战略包括定义组织元数据架构蓝图和与战略目标匹配的实施步骤,步骤包括:
- 启动元数据战略计划。
- 组织关键利益相关方访谈。
- 评估现有元数据资源和信息架构。
- 开发未来的元数据架构。
- 制订分阶段的实施计划。
# 理解元数据需求
元数据需求的具体内容是:现有哪些元数据和哪种详细级别。例如,现有采集表和字段的物理名词和逻辑名称,元数据的内容广泛,业务和技术数据使用者都可以提出元数据需求。元数据综合解决方案由以下需求点组成:
- 更新频次。元数据属性和属性集更新的频率。
- 同步情况。数据源头变化后的更新时间。
- 历史信息。是否需要保留元数据的历史版本。
- 访问权限。通过特定的用户界面功能,谁可以访问元数据,如何访问。
- 存储结构。元数据如何通过建模来储存。
- 集成要求。元数据从不同的数据源的整合成都,整合的规则。
- 运维要求。更新元数据的处理过程和规则。
- 管理要求。管理元数据的角色和职责。
- 质量要求。元数据质量需求。
- 安全要求。一些元数据不应公开,因为会泄露某些高度保密数据的信息。
# 定义元数据架构
元数据管理系统必须具有不同数据源采集元数据的能力,设计架构时应确保可以扫描不同元数据源和定期地更新元数据存储库,系统必须支持手工更新元数据、请求元数据、查询元数据和被不同用户组查询。
组织根据具体的需求设计元数据架构,与设计数据仓库类似:
- 创建元模型。创建一个元数据存储库的数据模型,也叫元模型,是定义元数据战略和理解业务需求后的第一个设计步骤,可以根据需求假发不同基本的元模型,高级别的元模型描述系统之间的关系,低级别的元模型细化各个属性。
- 应用元数据标准。元数据解决方案应遵循在元数据战略中已定义的对内和对外的标准,数据治理活动应监督元数据的标准遵从情况,组织对内元数据标准包括命名规范、自定义属性、安全、可见性和处理过程文档,组织对外元数据标准包括数据交换格式和应用程序接口设计。
- 管理元数据存储。可以实施控制活动以管理元数据环境,这些活动包括控制活动(作业调度,加载统计分析,备份、恢复、归档、消除,配置修改和安全管理等),质量控制活动(质量保证和主流控制、缺失元数据报告、未更新元数据报告等),元数据管理活动(加载、探测、导入和标记数据资产,记录与源的映射和迁移关系等),培训活动(教育和培训用户和数据专员)
# 创建和维护元数据
元数据是通过一系列的过程创建的,并存储在组织不同的地方,为保证高质量的元数据,应该把元数据当做产品来进行管理。创建和维护元数据分为整合、分发和传递两个步骤。
整合元数据
元数据创建和存储应将提取的技术元数据与相关的业务、流程、管理元数据集成在一起,可以使用适配器、扫描仪、网桥应用程序提取元数据。可以使用一个非持久的元数据暂存区进行临时和备份文件的存储,暂存区应支持回滚和恢复处理,并提供临时审计跟踪信息,这样有助于存储库管理员追踪元数据来源或质量问题。
分发和传递元数据
元数据可以传递给数据消费者和需要处理元数据的应用或工具,传递机制包括:
- 元数据内部网站,提供浏览、搜索、查询功能。
- 报告及术语表。
- 数据仓库、数据集市和BI工具。
- 消息传送和事务。
- API及外部组织接口方案。