九、数据仓库详细介绍(元数据)

news2024/11/20 4:41:39

元数据的文章,网上已经有很多了,元数据相关概念有限所以重复度很高。

我这里只是做个概念汇集,争取给大家介绍的全面一点。

1. 元数据定义

元数据(Meta-data)是描述数据的数据(The data about data),更准确点应该叫 The information abut data。如何理解这句话?就是描述信息、实体、系统的数据。

举几个例子

  • 175,大家有概念吗?如果我说这是一个男孩儿的身高大家是不是就懂了。如果我再加一个他才 14 岁信息量是不是更大了?因此:数据+元数据(描述数据的数据)=信息。

  • 遥控器,上边一堆按键如果没有文字说明大概率是没人会用的。我们只有通过按键上的标记+使用说明书这些遥控器的元数据,才能够很快的了解其功能并学会使用。

  • 数据库,每个数据库里都会有一堆的字典表,里边存储了数据库、表、字段、索引、视图、函数、存储过程、存储位置,也会有记录许多日志比如每一次的查询日志、数据库各种运行日志等。这些数据字典和数据库运行日志就是一个数据库的元数据,我们通过查询元数据就能了解到数据库里存储了哪些数据、数据库的查询性能、负载、健康状况等全方位的数据库信息。

数据不会自己管理自己,需要通过元数据去管理他们。

2. 元数据分类

行业内通常会把元数据分为四类,但我习惯把操作元数据归为技术元数据,所以事实上是分为三类。接下来我们逐个讲解下,力争把数据仓库涉及到的元数据全都涵盖进去。

2.1 业务元数据

广义来讲,所有用于描述业务各种逻辑的信息都可称为 Business Metadata。

这包括但不仅仅限于如下信息:

  • 商业术语:Business Glossary, 包括名词和详细定义。

  • 术语分类:Taxonomies,对于上述的商业术语的逻辑归类,可构成 Glossary Tree。

  • 业务规则:Business Rule。

  • 业务流程:Business Process,包括Activity, Input, Output, Supplier, Consumer, 等等。

业务元数据,在实际业务中,需要不断的进行维护且与业务方进行沟通确认。但这类数据很难在元数据管理系统中体现。

2.2 技术元数据

广义来讲,所有在计算机系统中的各类数据的描述均可称为 Technology Metadata

这里我把操作类的比如各种日志也都归为技术元数据了,大家按个人理解也可以单列出来。

数据仓库中的技术元数据一般包含以下五类:

  • 数据源元数据

  • 存储元数据

  • 计算元数据

  • 调度元数据

  • 数据应用元数据

2.2.1 数据源元数据

  • 数据源的 IP、端口、数据库类型。

  • 数据获取的方式,是抽取还是推送,是文件还是直连数据。

  • 数据存储的结构,关系表还是 Json,以及各列的定义。

2.2.2 存储元数据

包含物理模型和物理存储:

  • 表/列的详细信息(名称、备注、存储位置等),这是最最重要的数据资产。

  • 存储资源总量、使用情况、增长情况、空闲等。

  • 如果有视图、索引、存储过程、函数的也要算进来。

  • 主题域划分、总线矩阵、词根库等等。

  • 表、视图等的使用情况。

还有两种数据,虽然不属于元数据(规范点讲应该算作主数据),但对于数仓至关重要:

编码映射数据、统一维度数据

2.2.3 计算元数据

包含 ETL 配置和计算资源:

  • ETL 任务流定义,多少条任务流、用途是啥、所属层级。

  • ETL 流程依赖,这个至关重要,后续的数据流转和数据血缘都依赖于此。

  • 计算资源总量、使用情况、空闲等。

  • 代码部署位置,比如服务器位置、文件目录结构等。

  • 运行日志,记录了 ETL 运行的关键信息。

2.2.4 调度元数据

  • 调度时机、调度日志、以及可能会有的任务依赖。

  • 调度系统本身部署和运行所需其它信息。

2.2.5 应用元数据

  • 应用列表、最晚出数时间、BI 模型和物理模型的映射关系等等。

  • 指标/标签定义(名称、口径),当然这个归到业务元数据也能说的通。

  • 各个应用的使用情况(谁什么时候使用了什么)。

2.4 管理元数据

人员管理领域相关,包括管理流程、人员组织、角色职责、各种规范等。

数据管理活动相关,比如数据质量管理、数据资产管理、安全管理、成本治理等等过程中新产生的元数据。

3. 元数据价值

数据仓库的元数据,是对数据仓库所有环节(数据源、集成同步、存储、计算、数据管理、数据应用等等)沉淀下来的数据的描述性信息和过程日志信息,我们梳理数据资产、查找和使用数据、评估数据质量、了解数仓健康状况、成本治理等等都会首先从数仓元数据入手。

帮助数据平台了解自己本身的情况

