基于CU,PO,RD,IPO矩阵图分析数据资产-自创

术语

        数据资产:数据资产是具有价值的数据资源。没有价值的数据资源,通过采集,整理,汇总等加工后,也可以成为具有直接或间接价值的数据资产。传统企业逐渐数字化转型,尤其是互联网企业,都十分重视企业的的数据资产。这些数据通过大数据处理,提供给商业智能化,或人工智能等使用,会给公司带来直接或间接的经济效益。这些数据资产通常的表现形式,诸如关系型数据库数据库,如mysql,oracle等的结构化库表数据,也包括大数据,数仓如hive,hbase,hudi,mongodb,es等结构化与半结构化的数据。

        CU矩阵: CU矩阵中的C指create创建,U指use使用的意思。可以用来标记一个数据相关联的重要的两个属性。例如Hive表数据的创建者,以及Hive表的使用者。创建者可以是多个,使用者也可以是多个,创建者和使用者可以相同,也可以不同。

        PO矩阵:PO矩阵中的P是指过程,例如数据的生产过程,O是指组织,如企业内部的某个部门或某个小组。PO矩阵,可以用数据在生产过程中经过哪些组织,与哪些组织产生关系。

        RD矩阵:RD矩阵中的R是指resource资源,D指data数据。RD矩阵可以指出在生产,使用数据过程中要是用到哪些资源。这样可以对数据的生产成本,使用成本可以进行评估。

        IPO图:在企业业务团队,使用数据进行生产任务的过程中,分析每个过程的输入数据类,输出数据类。并且与RD矩阵进行调整。最后总结出整个生产链条,涉及系统的数据类。形成一张链路图。可以对重点任务,重点数据类进行标记。

背景技术

        随着传统行业积极主动的向数字化转型,以及互联网行业的业务不断拓展。像金融,社交媒体,视频网站,电商零售,传统房地产,车联网企业,制造业,工业互联网等每天都产生大量的数据,这些数据就像水一样,处理的好会成为一种力量能源,帮助公司的业务能够朝着正确的方向,更好更快的前进;处理不好也会像洪水那样成为一种泛滥灾难,会给个人,企业甚至社会,国家制造巨大的损失。

        既然数据是一把双刃剑,怎么样,收集,处理,用好这些数据。使其真正成为企业的数据资产,而不是负债。就需要一套完整,系统的方法,对现有的数据进行价值分析,评价的方法,甚至形成一套系统的,自动化的进行数据资产的分析方法与系统工具。进而更好的管理数据,利用数据,为企业创造更大的价值。

        在进行数据资产管理的时候,很多场景都需要明确知道数据的生产者,使用者。以及数据的生产过程,涉及的部门,数据生产与使用成本。数据资产管理,涉及对数据的复用,生产,数据资产成本分析,数据资产评级等,形成系统化的功能后,可以总结,并开发出数据资产管理相关的系统或产品。

        现在企业做做数据资产管理的时候,大多会集成到数据中台。数据中台可能会存有有整个公司的业务数据。会有数仓相关建设。数据收集,清洗,加工。然后存到Hive,hbase,hudi,或kafka等hadoop相关生态系统,大数据体系。数据中台提供存储,计算,相关平台。给业务,BI,人工智能等相关部门使用。在对数据资产进行管理的时候,往往需要集中的元数据管理系统。但是元数据管理系统不能仅仅只局限与采集,展示一些基本信息,如mysql,Hive的库表列,分区等信息,以及表的血缘,字段的血缘。元数据还应该展示关联更多业务相关,打通与业务元数据,操作元数据之间的关系。提供丰富,有意义的数据资产相关的一些图形化展示,api查询,数据分析流程等相关能。

        在分析数据资产,进行数据治理的时候,可以借助开源软件,例如Atlas通过采集元数据相关信息,建了数据的血缘关系图。通过分析血缘关系,来分析数据资产,以及进行数据治理等工作。

        在系统化的分析数据资产的时候,我们可以借助信息系统规划中的各种矩阵。如:CU矩阵图,RD矩阵图,PO矩阵图,IPO矩阵图等工具,来分析数据资产。

