元数据的生死时速

2023-11-22 04:30
文章标签 数据 生死时速

本文主要是介绍元数据的生死时速,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

这是傅一平的第343篇原创

【与数据同行】已开通综合、数据仓库、数据分析、产品经理、数据治理及机器学习六大专业群,加微信号frank61822702 为好友后入群。新开招聘交流群,请关注【与数据同行】公众号,后台回复“招聘”后获得入群方法。

正文开始

公司经营分析会提到家庭市场的重要性,我就问负责家庭模型的同事:去年做的家庭结构标签用得怎么样?然后同事给我拉出了下面这张表。

通过元数据跟踪分析能力,我们已经能够知道任何一张模型表的应用情况,从测试查询、程序调用、营销投放等等,只有在这个基础上,我们才能有资格说自己的模型在生产中发挥了多少价值。

没有这些元数据,做数据的就会像瞎子一样,没有改进的方向,也难说功劳,当业务人员大谈数据价值的时候,我们这些创造者却连使用的情况都取不到,的确对不住自己做的这份工作。

但为了做到这一点,我们却跌跌撞撞在元数据领域摸爬滚打了10多年,期间经历了很多挫折和失败,今天就来谈一谈。

1、元数据的抽象概念

元数据是用来描述数据的数据,是对数据的解释,元数据相较于数据的重要性,就好比图书目录相较于图书一样重要。但元数据这个取名不太容易让人理解,当我第一次接触这个概念的时候,觉得这是个哲学名词。

元数据不亲民到什么程度呢?

即使到了现在,当我看到PPT中出现元数据这三个字的时候,仍然有种违和感,因为会觉得别人难以理解。如果你去问别人元数据的概念和内涵,能答上来的估计很少,相比微服务这种名字,元数据在取名上已经输了。

元数据这个数据领域炒作出来的一个名词,虽然现在已经拥有了庞大的体系,但宣传普及的工作做得并不是很好,现在公司领导对数据中台都有了很好的理解,但元数据还上不了台面。

我后来惊奇的发现,不属于事物本身的关于事物的任何描述,都可以叫做元数据,根本不需要去抽象出元数据这个名词。因此,在我们任何产品的设计中,都会尽量避免用元数据这个名词,跟领导汇报数据仓库的业务元数据就尽量用数据字典替代。

2、元数据产品的误区

一些厂家为了炒概念,卖完整的产品,硬生生的把每个系统其实都需要的元数据功能剥离出来单独形成一个元数据产品。事实上,元数据是系统正常运行的一个基础,它天生就在那里,没有元数据,你的系统就会不好用,无论是配置信息、业务解释、路径分析等等。

元数据本来是数据仓库的一部分,现在却作为产品被独立出来了,成了数据仓库的下游系统。大家都知道,数据仓库是IT系统的下游,IT系统是业务的下游,在数据仓库还在为生存奋斗的时候,作为下游的元数据产品就更加艰难了。

独立出来的元数据产品似乎变得更专业化了,出现了多如牛毛的功能,但这些功能往往水土不服,跟企业的生产系统无法很好兼容,而要改动这些标准化的产品又很难。

因此,只要企业购买了标准化的元数据产品,就会陷入了为元数据功能寻找应用场景的尴尬境地,比如为了做血统分析,你需要人工去解析脚本,将结果纳入元数据系统管理,然后有了吊炸天的各种炫酷的血统分析展示图,但然并卵。

我们并没有意识到也许当前阶段并不需要血统分析,也没有意识到为了建设和运营好这些元数据功能所要付出的代价,比如过去为了元数据产品的正常运行专门配置了人员去做元数据的采集、导入等工作,到底是谁服务谁呢?

各种数据管理理论都在强调元数据的重要性,助推了大家去买元数据产品以便一劳永逸的解决问题,但元数据跟现在炒作的数据中台一样,根本不是一个可以买到的东西。

3、我们关于元数据的探索

元数据产品当然也是有价值的,起码它启蒙了笔者这一代的数据仓库建设者,在那个时代就认识到元数据竟然还可以有这么多的功能和应用,但让元数据真正发挥出价值之前,我们经历了三次认知升级。

(1)商业化的元数据产品阶段

数据仓库在国内刚出现的时候,元数据属于高级功能,配套元数据产品是很高大上的事情,我们对其全盘接受并抱有极大的期望,影响分析、血统分析等高端功能让我们的数据运维人员眼睛一亮,认为自动化、智能化的元数据能够马上改变运维苦逼的现状。

遗憾的是,元数据产品要用起来首先要解决自身数据的采集问题,而我们的数据仓库在建设的时候就没考虑过自动化采集元数据,为了得到元数据我们甚至要去解析乱七八糟的数据仓库的代码脚本,然后把解析的结果数据导入到元数据产品。

