《元数据管理在数据仓库的实践应用.docx》由会员分享,可在线阅读,更多相关《元数据管理在数据仓库的实践应用.docx(10页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、元数据管理在数据仓库的实践应用数仓宝贝库2021-11-16 18:22收录于合集#数据仓库19个点击上方蓝字关注我们I点击上方蓝字关注我们I数仓宝贝库,带你学数据!导读:元数据管理是企业数据治理的基础,是数据仓库的提升。作为一名数据人,首要 任务就是理解元数据管理。本篇文章将为大家梳理元数据的概念,介绍元数据管理在数据仓库的地位、场景及工具。总结元数据管理系统,是对一家公司数据更高的考验,想要搭建成功,至少满足以下条件:1. 整个公司数据的集成一一数据仓库的搭建整个公司业务流程的完善一一”业务中台“的实现2. 整个公司技术开发的统一一一“技术中台”的实现如果说数据仓库是数据的集成,那元数据管
2、理系统就是整个公司业务、技术、管理的统O从这个角度来看,元数据管理系统的定位是高于数据仓库的,这也是笔者虽然标题是数 据仓库的“元数据管理”,但花了大量篇幅在介绍元数据的原因。阿里所推崇的数据中台,理念上比拟接近数据仓库+元数据管理。但换个角度,任何业务、技术、数据的规范过程,短时间内都会对实际工作造成负面的 影响。不是所有人都能理解规范化所带来的优点,这里也需要一定权衡和反复的沟通。用ETL的开发举一个例子。 全部用SQL解决一一开发很快,结果也很少出错。但未来可能要读一个 上千行的SQLo全部用python解决一一开发、维护的代码门槛较高,且性能相比SQL 相差何止百倍。 python来调
3、度SQL 笔者较为推崇的方法,将处理逻辑变为python 的函数、类,但底层逻辑使用SQL实现。从而到达一个相对平衡的角度。因此,笔者认为,无论是数据人员还是IT开发、测试甚至产品工程业务,都应有元数 据的概念,记录有价值的元数据,利己利人。如果最终决定进行元数据管理系统的建设, 也会节约大量时间。-END-什么是数据仓库的元数据管理1、什么是元数据?元数据(Metadata),又称中介数据、中继数据,为描述数据的数据(data about data)。 抽象的描述:一组用于描述数据的数据组,该数据组的一切信息都描述了该数据的某方 面特征,那么该数据组即可被称为元数据。举几个简单例子:如果一本
4、书是一个数据”,那么它的书名、封面、出版社、作者、总页码就是它 的元数据。如果一个电影是一个数据,那么它的总时长、制作人、总导演、演员列表就是 它的元数据。如果数据库中某个表是一个数据,那么它的列名、列类型、列长度、表注释就 是它的“元数据”。只要有一类事物,就可以定义它的“元数据”。大多数时候,元数据可以根据代表意 义的不同分为业务元数据和技术元数据。2、什么是数据仓库?数据仓库,由数据仓库之父比尔恩门(Bill Inmon)于1990年提出,主要功能仍是将 组织透过资讯系统之联机事务处理(OLTP)经年累月所累积的大量资料,透过数据仓库 理论所特有的资料储存架构,做有系统的分析整理,以利各
5、种分析方法如联机分析处理、 数据挖掘(Data Mining)之进行,并进而支持如决策支持系统(DSS)、主管资讯系统(日S)之创立,帮助决策者能快速有效的自大量资料中,分析出有价值的资讯,以利决 策拟定及快速回应外在环境变动,帮助建构商业智能(Bl) o3、什么是数据仓库的元数据管理?映射、传输规那么清洗工具转换规那么汇总规那么数据定义数据日效值数据仓库模型数据质状数据组织源数据内部数据外部数据源系统逻钳模型一 源系统物理模型 源/外部数据结构定义、音i句定义数据导出属性 映射、/相关人员 元数据管理员 元数据分析员 数据仓库用户前端工具查询工具报表工具OLAP工具数据挖掘,、抽取方法数仓中
6、的元数据,主要记录各主题的定义、不同层级间的映射关系、监控数据仓库的数 据状态及ETL的任务运行状态。一般会通过元数据资料库来统一地存储和管理元数据, 其主要目的是使数据仓库的设计、部署、操作和管理能达成协同和一致。元数据是数据仓库管理系统的重要组成局部,元数据管理是企业级数据仓库中的关键组 件,贯穿数据仓库构建的整个过程,直接影响着数据仓库的构建、使用和维护。为什么数据仓库要进行元数据管理1、建设数据仓库所必须数据仓库是由外部数据、业务数据以及文档资料通过某些ETL工具得到的,如果没有 一个明确、清晰的规那么,根本不可能实现这个过程。2、帮助快速理解数仓系统一方面,数据仓库本质上是一个部门甚
7、至一个公司的重要工程,开发时间冗长。中间不 可防止的会产生人员流动,如果没有清楚的元数据,那会对整个系统乃和整个工程造成 重大影响;另一方面,数据仓库做为整个部门、公司的分析数据出口,并不仅仅对数据人员服务。 DM层对业务人员,DIM对其他开发人员都是不可防止的。如果有清楚的元数据来说明 数仓系统,就会节约双方大量的沟通时间。3、高效精准沟通一方面,元数据中的管理元数据会记录不同用户、角色、部门的数据权限。如果有数据 需要进行通知,那么可以快速查询系统进行群发邮件等方式进行沟通,从而防止了造成沟 通环节的缺人和多人情况发生。另一方面,在与产品沟通业务或是与研发沟通接口时;可以根据业务元数据,确
8、认彼此 沟通的指标、维度含义。从而在根源上防止交流的歧义。进而提高沟通效率。4、保证数据质量理想的元数据做到了对数据仓库结构的描述,仓库模式试图,维,度量,层次结构,到 处数据库的定义,以及数据集市的位置和内容。因此,我们可以很确定的判断哪些数据是肯定准确无误的、哪些数据是可能有问题的、 哪些数据是肯定有问题的。简单的说就是每一个字段都应该有它的取值范围、业务定义等信息,元数据定义好了自 然就可以应用到数据质量检测、评估等方面,进而通过数据质量管理流程真正提高企业 的数据质量。5、降低数据系统建设本钱假如元数据建设完备,所以取得信息会更准确快捷,使数据系统建设不返工或少返工, 减少分析工作量,
9、加强各方的统一理解以及沟通效率,进而使开发本钱最小。6、快速分析变更影响因元数据被集中维护并管理引用关系,当发生变更时,可以通过元数据管理系统以实时 分析出其所影响的业务功能、应用系统、涉及人员、是否涉及监管等影响信息。7、为未来做好准备大数据、人工智能、数据湖、数据中台、商业智能等企业的战略级应用系统能够依赖良 好的元数据管理而发挥出其应有的效果。数据仓库中元数据的组成元数据贯穿整个数据仓库,根据情况可以分为三种:业务元数据、技术元数据和管理元 数据。业务元数据元数据知识库7T技术元数据1、业务元数据业务元数据主要描述“数据”背后的业务含义,从业务角度描述业务领域的相关概念、 关系一一包括业
10、务术语和业务规那么。主题定义:每段ETL、表背后的归属业务主题。业务描述:每段代码实现的具体业务逻辑。标准指标:类似于BI中的语义层、数仓中的一致性事实;将分析中的指标进行 规范化。标准维度:同标准指标,对分析的各维度定义实现规范化、标准化。业务元数据,在实际业务中,需要不断的进行维护且与业务方进行沟通确认。2、技术元数据指技术细节相关的概念、关系和规那么,包括对数据结构、数据处理方面的描述。以及数 据仓库、ETL、前端展现等技术细节的信息。数据仓库中的技术元数据一般包含以下4大系统:数据源元数据、ETL元数据、数据仓库元数据、BI元数据。(1)数据源元数据例如:数据源的IP、端口、数据库类型
11、;数据获取的方式;数据存 储的结构;原数据各列的定义及key指对应的值。(2) ETL元数据根据ETL目的的不同,可以分为两类:数据清洗元数据;数据处理元 数据。数据清洗元数据:数据清洗,主要目的是为了解决掉脏数据及规范数据格式。 因此此处元数据主要为:各表各列的“正确”数据规那么;默认数据类型的“正确”规那么。数据处理元数据:数据处理,例如常见的表输入表输出;非结构化数据结构化; 特殊字段的拆分等。源数据到数仓、数据集市层的各类规那么。比方内容、清理、数据刷 新规那么。(3)数据仓库元数据数据仓库结构的描述,包括仓库模式、视图、维、层次结构及数据集市的位置和内容; 业务系统、数据仓库和数据集
12、市的体系结构和模式等。(4) BI元数据汇总用的算法、包括各类度量和维度定义算法。数据粒度、主题领域、 聚集、汇总、预定义的查询与报告。3、管理元数据管理领域相关,包括管理流程、人员组织、角色职责等。也有很多观点建议将管理元数 据拆分融入业务元数据利技术元数据中。如何建设数据仓库元数据管理任何系统的元数据管理建设都是十分艰难的,数据仓库更是如此;但另一方面,这个建 设过程又是非常重要的。我们暂以CWM标准作为数据仓库的元数据标准参考,在实际 建设中进行借鉴,这样看起来更专业。CWM (CommonWarehouseMetamodel公共仓库元模型)是0MG组织在数 据仓库系统中定义了一套完整的
13、元模型体系结构,用于数据仓库构建和 应用的元数据建模。公共仓库元模型指定的接口,可用于启用交换仓库之 间元数据仓库和业务智能工具、仓库平台、应用的元数据建模和仓库元 数据存储在分布式异构环境CWM元模型由一系列子元模型构成。由于 CWM制定时间是2001年,且过于细节深入,因此笔者认为其更适合作 为开发参考而非开发标准。由于元数据包含极广,我们在建立元数据管理系统的时候,绝对不能盲目追求大而全、 一步到位,要坚持目标驱动的原那么,在实施的时候要采取增量式、渐进式的建设原那么。 具体的建设步骤如下:1. 在建设数据仓库系统的初期,只需确定源系统的元数据构成和数仓我们想要实现的元数据内容:比方,我
14、们只想通过元数据来管理数据仓库中数据的转换过程,以及 有关数据的抽取路线,以使数据仓库开发和使用人员明白仓库中数据的整个历史过程。2. 确定源系统和元数据构成后,先将源系统的元数据整理并记录,可以用文档记 录;也可以存入关系型数据库中。3. 随着数据仓库系统的建设,逐步将需要的元数据补充录入一一例如DM的语义层、ETL的同步规那么。4. 数据仓库建设完成后,对元数据进行结构化、标准化储存。总之,建立元数据管理系统一定要坚持关注标准,又不被标准所束缚的原那么,建立符合 自身目标的元数据管理系统。元数据的应用场景1影响分析在开发中,我们经常会遇到以下问题:如果我要改动某个表、ETL,会造成怎样的影
15、响?如果没有元数据,那我们可能需要遍历所有的脚本、数据。才能得到想要的答案;而如 果有成熟的元数据管理,那我们就可以直接得到答案,节省大量时间。2、血缘分析血缘分析是一种技术手段,用于对数据处理过程的全面追踪,从而找到某个数据对象为 起点的所有相关元数据对象以及这些元数据对象之间的关系。元数据对象之间的关系特 指表示这些元数据对象的数据流输入输出关系。在元数据管理系统成型后,我们便可以通过血缘分析来对数据仓库中的数据健康、数据 分布、集中度、数据热度等进行分析。血缘分析是data science非常重要的应用,未来笔者会单独展开介绍。3、ETL自动化管理在数仓中,很大一局部ETL都是枯燥重复的
16、步骤。例如源系统-ODS层的:表输入表输出。又比方ODS-DW: SQL输入一一数据清洗 数据处理一一表输出。以上的规那么其实就属于局部元数据。那理论上完全可以实现,写好固定脚本,然后通过前端选择一一或api接口。进而对 重复的ETL实现自动化管理,降低ETL开发的时间本钱。4、数据质量管理数据清洗的逻辑,简单的说可以分为不同的数据类型和指定的特殊处理列。我们只需指定不同数据类型的默认清洗规那么,和局部特殊列的特殊处理逻辑,即可实现 智能快捷的数据清洗。数据质量管理,属于 数据治理 与 元数据管理 交集,更偏向数据 治理方面。未来也会展开更详细介绍。5、数据平安管理在阿里推崇的数据中台中,一切
17、数据接口指标,都会从数据仓库中出口。因此理论上, 我们只需在此处的元数据中对管理元数据的权限进行配置,即可实现全公司的数据平安 管理。常见的元数据管理系统1、apache atlasApache Atlas是Apache基金会的孵化工程,是Hadoop生态圈的数据治理和元数据 框架。Atlas是一套核心基础治理服务的集合,有很好的伸缩性和可扩展性,能够满足 企业对Hadoop生态系统的多样性需求,并能和企业的数据生态系统集成。它为Hadoop 集群提供了包括数据分类、集中策略引擎、数据血缘、平安和生命周期管理在内的元数 据治理核心能力。AppsAdmin UIBusinessTaxonomyR
18、anger Tag Based PoliciesMetadata SourcesCoreIngest / ExportType SystemGraph Engine TitanMetadata Store Index Store但atlas的缺点是:只能对hadoop的元数据进行管理(虽然也是连的Mysql ),对 传统数据库的支持力度非常小;同时血缘分析也只支持特定的数据库。2、 wherehowsWherehows定位于元数据仓库,元数据存储于mysql中,它从不同的源系统中采集元数 据,并进行标准化和建模,从而作为元数据仓库完成血缘分析。由linkedin开源。支 持Docker部署。Web Ui优势: 支持元数据历史版本及比照分析。 一站式的元数据分析管理系统。劣势: 支持的源系统比拟少开源版本仅支持Azkaban调度任务的血缘分析。其他调度任务仅能获得元数据信息,而没有血缘信息。 血缘分析较粗,不支持列级血缘。如HDFS仅能显示数据文件之间的血缘。 WebUI仅提供查询能力,相关配置需要调用API接口。 缺乏用户、权限管理能力。这个工具最大的问题是开发不完善,准确的说,笔者还未看到有人安装成功过。3、其他元数据管理系统的建设,对整个公司都有着非常高的需求,因此其他系统会很难找。而 收费的例如informatica等产品,又很难拿到实际demo来测试。