现有技术

  1. Atlas等开源软件采集hive,hbase等表的血缘关系图,展示数据的表与表的关系。

现有技术实现方案

  1. Atlas等开源软件,提供了表的血缘关系图,这些血缘,记录了表与表的关系。下游表关联了上游表。
  2. Atlas的血缘关系图,以信息节点的方式,展示数据流转路线。数据流转的线路,在血缘图中,经过节点从左到右。一个数据节点可能有多个父节点,父节点上游表示输入。可以有多个下游,表示数据的使用。
  3. Atlas的血缘关系图对数据溯源,数据价值评估,数据质量评估,数据的归档或销毁提供参考。
  4. Atlas提供统一数据模板,将按模板导入的数据,构建可视化的血缘关系图。

现有技术缺点

  1. Atlas血缘关系图,信息节点,展示了数据与数据之间的应用关系,没有完全识别数据的生产者消费者。这种关系图一般只能一次直观的查看一个表数据的上下游关联关系。
  2. Atlas血缘关系图,对数据的加工过程,涉及到的组织部门没有进行分析展示。
  3. Atlas血缘关系图,对数据的输入,处理工程,输出的展示是信息节点,具体就是到表,但是具体的输入,怎么处理没有明确的标识。
  4. Atlas对数据价值,数据质量的评估,还比较粗略。不能通过成本分析,使用的重要性,关联组织部门等维度进行进一步确认分析。而且在做数据成本计算,并将数据成本分别计算分摊到使用人员,以及使用部门的时候,找不到相关组织部门。
  5. 进行数据治理的时候,Atlas血缘关系图只能提供数据的上下游是否有节点,下游是否有在使用。但是无法关联使用者,数
  6. 据的重要程度,数据的加工逻辑。

作者自研技术方案

设计方案框图

        如上图所示为本发明的设计方框图,需要注意的是,这里只列举了整个设计的大致流程图。

        先分别采集数据资产相关元数据,如数仓Hive,或者mysql等的库表列,存储,CPU耗时,带宽,流量等元数据;以及数据的加工过程,涉及业务组织部门,输入,输出报表等业务元数据存到Mysql。然后计算数据资产的CU矩阵图,RD矩阵图,PO矩阵图和IPO矩阵图。然后分别计算数据资产的:可靠度,使用权重,成本值,部门关联度,过程复杂度,输入,产出值等指标。进而可以对数据进行:数据归属的溯源,数据流转路线分析,数据价值评估,数据质量评估,数据归档销毁参考等数据相关的治理。

设计方案流程

  1. 数据采集

        数据采集有很多种方式,很多途径,也有很多数据源。包括数仓的Hive,hbase,kafka等元数据,包括库表字段,存储等元信息。还需要采集业务相关的元数据,如数据的加工过程,涉及到的部门组织,数据的输入,输出。创建者,使用者等归属信息。

        对于hive元数据的采集可以用Hive-metastore相关接口,或编写hive-metastore-listener监听器,批量采集或实时的监听采集Hive元数据。或者hive-hook采集hive执行的sql建立表与表的血缘关系数据。或人工批量维护导入的方式进行采集。

        对于hbase的元数据,可以分析hbase的zookeeper数据,或者使用hbase的Admin的相关api进行采集。也可以人工进行维护导入。

        Kafka的元数据采集可以使用kafka提供的管理相关的api进行采集,或者人工维护导入。

对于业务元数据的采集则需要各个业务部门提供相关的API进行业务元数据的采集。最终将业务元数据也数据资产元数据进行关联。

  1. 数据计算与输出展现方式

        元数据采集完毕,将数据资产元数据与业务资产元数据进行关联。计算得到数据资产相关的CU矩阵图,RD矩阵图,PO矩阵图,以及IPO矩阵图相关数据。

        这些数据可以存到hbase,例如存放表与表的血缘数据,业务过程与业务过程的血缘数据。或者存到mysql,例如数据的归属信息,使用者信息,过程相关的组织部门信息,数据的CPU,存储,网络流量,带宽,人力成本等相关信息。

        可以分别通过数据的CU矩阵图计算,可靠度,使用权重指标通过数据的RD矩阵图计算,成本值指标;通过PO矩阵图计算,部门关联度,过程复杂度指标;以及通过IPO图计算输入,产出值,过程复杂度等指标

        提供按照不同维度,不同指标,不同排序方式等查询统计的相关API接口,可以供页面或其他第三方调用。根据相关指标,对数据资产进行全方位,精准化分析。方便的数据进行管理,与更好的利用数据产生价值。