为了让数据仓库吐出符合标准的元数据,我们花了巨大的代价去改造数据仓库体系,姑且不说解析覆盖率到底可以达到多少,等到你终于勉强的搞定并准备使用元数据功能时,发现原来那些高大上的可视化功能却是绣花枕头。

你难以想象依赖100张表、10个脚本的的某张结果表的血统图应该怎么去做溯源分析,密密麻麻的关系连接线就已经把运维搞晕了。

可怕的是,元数据产品本身还在不停的增加功能,而且要求客户为其新增的功能买单,但客户却还在为如何使用这些功能犯愁,这种拿来主义、贴膏药式的后向元数据产品模式,备受争议。

(2)元数据跟交付过程的融合

我们认识到商业化的元数据产品很难直接从原生数据仓库系统自动获得元数据,事后补录元数据的这种模式不仅效率低下,而且元数据质量难以保障,为了自动获得最完整的元数据,就需要改变数据仓库的交付模式,在数据生成过程中自动获得元数据,这就是现在大火的前向元数据管理模式。

元数据必须在数据的交付过程中同步生成,这样才能确保其完整性和一致性,从而为后续的元数据应用打下基础,因此,带有元数据采集能力的数据开发平台应运而生,这些开发平台会按照元数据管理的要求,针对建表、开发、调度做了大量强制约束,比如不许后台建表,隔离DDL、DML操作等等。

开发过程的标准化大幅降低了元数据的自动获取门槛,比如你不再需要去解析五花八门的脚本了,但标准化的代价就是要建立配套的机制和流程,大家要按规矩在一个可视化的界面里去配置代码,以SQL为核心的数据仓库开发模式基本能符合这种要求。

但这种元数据管理的代价不是每个企业能够承受的,比如你可能约束不了开发人员,因为你的开发可能外包给了各类合作伙伴,不能强制他们用你规定的技术栈,比如你打造不出符合要求的数据开发管理平台,导致配套的机制和流程难以在生产中落地,比如你的存量包袱太重,导致没有足够的资源去进行改变。

很多互联网公司数据管理能力强大,是以对技术栈绝对的掌控力为基础的。

我们能做到首先是运气,因为大数据让我们有一次从0到1的机会,其次是共识,有一批懂数据的人认为这种开发模式可以从根本上改变数据管理效率低下的局面,最后是坚持,我们的数据开发管理平台经历了无数次迭代才到了今天的水平,比如我们的项目经理变成了产品经理。

以上三个环节缺了哪一样,都会导致这种模式的失败。

(3)回归业务的本质

如果别人问我,为什么要实现元数据跟交付过程的融合,我说是为了让元数据采集更为方便,那为什么要让元数据采集更为方便呢?也许我就要想一想,采集这些元数据到底是为了什么?

答案是很明确的,因为数据仓库已经达到了一定规模,比如有几千的集群,几万的数据模型,这个时候数据间的调用关系变得非常复杂,导致运维核查问题效率低下,需要用这些元数据来快速定位问题。

如果你的企业的确到了这个阶段,有这方面的元数据诉求是很自然的,但元数据其实并不是必需的,要不要建需要企业回归业务本身去寻找答案。

如果企业的数据仓库才刚刚起步,干这个事情的优先级其实是比较低的。现实情况是很多企业数据仓库刚立项就想着采购元数据产品,找各种合作伙伴来筹划构建元数据系统,有那功夫其实还不如多配点建模、产品和运营的资源来证明数据仓库的价值。

大数据平台起来后,数据开发管理平台是刚需,因此我们的前向元数据管理模式是很成功的。但之后在相当长的时间内,我们的主要精力投入在数据变现上,没有更多的元数据应用诉求。

去年开始我们又开始大幅去加强元数据的建设,主要有两个原因:

第一,大数据应用越来越多,很多收入规模还很大,因此快速核查应用的数据问题变得非常重要,而产品团队和数据团队的衔接也并不是很通畅,因此我们得去改进原有的元数据系统,采用图数据库去增强应用数据到仓库数据的端到端溯源能力。

第二,大数据的计算和存储开销越来越大,数据的冗余也越来越多,而企业对于降本增效提出了明确要求,因此需要定期下线或优化模型,从而降低资源消耗,节省成本。

今年数据中台起来后,评估数据中台的价值也变得非常迫切,必需要知道每个模型和标签到底应用的怎么样,这是大数据高质量规模运营的基础。

因此我们开始在核心应用平台部署元数据采集和解析服务来追踪数据的使用情况,这就是文章开头描述的场景。

希望于你有所启示。

企业数据治理的十个最佳实践

美团配送数据治理实践

如何实施有效的报表治理?

面向数据中台的数据治理七把利剑