例如我有哪些数据、我存储的数据有多大、如何找到我所需要的数据、我的数据何时产出等信息。完善的元数据是我们快速掌握数仓系统的关键。

自动化监控告警

我们根据对元数据的分析,可以自动化的获取数仓运行状况、评估模型和 ETL 代码的规范度、识别源数据变更、监控存储和计算资源的负载等等。

高效精准沟通

一方面,元数据中的管理元数据会记录不同用户、角色、部门的数据权限。如果有数据需要进行通知,则可以快速查询系统进行群发邮件等方式进行沟通,从而避免了造成沟通环节的缺人和多人情况发生。

另一方面,在与产品沟通业务或是与研发沟通接口时,可以根据业务元数据,确认彼此沟通的指标、维度含义。从而在根源上避免交流的歧义。进而提高沟通效率。

快速分析变更影响

因元数据被集中维护并管理引用关系,当发生变更时,可以通过元数据管理系统以实时分析出其所影响的业务功能、应用系统、涉及人员、是否涉及监管等影响信息。

4. 元数据应用

4.1 影响分析

在开发中,我们经常会遇到以下问题:

如果我要改动某个表或 ETL任务会造成怎样的影响?如若我要调整某个任务流的调度时间又会造成怎样的影响?

如果没有元数据,那我们可能需要遍历所有的脚本和数据才能得到想要的答案;而如果有成熟的元数据管理,那我们就可以直接得到答案节省大量时间。

4.2 血缘分析

血缘分析是一种技术手段,用于对数据处理过程的全面追踪,从而找到某个数据对象为起点的所有相关元数据对象以及这些元数据对象之间的关系。元数据对象之间的关系特指表示这些元数据对象的数据流输入输出关系。

在元数据管理系统成型后,我们便可以通过血缘分析来对数据仓库中的数据健康、数据分布、集中度、数据热度等进行分析。

4.3 数据地图

可以对数仓内的数据有一个宏观整体的认识:总项目数、总表数、占用存储量、存储趋势图、项目占用存储 Top、表占用存储 Top、热门表等等。

可以检索查找我们需要的数据:查找表结构表描述、查找表血缘、查找表权限、查找表的使用情况。

什么是数据地图、血缘分析和数据资产?

4.4 自动化监控告警

我们可以通过对各种元数据的分析,比如数据源元数据、ETL 运行日志、数据质量稽核日志、模型设计代码开发规范规范等,去自动识别问题,然后第一时间触发告警,以便尽早的解决问题。

数据仓库详细介绍(七.监控告警)

4.5 数据质量管理

数据质量管理依托数仓元数据,同时也会产生新的元数据。具体内容,我们在下一篇的“数仓数据质量下篇”再详细展开。

数据仓库详细介绍(九.数据质量)理论与经验

5. 项目制场景下的元数据管理

元数据管理,我们不必拘泥于形式,结合生产实际够用即可。

另外,上文中的元数据分类,个人感觉实际生产中并不会刻意参考,我们通常会根据数仓建设的流程去归类,不同环节产生不同的元数据。

实际上做项目的场景,甲方关注最多的是最终的数据应用以及交付时候的文档是否完备。甲方都不关心乙方更不会去专门梳理元数据了。所以元数据通常都是分散的,甚至很多都是文档,元数据管理主要依靠数仓规范,依靠领导的监督,挺难的。

源数据分析阶段,我们会产出数据源元数据,记录数据源有哪几个、数据如何访问如何采集、采集的内容有哪些、同步加载策略和时机是什么等等。元数据存储介质是文档。

需求分析阶段,我们会产生最终应用相关的元数据,比如多少张报表、每张报表有多少维度多少指标、报表的展现形式、筛选条件、排序规则、指标口径等等。元数据存储介质是文档。

模型设计落地阶段,我们产生物理模型元数据。元数据存储介质是模型设计文档,或者数据库的元数据。

ETL 设计开发阶段,我们产生 ETL 映射文档、ETL 流程依赖、数据血缘元数据。元数据存储介质是 ETL 设计文档。

上线运行阶段,我们还会产生任务调度、任务运行日志、存储空间使用情况、数据质量校验等元数据。元数据存储介质是日志文件或者数据库或者调度系统元数据。

6. 规范化的元数据管理

时过境迁,随着互联网时代的普及,大多数看重数据的公司都会组建自己的数据,市面上做数据的公司也大多是 Saas 模式,就算还用私有化的方式部署也都会有成熟的数据采集、存储、展现工具,附带的也会有数据治理工具、数据资产管理工具等等。

既然有了这么多完善的工具了,那么元数据管理自然而然的也会规范很多,接下来我们逐个阐述。

6.1 元数据生产

成熟的数仓应该会有完善的开发、检查、调度、数据管理等工具,元数据的生产也应该是通过工具沉淀,而不能像项目制那种只能依靠管理手段强制落文档了。