其中具体的数据计算与展示方式,列举如下:

数据的CU矩阵展示

        如上图所示展示了SYS库下18张表的CU矩阵的可视化图。每个表格是一个表对象。红色部分表示创建者,蓝色表示使用者。当创建者越多,红色的颜色就越深。使用者越多,蓝色的颜色就越深。当鼠标移动到表格上自动展示表的一些元信息,如表名,创建者,使用者。其他信息。在整个矩阵可视化展示中,我们可以按照颜色的深浅,由浅到深,从左上角到右下角排序展示。这样可以快速直观的找到一些使用较多,创建者较多等,比较重要的表。可以直观,快速的可视化查找。

数据可靠度计算方法

        基于CU矩阵,数据的可靠性假设取值为R,R=COUNT(U)-COUNT(C)。即,数据可靠度等使用者数量-创建者数量。理论上当R值越大,我们觉得可靠性越大。当使用者越多的时候,数据的价值越大。在考虑数据归档下线的时候,也可以考虑该值是否造成很大影响。

        除了标记创建者,使用者我们还可以通过创建者使用找到对应的部门。标记创建者的个数,使用者的个数外,还可建立表的血缘关系。

        如上图所示,标记数据创建是否有来源表,以及下游使用该表数据的表。该图展示了数据表与表的血缘关系的血缘C/U矩阵图,表sys.user_info的来源表有2个,关联的下游表有6个。

数据使用权重计算方法

        基于CU矩阵,数据使用权重:DW=下游表个数+上游表个数。权重值越大,说明与数据的关联越多。当下游越多的时候,数据的价值越大。在考虑数据归档下线的时候,也可以考虑该值是否造成很大影响。

数据的PO矩阵展示方法

         如上图所示,展示了表ods.user_ops的PO矩阵图。该数据涉及到4个过程,分别是用户填写生产,风控审批验证,存入业务系统,采集ETL到数仓。涉及的部门分别有业务综合部门,营销研发部,风控研发部,大数据研发部。其中每个部门对应到自己所对该数据的处理过程、有关联则打勾。

数据部门关联度的计算方法

        基于数据的PO矩阵,计算数据的关联度,R=有关联过程的部门个数相加。可能一个过程关联多个部门,也可能一个部门。当R值越大,说明关联度越大。这种数据需要引起高度重视,也是十分重要的数据资产。

数据过程复杂度的计算方法

        基于数据的PO矩阵,计算数据的关联度,R=过程数*有关联过程的部门个数相加。当复杂度越高。说明处理过程越多,则这种数据资产流转部门越多。

数据的RD矩阵展示方法

        如上图所示,展示6张表RD矩阵图,可以按照成本细化进行排序。对CPU耗时,存储耗时(数据是有生命周期的就耗时值数据存在多长时间,暂用了多少存储),网络带宽,网络流量,人工耗时。这些成本以后可以用不同的单位对成本进行统计。

数据成本值的计算方法

        基于数据RD矩阵,最终数据的成本我们假设为P,计算公式如下:P=C*cu+S*su+B*bu+F*fu+M*mu(其中我们把P定为总成本价格,C为cpu耗时,cu为cpu耗时单价;S为存储耗时,su为存储单价;B为网络单宽,bu为带宽单价;F为网络流量,fu为流量单价;M为人工耗时,mu为人力单价)。

        如上图所示,RD矩阵图还支持按每个加工过程进行细化。其中加工过程可以关联PO矩阵图,找到对用的部门组织,进而可以将数据的成本分摊到部门组织。数据成本值P=C*cu+S*su+B*bu+F*fu+M*mu

