一、什么是元数据?
元数据(metadata)是关于数据的组织、数据域及其关系的信息,简言之,元数据就是描述数据的数据。概念总是生涩,对于没有IT背景的人来说比较抽象,不容易理解,下面举几个例子。
- 示例1:歌词中的元数据
有一首很多80后耳熟能详的歌曲叫《小芳》,歌词中有这么一句:“村里有个姑娘叫小芳,长得好看又善良。” 我们对这句歌词做一下分析。姓名:小芳;性别:姑娘(女);长相:好看;性格:善良;住址:村里。歌词里面,“小芳”是被描述的对象,而“姓名”“性别”“长相”“性格”“住址”就是描述“小芳”的元数据。 - 示例2:户口本中的元数据
户口本中除了有姓名、身份证号、出生日期、住址、民族等信息外,还有家庭关系,如夫妻关系、父子关系、兄弟关系等。这些信息就是描述一个人的元数据,通过户口本中的元数据,我们不仅能够了解一个人的基本信息,还能够了解其家庭关系。 - 示例3:图书馆中的元数据
图书馆都会用一个叫作“图书目录”的文件夹来管理藏书,图书目录包含图书名称、编号、作者、主题、简介、摆放位置等信息,用来帮助图书管理员管理和快速查找图书。元数据就如同图书馆的图书目录一样,能够帮助数据管理员管理数据。 - 示例4:元数据好比字典
字典包含一个字的注音、含义、组词、举例等基本信息及其字体结构、相关引用、出处等。另外,我们可以通过拼音或偏旁部首查到这个字。所有这些信息都是对这个字的详细描述,它们就是描述这个字的元数据。 - 示例5:元数据就像地图
地图是按一定比例运用线条、符号、颜色、文字注记等描绘显示地球表面的自然地理、行政区域、社会经济状况的图。通过地图,你能够找到自己所处的地理位置,了解你从哪里来,到哪里去,途中要路过哪些地方。元数据也具备这样的特点,它能够帮助企业了解自己有哪些数据,这些数据存放在哪里,数据的来源、去向及加工路径等。
元数据与数据的不同之处在于:元数据描述的不是特定的实例或记录,IT部门和业务部门都需要高质量的元数据来理解现有数据;元数据是比一般意义上的数据范畴更加广泛的数据,不仅表示数据的类型、名称、值等信息,还提供数据的上下文描述,比如数据的所属业务域、取值范围、数据间的关系、业务规则、数据来源等。
可以用5W1H模型来理解元数据,如下表所示:
知识类型 |
定义 |
技术示例 |
业务示例 |
Who |
谁 |
谁负责数据接口的开发? |
谁是财务域、业务域的负责人? |
What |
干什么或是什么 |
CRM和DW之间的数据血缘关系是什么? |
企业市场管理业务域的指标体系包含哪些指标? |
When |
什么时候 |
提取、转换和加载(ETL)作业什么时候运行? |
我正在分析的数据上次刷新是什么时候? |
Where |
在哪里 |
所有类型的销售订单都分布存储在哪个系统的哪些数据表当中? |
在哪里可以找到按营销活动显示我们的社交媒体分析的报告? |
How |
怎么样,怎么做 |
如何设置数据质量的管理规则? |
如何获得产品的竞争优势? |
Why |
为什么 |
出现数据质量问题的根本原因是什么? |
为什么老客户会不断流失? |
二、元数据的类型
按照不同应用领域或功能,元数据一般大致可为三类:业务元数据、技术元数据和操作元数据。
1. 业务元数据
业务元数据描述数据的业务含义、业务规则等。通过明确业务元数据,让人们更容易理解和使用业务元数据。元数据消除了数据二义性,让人们对数据有一致的认知,避免“自说自话”,进而为数据分析和应用提供支撑。
常见的业务元数据有:
- 业务定义、业务术语解释等;
- 业务指标名称、计算口径、衍生指标等;
- 业务规则引擎的规则、数据质量检测规则、数据挖掘算法等;
- 数据的安全或敏感级别等。
2. 技术元数据
技术元数据是对数据的结构化,方便计算机或数据库对数据进行识别、存储、传输和交换。技术元数据可以服务于开发人员,让开发人员更加明确数据的存储、结构,从而为应用开发和系统集成奠定基础。技术元数据也可服务于业务人员,通过元数据理清数据关系,让业务人员更快速地找到想要的数据,进而对数据的来源和去向进行分析,支持数据血缘追溯和影响分析。
常见的技术元数据有:
- 物理数据库表名称、列名称、字段长度、字段类型、约束信息、数据依赖关系等;
- 数据存储类型、位置、数据存储文件格式或数据压缩类型等;
- 字段级血缘关系、SQL脚本信息、ETL抽取加载转换信息、接口程序等;
- 调度依赖关系、进度和数据更新频率等。
3. 操作元数据
操作元数据描述数据的操作属性,包括管理部门、管理责任人等。明确管理属性有利于数据管理责任到部门和个人,是数据安全管理的基础。
常见的操作元数据有:
- 数据所有者、使用者等;
- 数据的访问方式、访问时间、访问限制等;
- 数据访问权限、组和角色等;
- 数据处理作业的结果、系统执行日志等;
- 数据备份、归档人、归档时间等。
三、元数据管理的目标
企业元数据管理的本质是有效利用企业数据资产,让数据发挥出尽可能大的价值。元数据管理可以帮助业务分析师、系统架构师、数据仓库工程师和软件开发工程师等相关干系人清楚地知道企业拥有什么数据,它们存储在哪里,如何抽取、清理、维护这些数据并指导用户使用。
以下元数据管理目标是企业的普遍诉求。
1. 建立指标解释体系
满足用户对业务和数据理解的需求,建立标准的企业内部知识传承的信息承载平台,建立业务分析知识库,实现知识共享。
能够回答以下问题:
- 企业有哪些数据?
- 什么是企业有效客户?有效客户和客户有何区别?
- 什么是产品的生命周期?
- 这个数据还叫什么名字?
- 数据仓库中的存储过程是谁写的?它用来干什么?现在还有在用吗?
典型应用:数据资源目录、业务术语表
2. 提高数据溯源能力
让用户能够清晰地了解数据仓库中数据流的来龙去脉、业务处理规则、转换情况等,提高数据的溯源能力,支持数据仓库的成长需求,降低因员工换岗造成的影响。
3. 数据质量稽核体系
通过非冗余、非重复的元数据信息提高数据完整性、准确性。元数据管理解决的问题是如何将业务系统中的数据分门别类地进行管理,建立报警、监控机制,出现故障时能及时发现问题,为数据仓库的数据质量监控提供基础素材。
四、元数据管理的技术
从技术层面来看,元数据管理的技术主要包括元数据采集、元数据管理、元数据应用和元数据接口等。
1. 元数据采集
在数据治理项目中,常见的元数据有数据源的元数据、数据加工处理过程的元数据、数据仓库或数据主题库的元数据、数据应用层的元数据、数据接口服务的元数据等。
元数据采集服务提供各类适配器来满足以上各类元数据的采集需求,并将元数据整合处理后统一存储于中央元数据仓库,实现元数据的统一管理。在这个过程中,数据采集适配器十分重要,元数据采集不仅要能够适配各种数据库、各类ETL、各类数据仓库和报表产品,还需要适配各类结构化或半结构化数据源。
1)关系型数据库
通过元数据适配器采集来自Oracle、DB2、SQL Server、MySQL、Teradata、Sybase等关系型数据库的库表结构、视图、存储过程等元数据。关系型数据库一般都提供了元数据的桥接器,例如Oracle的RDBMS,可实现元数据信息的快速读取。
2)NoSQL数据库
元数据采集工具应支持来自MongoDB、CouchDB、Redis、Neo4j、HBase等NoSQL数据库中的元数据,NoSQL数据库适配器多半利用了自身管理和查询Schema的能力。
3)数据仓库
对于主流的数据仓库,可以基于其内在的查询脚本,定制开发相应的适配器对其元数据进行采集。例如MPP数据库Greenplum,其核心元数据都存储在pg_database、pg_namespace、pg_class、pg_attribute、pg_proc这几张表中,通过SQL脚本就可以对其元数据进行采集。Hive表结构信息存储在外部数据库中,同时Hive提供类似show table、describe table之类的语法对其元数据信息进行查询。
当然,也可以利用专业的元数据采集工具来采集数据仓库系统的元数据。
4)云中的元数据
随着公有云的日趋成熟,通过提供安全的云连接,将云端企业元数据管理用作核心IT基础架构的扩展,尤其是在中小企业之间,已经成为现实。云端企业元数据管理通过各种上下文改善信息访问,并将实时元数据管理、机器学习模型、元数据API推进流数据管道,可以更好地管理企业数据资产。
5)其他元数据适配器
- 建模工具:PowerDesigner、ERwin、ER/Studio、EA等建模工具适配器。
- ETL工具:PowerCenter、DataStage、Kettle等ETL工具适配器。
- BI工具:Cognos、Power BI等前端工具中的二维报表元数据采集适配器。
- Excel适配器:采集Excel格式文件的元数据。
当然,目前市场上的主流元数据产品中还没有哪一个能做到“万能适配”,在实际应用过程中都需要进行或多或少的定制化开发。
2. 元数据管理
从技术的角度看,元数据管理一般包括元模型管理、元数据审核、元数据维护、元数据版本管理、元数据变更管理等功能。
1)元模型管理
元模型管理即基于元数据平台构建符合CWM规范的元数据仓库,实现元模型统一、集中化管理,提供元模型的查询、增加、修改、删除、元数据关系管理、权限设置等功能,支持概念模型、逻辑模型、物理模型的采集和管理,让用户直观地了解已有元模型的分类、统计、使用情况、变更追溯,以及每个元模型的生命周期管理。同时,支持应用开发的模型管理。
支持元模型的全生命周期管理。元模型生命周期中有三个状态,分别是:设计态、测试态和生产态。
- 设计态的元数据模型,通常由ERWin、PowerDesigner的等设计工具产生。
- 测试态的元数据模型,通常是关系型数据,如Oracle、DB2、MySQL、Teradata等;或非关系型数据库,如MongoDB、HBase、Hive、Hadoop等。
- 生产态的元数据模型,本质上与测试态元数据差异不大。
通过元数据平台对应用开发三种状态的统一管理和对比分析,能够有效降低元数据变更带来的风险,为下游ODS、DW的数据应用提供支撑。
2)元数据审核
元数据审核主要是审核采集到元数据仓库但还未正式发布到数据资源目录中的元数据。审核过程中支持对数据进行有效性验证并修复一些问题,例如缺乏语义描述、缺少字段、类型错误、编码缺失或不可识别的字符编码等。
3)元数据维护
元数据维护就是对信息对象的基本信息、属性、被依赖关系、依赖关系、组合关系等元数据的新增、修改、删除、查询、发布等操作,支持根据元数据字典创建数据目录,打印目录结构,根据目录发现、查找元数据,查看元数据的内容。元数据维护是最基本的元数据管理功能之一,技术人员和业务人员都会使用这个功能查看元数据的基本信息。
4)元数据版本管理
在元数据处于一个相对完整、稳定的时期,或者处于一个里程碑结束时期,可以对元数据定版以发布一个基线版本,以便日后对存异的或错误的元数据进行追溯、检查和恢复。
5)元数据变更管理
用户可以自行订阅元数据,当订阅的元数据发生变更时,系统将自动通知用户,用户可根据指引进一步在系统中查询到变更的具体内容及相关的影响分析。元数据管理平台提供元数据监控功能,一旦监控到元数据发生变更,就在第一时间通知用户。
3. 元数据应用
1)数据资产地图
按数据域对企业数据资源进行全面盘点和分类,并根据元数据字典自动生成企业数据资产的全景地图。该地图可以告诉你有哪些数据,在哪里可以找到这些数据,能用这些数据干什么。
数据资产地图支持以拓扑图的形式可视化展示各类元数据和数据处理过程,通过不同层次的图形展现粒度控制,满足业务上不同应用场景的图形查询和辅助分析需要:
▲图:数据资产地图示例
2)元数据血缘分析
元数据血缘分析会告诉你数据来自哪里,经过了哪些加工。其价值在于当发现数据问题时可以通过数据的血缘关系追根溯源,快速定位到问题数据的来源和加工过程,减少数据问题排查分析的时间和难度。
▲图:元数据血缘分析示例
3)元数据影响分析
元数据影响分析会告诉你数据去了哪里,经过了哪些加工。其价值在于当发现数据问题时可以通过数据的关联关系向下追踪,快速找到有哪些应用或数据库使用了这个数据,从而最大限度地减小数据问题带来的影响。这个功能常用于数据源的元数据变更对下游ETL、ODS、DW等应用的影响分析。
血缘分析是向上追溯,影响分析是向下追踪,这是这两个功能的区别。
4)元数据冷热度分析
元数据冷热度分析会告诉你哪些数据是企业常用数据,哪些数据属于僵死数据。其价值在于让数据活跃程度可视化,让企业中的业务人员、管理人员都能够清晰地看到数据的活跃程度,以便他们更好地驾驭数据,处置或激活僵死数据,从而为数据的自助式分析提供支撑。
5)元数据关联度分析
元数据关联度分析会告诉你数据与其他数据的关系,以及它们的关系是怎样建立的。关联度分析是从某一实体关联的其他实体及其参与的处理过程两个角度来查看具体数据的使用情况,形成一张实体和所参与处理过程的网络,如表与ETL程序、表与分析应用、表与其他表的关联情况等,从而进一步了解该实体的重要程度。
4. 元数据接口
建立元数据查询、访问的统一接口规范,以将企业核心元数据完整、准确地提取到元数据仓库中进行集中管理和统一共享。
元数据接口规范主要包括接口的编码方式、接口响应、接口协议、接口安全、连接方式、技术实现、调用方式、报文格式等方面的内容。
- 接口编码方式:接口编码方式必须在接口的头信息中注明,常用的接口编码方式有UTF-8、GBK、GB2312、ISO-8859-1。
- 接口响应格式:元数据接口常用的报文格式,XML或JSON
- 接口协议:REST/SOAP协议
- 连接方式:POST
- 接口安全:Token身份认证
- 接口地址:http://url/service?[query]
写在最后的话
数据已经成为增强企业竞争力的核心要素,有效地管理和使用数据成为企业的刚需。越来越多的企业使用元数据管理工具来管理云计算、物联网、数据湖中所产生的数据,以便更容易地理解、更快地查找和更有效地管理企业数据,以实现数据的价值。
本文摘编自《一本书讲透数据治理:战略、方法、工具与实践》,经出版方授权发布。关于元数据管理,书中还包括:元数据在数字化中的作用,数据管理的意义、元数据管理的方法,元数据管理的挑战、元数据管理的工具、元数据管理实操等等。