工具的好处,除了自动记录元数据外,还有规则校验的功能这在很大程度上降低了出错的概率。

6.1.1 建模工具

我们可以有一个系统,用来做模型设计,提交的时候会做校验(表字段命名是否符合规范是否存在于词根库、是否有备注、表的一些属性所属主题域所属分层等是否已指定)

如果没有这个系统的话,那么就需要有个程序定期检测数据存储的元数据,发现问题及时上报解决,确保元数据生产环节的准确、完整、合规。

6.1.2 指标/标签系统

首先会有个相对稳定的分类体系,所有指标或标签必须先在该系统注册并且挂靠到已有的分类体系下。然后定义好必要的属性,比如中英文名称、计算口径等等。

指标体系的属性模板

标签体系的属性参考

6.1.3 数据开发工具

数据开发工具,也可以是个 ETL 工具或者 shell 脚本+调度系统。

我们需要实现如下功能:数据计算、运行日志记录、参数传递、代码格式化和规范性校验、任务依赖配置。

数据计算的代码通常会是 SQL 语句,该工具记录下来的信息,就是完整的 ETL 元数据,另外我们可以通过解析 SQL 自动生成数据血缘。

6.1.4 调度配置工具

数据开发完成后,我们需要将任务流装载到调度工具里,调度工具会记录调度元数据,同时调度任务执行日志也可以当作 ETL 运行日志。

6.1.5 数据质量工具

我们通过数据质量工具,配置稽核校验规则,对关键数据进行卡点校验,而这些校验程序运行日志和运行结果都会成为数据质量元数据。

具体的数据质量工具设计思路,我会在下一篇做介绍。

6.2 元数据采集

元数据采集,就是定期将 6.1 提到的元数据生产工具产生的各种元数据搜集汇总起来,为下一步的管理和应用做准备。

如果没有元数据生产工具,就只能人肉录入了,但数据质量很难保证。

6.3 元数据管理

元数据管理的目的,一个是检查元数据生产环节的数据质量发现遗漏或者错误及时纠正,另一个就是对元数据做进一步分析转化,以便监控数据仓库整体的运转情况,同时为各种元数据应用提供数据支撑。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/562548.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

怎么提升品牌知名度,小红书母婴赛道分析

小红书平台自创立之初,便以母婴类内容为特色。今天我们来分享下,怎么提升品牌知名度,小红书母婴赛道分析。 一、妈妈用户仍是主流 我们都知道,小红书平台是一个女性用户为主的平台。根据去年的平台用户调查,可以发现&a…

PID控制逻辑基本介绍

PID控制逻辑基本介绍 1. 源由2. PID基本框图3. PID公式变换4. PID参数释义4.1 比例因子Kp4.2 比例积分Ki4.3 比例微分Kd4.4 Kp/Ki关系4.5 Kp/Kd关系 5. 总结6. 附录6.1 了解 PID 控制,第 1 部分:什么是 PID 控制?6.2 Anti-windup for PID con…

【pytorch损失函数(6)】Focal loss, for dense object detection再分析

之前翻译了这篇论文,但是理解还不深。今天借着研究rotation的计划,回顾这篇文章。 论文的主要贡献 Focal loss主要是为了解决目标检测中正负样本比例严重失衡的问题。该损失函数降低了大量简单负样本在训练中所占的权重,也可理解为一种困难…

Segment Anything专题论文和代码汇总

文章目录 2023Scaling-up Remote Sensing Segmentation Dataset with Segment Anything ModelPersonalize Segment Anything Model with One ShotSegment Anything in Medical ImagesMatcher: Segment Anything with One Shot Using All-Purpose Feature MatchingCustomized Se…

【Python】mmSegmentation语义分割框架教程(1.x版本)

文章目录 0.引言1. 数据集设置1.1. dataset implementation py1.2. dataset config py 2.模型设置3.训练 0.引言 \qquad 本文是mmSegmentation语义分割框架教程(0.x版本)的1.x版本。不熟悉mmsegmentation是什么的读者可参考原文的引言部分,熟…

sqlmap命令大全(附详细扫描流程)

一、sqlmap命令大全。 -u 指定目标URL (可以是http协议也可以是https协议)-d 连接数据库--dbs 列出所有的数据库--current-db 列出当前数据库--tables 列出当前的表--columns 列出当前的列-D 选择使用哪个数据库-T 选择使用哪个表-C 选择使用哪个列--dump 获取字段中的数据--…

程序猿想考一个PMP,可以吗,怎么考呢?

我从新考纲考完下来,3A通过了考试,最开始也被折磨过一段时间,但是后面还是找到了方法,也算有点经验,给大家分享一下吧。 程序猿应该是考PMP里面人最多的,毕竟有一个30大坎,大部分人还是考虑转型…