数据的IPO图展示方法

        如上图所示,展示了视频网站用户行为数据user_event_info_df数据的IPO矩阵图。其中数据的输入有三个渠道,处理大致有两种处理加工逻辑,最终输出有3种数据。其中处理过程可以关联PO矩阵图,找到对用的部门组织。

数据产出值计算方法

     假设数据产出值O,则O=输出数据的个数(如表的个数,数据的种类)

数据处理复杂度计算方法

     数据处理复杂度=处理加工涉及的过程的数量

  1. 计算结果分析

        通过计算出的数据资产的可靠度,使用权重指标,可以对数据是否有下游使用,使用的重要程度,对数据是否可以归档或则销毁作为参考,以及对数据的价值,质量具有一定参考意义。通过数据的RD矩阵图计算,成本值指标,可以将数据的相关成本细化,进而也可以关联数据使用的部门,对数据产生的成本进行分摊计算。通过PO矩阵图计算,部门关联度,过程复杂度指标,可以让用户对数据属性,复杂度有一定了解。以及通过IPO图计算输入,产出值,过程复杂度等指标,可以让用户再使用数据时,进行溯源,输入,加工逻辑,输出成功有个全方位的认识。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

文献速递:肿瘤分割---- 弱监督肝肿瘤分割,使用Couinaud区段标注

文献速递:肿瘤分割---- 弱监督肝肿瘤分割,使用Couinaud区段标注 01 文献速递介绍 肝癌是世界上导致癌症死亡的主要原因之一,也是第二大常见的癌症死因。本稿件于2021年10月28日收到,2021年11月24日修订,2021年12月1…

[Linux开发工具]项目自动化构建工具-make/Makefile

📙 作者简介 :RO-BERRY 📗 学习方向:致力于C、C、数据结构、TCP/IP、数据库等等一系列知识 📒 日后方向 : 偏向于CPP开发以及大数据方向,欢迎各位关注,谢谢各位的支持 目录 1.背景2.依赖关系和依…

【制作100个unity游戏之23】实现类似七日杀、森林一样的生存游戏17(附项目源码)

本节最终效果演示 文章目录 本节最终效果演示系列目录前言制作木板UI直接复制和工具一样的即可检查背包是否有指定数量的空插槽 源码完结 系列目录 前言 欢迎来到【制作100个Unity游戏】系列!本系列将引导您一步步学习如何使用Unity开发各种类型的游戏。在这第23篇…

品牌之门:概率与潜力的无限延伸

在品牌的世界里,每一个成功的推广都像是打开一扇门,从未知走向已知,从潜在走向显现。这扇门,既是品牌的起点,也是品牌发展的无限可能。 品牌,就像一扇紧闭的门,它静静地矗立在那里,…

toString()、equals()、clone()用法

Java中所有类的对象都可以直接使用Object类中提供的一些方法 1. toString():返回对象的字符串表示形式,通常在类中重写,以便于返回的是对象的内容 2. equals():判断两个对象的地址是否相等,直接使用也一样,…

【蓝桥杯】灭鼠先锋

一.题目描述 二.解题思路 博弈论&#xff1a; 只能转移到必胜态的&#xff0c;均为必败态。 可以转移到必败态的&#xff0c;均为必胜肽。 最优的策略是&#xff0c;下一步一定是必败态。 #include<iostream> #include<map> using namespace std;map<string,bo…

【Linux系统学习】6.Linux系统软件安装

实战章节&#xff1a;在Linux上部署各类软件 前言 为什么学习各类软件在Linux上的部署 在前面&#xff0c;我们学习了许多的Linux命令和高级技巧&#xff0c;这些知识点比较零散&#xff0c;进行练习虽然可以基础掌握这些命令和技巧的使用&#xff0c;但是并没有一些具体的实…

C++:priority_queue模拟实现

C&#xff1a;priority_queue模拟实现 什么是priority_queue模拟实现向上调整算法向下调整算法插入与删除 仿函数 什么是priority_queue priority_queue称为优先级队列。优先级队列是一种特殊的队列&#xff0c;其中每个元素都有一个相关的优先级。元素的优先级决定了它们在队…

NSSCTF Round#18 RE GenshinWishSimulator WP

