基于MaxCompute InformationSchema进行血缘关系分析

一、需求场景分析
在实际的数据平台运营管理过程中,数据表的规模往往随着更多业务数据的接入以及数据应用的建设而逐渐增长到非常大的规模,数据管理人员往往希望能够利用元数据的分析来更好地掌握不同数据表的血缘关系,从而分析出数据的上下游依赖关系。
本文将介绍如何去根据MaxCompute InformationSchema中作业ID的输入输出表来分析出某张表的血缘关系。
二、方案设计思路
MaxCompute Information_Schema提供了访问表的作业明细数据tasks_history,该表中有作业ID、input_tables、output_tables字段记录表的上下游依赖关系。根据这三个字段统计分析出表的血缘关系
1、根据某1天的作业历史,通过获取tasks_history表里的input_tables、output_tables、作业ID字段的详细信息,然后分析统计一定时间内的各个表的上下游依赖关系。
2、根据表上下游依赖推测出血缘关系。
三、方案实现方法
参考示例一:
(1)根据作业ID查询某表上下游依赖SQL处理如下:

select
t2.input_table,
t1.inst_id,
replace(replace(t1.output_tables,"[",""),"]","") as output_table
from information_schema.tasks_history  t1
left join
(select---去除表开始和结尾的[ ]trans_array(1,",",inst_id,replace(replace(input_tables,"[",""),"]","")) as (inst_id,input_table)from information_schema.tasks_history  where ds = 20190902 
)t2
on t1.inst_id = t2.inst_id
where (replace(replace(t1.output_tables,"[",""),"]","")) <> ""
order by t2.input_table limit 1000;

结果如下图所示:
image.png

(2)根据结果可以分析得出每张表张表的输入表输出表以及连接的作业ID,即每张表的血缘关系。
血缘关系位图如下图所示:
image.png

中间连线为作业ID,连线起始为输入表,箭头所指方向为输出表。
参考示例二:
以下方式是通过设置分区,结合DataWorks去分析血缘关系:
(1)设计存储结果表Schema

CREATE TABLE IF NOT EXISTS dim_meta_tasks_history_a
(stat_date         STRING COMMENT '统计日期',project_name      STRING COMMENT '项目名称',task_id           STRING COMMENT '作业ID',start_time        STRING COMMENT '开始时间',end_time          STRING COMMENT '结束时间',input_table       STRING COMMENT '输入表',output_table      STRING COMMENT '输出表',etl_date          STRING COMMENT 'ETL运行时间'
);

(2)关键解析sql

SELECT 
'${yesterday}'      AS stat_date
,'project_name'     AS project_name
,a.inst_id          AS task_id
,start_time         AS start_time
,end_time           AS end_time
,a.input_table      AS input_table
,a.output_table     AS output_table
,GETDATE()          AS etl_date
FROM (SELECT t2.input_table    ,t1.inst_id,replace(replace(t1.input_tables,"[",""),"]","") AS output_table,start_time        ,end_time        FROM (SELECT*,ROW_NUMBER() OVER(PARTITION BY output_tables ORDER BY end_time DESC) AS rowsFROM information_schema.tasks_historyWHERE operation_text LIKE 'INSERT OVERWRITE TABLE%'AND (start_time >= TO_DATE('${yesterday}','yyyy-mm-dd')andend_time <= DATEADD(TO_DATE('${yesterday}','yyyy-mm-dd'),8,'hh'))AND(replace(replace(output_tables,"[",""),"]",""))<>""AND ds = CONCAT(SUBSTR('${yesterday}',1,4),SUBSTR('${yesterday}',6,2),SUBSTR('${yesterday}',9,2)))t1LEFT JOIN(SELECT TRANS_ARRAY(1,",",inst_id,replace(replace(input_tables,"[",""),"]","")) AS (inst_id,input_table)FROM information_schema.tasks_historyWHERE ds = CONCAT(SUBSTR('${yesterday}',1,4),SUBSTR('${yesterday}',6,2),SUBSTR('${yesterday}',9,2)))t2ON t1.inst_id = t2.inst_idwhere t1.rows = 1
) a
WHERE a.input_table is not null
;

(3)任务依赖关系
image.png
image.png

(4)最终血缘关系
image.png

以上血缘关系的分析是根据自己的思路实践去完成。真实的业务场景需要大家一起去验证。所以希望大家有需要的可以根据自己的业务需求去做相应的sql修改。如果有发现处理不当的地方希望多多指教。我在做相应的调整。
欢迎加入“MaxCompute开发者社区2群”,点击链接申请加入或扫描二维码
https://h5.dingtalk.com/invite-page/index.html?bizSource=____source____&corpId=dingb682fb31ec15e09f35c2f4657eb6378f&inviterUid=E3F28CD2308408A8&encodeDeptId=0054DC2B53AFE745