rk3588 大小核启动

setenv ipaddr 10.12.1.205;setenv serverip 10.12.1.200;tftp 0x800000 bsprk3588_owl_ai_box_plus_v10_x64.bin;go 0x800000 rk3588 启动 4 核无问题,启动 8 核出现乱码以及死机问题。 分析代码,对 psci 接口进行更新,启动 4 核&#xf…

【服务器数据恢复】EXT3文件系统下raid数据恢复案例

服务器数据恢复环境: 华为OceanStor某型号存储,10块硬盘组成raid6磁盘阵列。 上层操作系统采用EXT3文件系统,划分2个lun。 服务器故障&分析: 在巡检中发现存储中的raid不可用,管理员进行了重新分配并初始化raid的操…

VS2019 error LNK2001: 无法解析的外部符号 解决方法

今天编译一个项目的时候,用debug模式编译时可以通过并生成exe的。 换成release模式,直接报链接错误,如下: 1>libeay32.lib(pem_lib.obj) : error LNK2019: 无法解析的外部符号 ___iob_func,函数 _PEM_def_callback…

微信小程序| AIGC之动手实现ChatGPT法律顾问小程序

一、需求背景 在资本退去后,现如今的互联网行情很差劲,很多创新业务都不得不砍除。再加上国内互联网时代进入到了一个增量犹显疲态,增量杀红了眼!阶段,各大互联网公司均有一种断臂求生的态势!各位互联网同…

hadoop3.2.4集成flink 1.17.0

前言 flink安装部署有三种方式 local:单机模式,尽量不使用 standalone: flink自带集群,资源管理由flink集群管理,开发环境测试使用,不需要hadoop集群 flink on yarn: 把资源管理交给yarn实现,计算机资源统一由Haoop…

PCIe 载板设计资料原理图:382-基于FMC+的XCVU3P高性能 PCIe 载板

基于FMC的XCVU3P高性能 PCIe 载板 一、板卡概述 板卡主控芯片采用Xilinx UltraScale16 nm VU3P芯片(XCVU3P-2FFVC1517I)。板载 2 组 64bit 的DDR4 SDRAM,支持 IOX16或者 JTAG 口,支持PCIe X 16 ReV3.0以及 FMC 扩展接口。…

Hadoop基础学习---6、MapReduce框架原理

1、MapReduce框架原理 1.1 InputFormat数据输入 1.1.1 切片与MapTask并行度决定机制 1、问题引出 MapTask的并行度决定Map阶段的任务处理并发度,进而影响到整个job的处理速度。 2、MapTask并行度决定机制 数据块:Block是HDFS物理上吧数据分成一块一块。…

3D CAD模型的体素化

你有没有搜索过如何将 Cad 模型转换为 python 就绪的 numpy 数组,但没有得到任何明确的答案? 我也是。 经过长时间的研究并尝试了很多软件和 python 库,我终于能够将 3D STEP 文件转换为 3 维 numpy 数组。 如果你想做同样的事情或只是想知道…

线性表的总结

逻辑结构 逻辑结构 具有相同特性的数据元素的有限序列 特性 有穷性:一个线性表的元素个数是有限的 一致性:一个线性表的所有元素的性质相同,也就是具有相同的数据类型 序列性:所有元素之间的相对…

OJ练习第114题——T 秒后青蛙的位置

T 秒后青蛙的位置 力扣链接:1377. T 秒后青蛙的位置 题目描述 给你一棵由 n 个顶点组成的无向树,顶点编号从 1 到 n。青蛙从 顶点 1 开始起跳。规则如下: 在一秒内,青蛙从它所在的当前顶点跳到另一个 未访问 过的顶点&#xf…

十、数据仓库详细介绍(数据质量)流程与工具

上篇我们主要介绍了以下三部分内容。 第一部分,介绍了五种常见的数据管理知识体系,数据质量在所有的知识体系中都有非常重要的地位,数据应用体现数据价值,数据质量为应用提供支撑。 第二部分,我们介绍了数据质量评判的…

程序优化 - ABAP并行处理

SAP的并行方式有很多种: SPTA框架,参考debug可以看出这个核心也是异步bgRFC 异步RFC,使用CALL FUNCTION “XXXXXX” STARTING NEW TASK XXXX CALLING XXXX ON END OF TASK BANK_PP_JOBCTRL框架 拆分成多个后台JOB执行 这里只说SPTA框架…

【高危】Linux Kernel OverlayFS 权限提升漏洞(POC公开)

漏洞描述 Linux Kernel OverlayFS 是 Linux 内核提供的一种文件系统,允许将多个文件系统合并为一个单一的虚拟文件系统。 在 Linux Kernel OverlayFS 受影响版本中,当用户将具备特权的文件从 nosuid 的挂载点复制到另一个挂载点时,未授权的…