恶搞原神抽卡模拟器 看到软件的界面&#xff0c;大致有三种思路&#xff1a; 修改石头数量一直抽&#xff0c;如果概率正常肯定能抽到&#xff08;但是估计设置的概率是0&#xff09;在源码里找flag的数据把抽卡概率改成100%直接抽出来 Unity逆向&#xff0c;根据经验应该dnsp…

助眠神器小程序源码|白噪音|小睡眠|微信小程序前后端开源

安装要求和说明后端程序运行环境&#xff1a;NginxPHP7.4MySQL5.6 PHP程序扩展安装&#xff1a;sg11 网站运行目录设置为&#xff1a;public 伪静态规则选择&#xff1a;thinkphp 数据库修改文件路径&#xff1a;/config/database.php需要配置后端的小程序配置文件&#xff0c;…

力扣hot1--哈希

推荐一个博客&#xff1a; 一文看懂哈希表并学会使用C STL 中的哈希表_哈希表end函数-CSDN博客 哈希做法&#xff1a; 我们将nums[i]记为key&#xff0c;将i记为value。 判断target-nums[i]是否在哈希表中&#xff0c;如果在说明这两个值之和为target&#xff0c;那么返回这两…

【Java】零基础蓝桥杯算法学习——线性动态规划(一维dp)

线性dp——一维动态规划 1、考虑最后一步可以由哪些状态得到&#xff0c;推出转移方程 2、考虑当前状态与哪些参数有关系&#xff0c;定义几维数组来表示当前状态 3、计算时间复杂度&#xff0c;判断是否需要进行优化。 一维动态规划例题&#xff1a;最大上升子序列问题 Java参…

Linux第48步_编译正点原子的出厂Linux内核源码

编译正点原子的出厂 Linux 内核源码&#xff0c;为后面移植linux做准备。研究对象如下&#xff1a; 1)、linux内核镜像文件“uImage” 路径为“arch/arm/boot”&#xff1b; 2)、设备树文件“stm32mp157d-atk.dtb” 路径为“arch/arm/boot/dts” 3)、默认配置文件“stm32m…

第二部分阶段总结

第二部分阶段总结 1.知识补充1.1 nolocal关键字1.2 yield from1.3 深浅拷贝 2.阶段总结3.考试题 1.知识补充 1.1 nolocal关键字 在之前的课程中&#xff0c;我们学过global关键字。 name rootdef outer():name "武沛齐"def inner():global namename 123inner()…

LeetCode、739. 每日温度【中等,单调栈】

文章目录 前言LeetCode、739. 每日温度【中等&#xff0c;单调栈】题目链接及分类思路单调栈 资料获取 前言 博主介绍&#xff1a;✌目前全网粉丝2W&#xff0c;csdn博客专家、Java领域优质创作者&#xff0c;博客之星、阿里云平台优质作者、专注于Java后端技术领域。 涵盖技…

【每日一题】尾随零

尾随零 目录 思路&#xff1a;代码实现&#xff1a; 思路&#xff1a; 最开始看到这题就只想到规规矩矩的做题&#xff0c;先算阶乘在算0&#xff0c;后来提交时总是提示溢出&#xff0c;不死心&#xff0c;改来改去最后没招了。 后来看题解才知道要看5的个数&#xff01; …

Java 基于 SpringBoot+Vue 的智慧外贸平台的研究与实现,附源码

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;…

CVE-2023-41892 漏洞复现

CVE-2023-41892 开题&#xff0c;是一个RCE Thanks for installing Craft CMS! You’re looking at the index.twig template file located in your templates/ folder. Once you’re ready to start building out your site’s front end, you can replace this with someth…

【C++入门语法】1.变量的世界

​ 欢迎来到C的世界&#xff01;在这篇文章中&#xff0c;我们将一起探索C编程中的基本概念——变量。变量是程序设计中非常重要的一部分&#xff0c;它们是存储数据的容器&#xff0c;让我们的程序能够记住和操作这些信息。 什么是变量&#xff1f; 变量是一个标识符&#x…

Python基于大数据的电影预测分析系统

博主介绍&#xff1a;✌程序员徐师兄、7年大厂程序员经历。全网粉丝30W、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专栏推荐订阅&#x1f447;…