image.png

原文链接
本文为云栖社区原创内容,未经允许不得转载。

 

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

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

相关文章

不要再被 Python 洗脑了!!

Python 作为一种解释型技术脚本语言&#xff0c;越来越被认可为程序员新时代的风口语言。 无论是刚入门的程序员&#xff0c;还是年薪百万的 BATJ 的技术大牛都无可否认&#xff1a;Python的应用能力是成为一名码农大神的必要项。 而作为Python初学者来讲&#xff0c;最大的问题…

Nexus 3.31.1 maven 私服 仓库配置篇 linux

文章目录1. 新建仓库概述2. 阿里云代理仓库3. 自己的仓库4. 自己的仓库组5. 效果图1. 新建仓库概述 总共新建3各仓库 一个是国内开源仓库&#xff0c;加速下载 一个是自己的仓库&#xff0c;用于存放自己公司的jar 一个是子类型的仓库&#xff0c;用于将上述两个组成一个地址 …

Struct复杂数据类型的UDF编写、兼容HIVE的GenericUDF编写

一、背景介绍&#xff1a; MaxCompute 2.0版本升级后&#xff0c;Java UDF支持的数据类型从原来的BIGINT、STRING、DOUBLE、BOOLEAN扩展了更多基本的数据类型&#xff0c;同时还扩展支持了ARRAY、MAP、STRUCT等复杂类型&#xff0c;以及Writable参数。Java UDF使用复杂数据类型…

如何跨项目工作空间访问MaxCompute资源和函数?

1、背景介绍 同一个主账号下面的两个工作空间&#xff0c;工作空间名称分别为 A工作空间名称:wei_wwww A工作空间子账号&#xff1a;mc_oss B工作空间名称:wei_mc B工作空间子账号&#xff1a;bigdata_wei 现在B工作空间子账号bigdata_wei需要访问A工作空间子账号mc_oss创建的U…

Nexus 3.31.1 maven 私服 仓库和IntelliJ IDEA 2021.2 实战篇 linux

文章目录一、maven配置1. 私服配置2. 替换后的配置二、IntelliJ IDEA2.1. 创建项目2.2. 指定配置2.3. 下载依赖三、nexus3 监控3.1. 查看依赖版本3.2. 版本对比3.3. aliyun 仓库地址一、maven配置 1. 私服配置 在本地的maven 配置settings.xml内容&#xff0c;用下面内容覆盖…

我把这篇文章给女朋友看,她终于明白什么是「数据中台」了

来源 | 智领云科技责编 | Carol封图 | CSDN 下载自视觉中国这几天&#xff0c;女朋友一直忙着为自己挑选情人节礼物&#xff0c;毕竟直男的审美她也觉得不靠谱。就在昨天&#xff0c;她气冲冲地跑过来问我&#xff1a;为什么有些平台总是推荐一些我不喜欢的东西&#xff1f;为什…

发光的二次元克拉克拉 满足年轻用户个性化、碎片化的文娱需求

克拉克拉&#xff08;KilaKila&#xff09;是国内专注二次元、主打年轻用户的娱乐互动内容社区软件。KilaKila 推出互动语音直播、短视频配音、对话小说等功能&#xff0c;满足当下年轻用户个性化、碎片化的文娱需求。随着业务规模增长&#xff0c;海量数据存储与计算的瓶颈也日…

Nexus 3.31.1 maven 私服 服务器配置篇 linux

文章目录一、以服务运行1. 编写配置2. 赋予可执行权限3. 配置自启动4. 启动nexus5. 监控状态6. 停止服务二、配置文件说明2.1. JAVA配置2.2. 自定义配置2.3. 工作/日志 目录修改三、使用nginx代理3.1. HTTP3.2. HTTPS四、其他配置4.1. 配置匿名访问4.2. 更改管理员电子邮件地址…

混合云模式助力斗鱼搭建混搭大数据架构

云栖号案例库&#xff1a;【点击查看更多上云案例】 不知道怎么上云&#xff1f;看云栖号案例库&#xff0c;了解不同行业不同发展阶段的上云方案&#xff0c;助力你上云决策&#xff01; 案例背景 2019杭州云栖大会大数据企业级服务专场&#xff0c;由斗鱼大数据高级专家张龙…

架构师技术文档:Redis+Nginx+Spring全家桶+Dubbo精选