如何有效推进百万标签库的治理?

艰难的旅程:我们如何用“十步法”完成了一次企业级数据治理的落地?

图数据库:一种解决元数据管理“两张皮”的方法!

最新发布的《数据资产管理实践白皮书4.0》,是学习数据管理的最好框架指引!

数据的价值到底如何评估?

业务系统的数据资产管理为什么这么难?

数据的价值到底如何衡量?

从DAMA出发,一个指标库到底是如何炼成的?

一本数据字典的三生三世

思考|谈谈数据管理的原则

我如何完成一本企业数据字典的编写?

为什么数据管理工作很难成功?

六把武器?谈谈DT时代的大数据资产管理(下)

六把武器?谈谈DT时代的大数据资产管理(上)

这篇关于元数据的生死时速的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/407517

相关文章

MyBatisPlus如何优化千万级数据的CRUD

《MyBatisPlus如何优化千万级数据的CRUD》最近负责的一个项目,数据库表量级破千万,每次执行CRUD都像走钢丝,稍有不慎就引起数据库报警,本文就结合这个项目的实战经验,聊聊MyBatisPl... 目录背景一、MyBATis Plus 简介二、千万级数据的挑战三、优化 CRUD 的关键策略1. 查

python实现对数据公钥加密与私钥解密

《python实现对数据公钥加密与私钥解密》这篇文章主要为大家详细介绍了如何使用python实现对数据公钥加密与私钥解密,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录公钥私钥的生成使用公钥加密使用私钥解密公钥私钥的生成这一部分,使用python生成公钥与私钥,然后保存在两个文

mysql中的数据目录用法及说明

《mysql中的数据目录用法及说明》:本文主要介绍mysql中的数据目录用法及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录1、背景2、版本3、数据目录4、总结1、背景安装mysql之后,在安装目录下会有一个data目录,我们创建的数据库、创建的表、插入的

Navicat数据表的数据添加,删除及使用sql完成数据的添加过程

《Navicat数据表的数据添加,删除及使用sql完成数据的添加过程》:本文主要介绍Navicat数据表的数据添加,删除及使用sql完成数据的添加过程,具有很好的参考价值,希望对大家有所帮助,如有... 目录Navicat数据表数据添加,删除及使用sql完成数据添加选中操作的表则出现如下界面,查看左下角从左

SpringBoot中4种数据水平分片策略

《SpringBoot中4种数据水平分片策略》数据水平分片作为一种水平扩展策略,通过将数据分散到多个物理节点上,有效解决了存储容量和性能瓶颈问题,下面小编就来和大家分享4种数据分片策略吧... 目录一、前言二、哈希分片2.1 原理2.2 SpringBoot实现2.3 优缺点分析2.4 适用场景三、范围分片

Redis分片集群、数据读写规则问题小结

《Redis分片集群、数据读写规则问题小结》本文介绍了Redis分片集群的原理,通过数据分片和哈希槽机制解决单机内存限制与写瓶颈问题,实现分布式存储和高并发处理,但存在通信开销大、维护复杂及对事务支持... 目录一、分片集群解android决的问题二、分片集群图解 分片集群特征如何解决的上述问题?(与哨兵模

浅析如何保证MySQL与Redis数据一致性

《浅析如何保证MySQL与Redis数据一致性》在互联网应用中,MySQL作为持久化存储引擎,Redis作为高性能缓存层,两者的组合能有效提升系统性能,下面我们来看看如何保证两者的数据一致性吧... 目录一、数据不一致性的根源1.1 典型不一致场景1.2 关键矛盾点二、一致性保障策略2.1 基础策略:更新数

Oracle 数据库数据操作如何精通 INSERT, UPDATE, DELETE

《Oracle数据库数据操作如何精通INSERT,UPDATE,DELETE》在Oracle数据库中,对表内数据进行增加、修改和删除操作是通过数据操作语言来完成的,下面给大家介绍Oracle数... 目录思维导图一、插入数据 (INSERT)1.1 插入单行数据,指定所有列的值语法:1.2 插入单行数据,指

SQL Server修改数据库名及物理数据文件名操作步骤

《SQLServer修改数据库名及物理数据文件名操作步骤》在SQLServer中重命名数据库是一个常见的操作,但需要确保用户具有足够的权限来执行此操作,:本文主要介绍SQLServer修改数据... 目录一、背景介绍二、操作步骤2.1 设置为单用户模式(断开连接)2.2 修改数据库名称2.3 查找逻辑文件名

canal实现mysql数据同步的详细过程

《canal实现mysql数据同步的详细过程》:本文主要介绍canal实现mysql数据同步的详细过程,本文通过实例图文相结合给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的... 目录1、canal下载2、mysql同步用户创建和授权3、canal admin安装和启动4、canal