最近花了很长的时间去搜罗整理Java核心技术好文&#xff0c;我把每个Java核心技术的优选文章都整理成了一个又一个的文档。今天就把这些东西分享给老铁们&#xff0c;也能为老铁们省去不少麻烦&#xff0c;想学什么技能了&#xff0c;遇到哪方面的问题了 直接打开文档学一学就好…

天弘基金交易数据清算从8小时缩至1.5小时 解决余额宝算力难题

天弘基金作为国内总规模最大的公募基金&#xff0c;阿里云MaxCompute为我们构建了企业级一站式大数据解决方案。MaxCompute对于海量数据的存储、运维、计算能力强大且安全稳定&#xff0c;MaxCompute服务将原本需要清算8小时的用户交易数据缩短至清算1个半小时&#xff0c;同时…

配置MaxCompute任务消费监控告警,避免资源过度消费

MaxCompute 按量计费资源为弹性伸缩资源&#xff0c;对于计算任务&#xff0c;按任务需求提供所需资源&#xff0c;对资源使用无限制&#xff0c;同时MaxCompute按量计费的账单为天账单&#xff0c;即当天消费需要第二天才出账&#xff0c;因此&#xff0c;有必要对计算任务的消…

Vue3.0 备受热捧!2020 前端开发进阶必读

你好&#xff0c;我是汤小洋。前华为全栈工程师&#xff0c;南京大学软件工程硕士&#xff0c;拥有11年全栈开发及内部培训分享经验。作为一名前端人&#xff0c;学习从不是一件容易的事&#xff0c;这是我一路走过来的真实感受。“只要付出&#xff0c;就有收获”、“只要努力…

Docker 查看日志记录

日志文件对于处理故障十分重要&#xff0c;对于docker容器如何查看日志呢 查看docker容器的日志用到的是docker logs这个命令&#xff1a; 先看下官方给的命令说明 docker logs --help–details 显示更多的信息 –f, --follow 跟踪实时日志–since string 显示自某个timestam…

Docker JFrog Artifactory 7.27.10 maven私服(仓库配置篇)

文章目录一、二、 建立远程仓库2.1. 仓库列表2.2. 仓库创建演示2.3. 阿里云仓里调整三、建立本地仓库3.1. 仓库列表3.2. 仓库创建演示四、创建虚拟库4.1. 仓库列表4.2. 仓库创建演示五、创建用户/组/权限5.1. 创建用户5.2. 创建用户组5.3. 创建权限5.4. 获取密文密码5.5. 生成配…

ODPS2.0重装上阵,优化提升SQL语言表达能力

MaxCompute&#xff08;原ODPS&#xff09;是阿里云自主研发的具有业界领先水平的分布式大数据处理平台, 尤其在集团内部得到广泛应用&#xff0c;支撑了多个BU的核心业务。 MaxCompute除了持续优化性能外&#xff0c;也致力于提升SQL语言的用户体验和表达能力&#xff0c;提高…

野鸡大学怎么知道考生电话的?

来源 | 隐小卫责编 | 晋兆雨封图 | CSDN 下载自视觉中国当你在某度频繁搜索“高考”、“志愿”、“大学”、“本科”等关键词时&#xff0c;你的手机号码等信息有可能被非法抓取。并且打包进行交易&#xff0c;卖给培训班、网校、医院等机构进行所谓的“精准获客”。当然&#…

快速入门ECS快照功能,助力大数据容灾保护

阿里云快照是云盘数据在某个时刻完整的只读拷贝&#xff0c;是一种便捷高效的数据容灾手段&#xff0c;常用于数据备份、制作自定义镜像、应用容灾等。 应用场景 推荐您在以下场景中使用快照&#xff1a; 容灾备份&#xff1a;为云盘创建快照&#xff0c;再使用快照创建云盘获…

Docker JFrog Artifactory 7.27.10 maven私服(IDEA 实战篇01) linux

文章目录一、私服配置1. 账户密码2. 本地仓库3. ip/port二、IntelliJ IDEA2.1. 创建项目2.2. 指定配置2.3. 下载依赖2.4. 依赖查看2.5. 注意事项一、私服配置 将服务端生成的配置复制下来&#xff0c;进行修改 1. 账户密码 2. 本地仓库 3. ip/port 内容&#xff1a; <?xml…

一文看懂专有网络和交换机的定义及关系

在专有网络&#xff08;Virtual Private Cloud&#xff0c;简称VPC&#xff09;中使用云资源前&#xff0c;您必须先创建一个专有网络和交换机。您可以在一个专有网络中创建多个交换机来划分子网。一个专有网络内的子网默认私网互通。 专有网络和交换机 专有网络VPC是您独有的…