MaxCompute元数据使用实践--作业统计

简介: 通过MaxCompute租户级别Information Schema的“TASKS_HISTORY”视图可以统计查看MaxCompute计算作业的元数据信息,方便您进行作业审计以及各类统计,指导作业性能、成本优化。

MaxCompute的租户级别Information Schema从租户角度提供项目元数据及使用历史数据等信息,您可以一次性拉取您同一个元数据中心下所有Project的某类元数据,从而进行各类元数据的统计分析。我们在此推出系列元数据使用实践文章。

本文主要介绍通过元数据的“TASKS_HISTORY”视图进行作业的相关统计。

在此之前,您如果没还使用过租户级别Information Schema,需要您先详细阅读下租户级别Information Schema文档的背景信息、功能介绍、费用介绍、费用介绍、使用限制和注意事项,避免您在使用过程中遇到不必要的问题

统计分析作业CU时消耗

场景

当前使用MaxCompute的是按量付费,想评估下是否适合转成包年包月,适合的话需要购买多少包年包月CU合适。

解决方案:

这个场景主要是出于节约成本角度出发,那么考虑到MaxCompute的按量计费模式下,SQL作业的计费方式不是按CU计费,因此我们无法直接按最终的费用来换算,可以通过租户级别的SYSTEM_CATALOG.INFORMATION_SCHEMA.TASKS_HISTORY视图统计过去作业的CU消耗分布进行参考评估。

思路如下:

1)统计最近1个月(元数据默认只有最近15日的数据,若必须,需要您提前每日自行转存到其他普通project中)所有需要转预付的Project每日cost_cpu消耗总和。SYSTEM_CATALOG.INFORMATION_SCHEMA.TASKS_HISTORY中cost_cpu原始单位为core.s,需转换成CU.时(cost_cpu/100/3600)。找出正常消费中最高消费的那一天。

2)对正常消费最高的那一天按小时分别统计所有任务CU时消耗。

3)按业务划分时间段,取最高时间段进行分析。如业务是0-7点为业务高峰期划分为“ETL夜间高峰段”,其他的使用都很低则为一个时间段。

4)汇总高峰期时间段CU时总量/时间,得出该时间段内需要的CU量。如:0-7点这8个小时,CU时为800,则需要100CU跑8个小时才能跑完800CU时的计算量。当然这个是最理想的状态,任务不都是很平均,所以需要根据情况设置一定的冗余。另外还有比较极端的情况, 比如有些任务有依赖关系到5点的时候才需要超大量的CU量,但是这个时候用100CU来跑即使跑3个小时也跑不完,所以这种情况就要结合业务需求,如果这个实在不能延迟时间,要么加大CU量,要么这个Project不适合用包年包月资源。

5)建议不要一次性转所有Project,逐步转,每转一个Project需要通过MaxCompute管家监控资源使用情况,看情况进行扩容/缩容。

相关代码如下:

SET odps.namespace.schema = true; --若您当前租户已经开启租户级别的schema语法开关,则无需执行这个flag。
SELECT  task_catalog
        ,SUBSTR(end_time,1,13) end_time
        ,SUM(cost_cpu / 100 / 3600) cuh
FROM    SYSTEM_CATALOG.INFORMATION_SCHEMA.TASKS_HISTORY
WHERE   ds <= xxx --输入您需要统计的时间,最大只有最近15天数据。注意如果跑当天的数据会有比较大的计算消耗,使用后付费计算资源时需慎重。
GROUP BY task_catalog
         ,SUBSTR(end_time,1,13)
;

如果您通过MaxCompute控制台的 SQL分析执行,可以直接对结果进行简单分析如下:

image.png

从上图来看,CU时消耗分布不均匀,每日就只有一个小时是消耗非常高,从这单看不和适合所有项目都使用包年包月CU,但可以按项目分析,评估部分项目数据。

统计每个作业消费

如果您使用MaxCompute的是按量付费,有费用核对审计需求、或基于但作业费用优化需求,您可以通过SYSTEM_CATALOG.INFORMATION_SCHEMA.TASKS_HISTORY视图统计相关的费用,此处为你推荐“人力家”用户如何通过这个数据合理治理费用的展示案例:

【深入MaxCompute】人力家:借助Information Schema合理治理费用

常用的统计分析

统计作业量

统计各个项目每日个类型作业量趋势:

SET odps.namespace.schema = true; --若您当前租户已经开启租户级别的schema语法开关,则无需执行这个flag。
SELECT  ds
        ,task_catalog
        ,task_type
        ,COUNT(inst_id) inst_id_cnt
FROM    SYSTEM_CATALOG.INFORMATION_SCHEMA.TASKS_HISTORY
WHERE   ds <= xxx --输入您需要统计的时间,最大只有最近15天数据。注意如果跑当天的数据会有比较大的计算消耗,使用后付费计算资源时需慎重。
GROUP BY ds
         ,task_catalog
         ,task_type
;

作业类型取值如下:

  • SQL:SQL作业
  • CUPID:Spark或Mars作业
  • SQLCost:SQL预估作业
  • SQLRT:查询加速SQL作业
  • LOT:MapReduce作业
  • PS:PAI的Parameter Server
  • AlgoTask:机器学习作业

如果您通过MaxCompute控制台的 SQL分析执行,可以直接对结果进行简单分析如下:

image.png

查看某个表数据是被谁查看

查看某个表数据是被谁查看或写入

SET odps.namespace.schema = true; --若您当前租户已经开启租户级别的schema语法开关,则无需执行这个flag。
SELECT  task_catalog
        ,task_type
        ,inst_id
        ,owner_name
        ,start_time
        ,end_time
        ,input_tables
        ,output_tables
        ,operation_text
        ,ext_platform_id
        ,ext_node_id
        ,ext_node_onduty
FROM    SYSTEM_CATALOG.INFORMATION_SCHEMA.TASKS_HISTORY
WHERE   ds =xxxx   --输入您需要查看的时间,只有最近15天数据。注意如果跑当天的数据会有比较大的计算消耗,使用后付费计算资源时需慎重。
AND input_tables LIKE 'dwd_github_events_odps'
;
  • task_catalog:作业所属项目。
  • owner_name:可以查看真正执行MaxCompute作业的owner名称。有些情况下可能某个业务都是一个账号,这样无法找到作业真正的开发者,如DataWorks生产项目会指定一个账号执行MaxCompute作业。
  • - operation_text:SQL内容。
  • ext_platform_id:作业是从上游哪个端发起的,需要上游发起作业的时候传入这个信息,目前DataWorks和Dataphin 部分作业有传入,其他没传入无法获取到。
  • ext_node_id:作业在上游端发起的具体名称
  • ext_node_onduty:上游端作业的负责人uid,您可以尝试用这个id和SYSTEM_CATALOG.INFORMATION_SCHEMA.USERS表关联获取user name。

小结

以上只是给出了常见的几个场景,实际上您还可以通过“SYSTEM_CATALOG.INFORMATION_SCHEMA.TASKS_HISTORY”这个视图数据统计查看更多信息以便解决您的业务场景。

相关实践学习
基于MaxCompute的热门话题分析
Apsara Clouder大数据专项技能认证配套课程:基于MaxCompute的热门话题分析
目录
相关文章
|
6月前
|
存储 数据采集 搜索推荐
Java 大视界 -- Java 大数据在智慧文旅旅游景区游客情感分析与服务改进中的应用实践(226)
本篇文章探讨了 Java 大数据在智慧文旅景区中的创新应用,重点分析了如何通过数据采集、情感分析与可视化等技术,挖掘游客情感需求,进而优化景区服务。文章结合实际案例,展示了 Java 在数据处理与智能推荐等方面的强大能力,为文旅行业的智慧化升级提供了可行路径。
Java 大视界 -- Java 大数据在智慧文旅旅游景区游客情感分析与服务改进中的应用实践(226)
|
6月前
|
数据采集 SQL 搜索推荐
大数据之路:阿里巴巴大数据实践——OneData数据中台体系
OneData是阿里巴巴内部实现数据整合与管理的方法体系与工具,旨在解决指标混乱、数据孤岛等问题。通过规范定义、模型设计与工具平台三层架构,实现数据标准化与高效开发,提升数据质量与应用效率。
大数据之路:阿里巴巴大数据实践——OneData数据中台体系
|
6月前
|
存储 SQL 分布式计算
大数据之路:阿里巴巴大数据实践——元数据与计算管理
本内容系统讲解了大数据体系中的元数据管理与计算优化。元数据部分涵盖技术、业务与管理元数据的分类及平台工具,并介绍血缘捕获、智能推荐与冷热分级等技术创新。元数据应用于数据标签、门户管理与建模分析。计算管理方面,深入探讨资源调度失衡、数据倾斜、小文件及长尾任务等问题,提出HBO与CBO优化策略及任务治理方案,全面提升资源利用率与任务执行效率。
|
4月前
|
人工智能 Cloud Native 算法
拔俗云原生 AI 临床大数据平台:赋能医学科研的开发者实践
AI临床大数据科研平台依托阿里云、腾讯云,打通医疗数据孤岛,提供从数据治理到模型落地的全链路支持。通过联邦学习、弹性算力与安全合规技术,实现跨机构协作与高效训练,助力开发者提升科研效率,推动医学AI创新落地。(238字)
292 7
|
6月前
|
存储 监控 大数据
大数据之路:阿里巴巴大数据实践——事实表设计
事实表是数据仓库核心,用于记录可度量的业务事件,支持高性能查询与低成本存储。主要包含事务事实表(记录原子事件)、周期快照表(捕获状态)和累积快照表(追踪流程)。设计需遵循粒度统一、事实可加性、一致性等原则,提升扩展性与分析效率。
|
7月前
|
存储 搜索推荐 算法
Java 大视界 -- Java 大数据在智慧文旅旅游线路规划与游客流量均衡调控中的应用实践(196)
本实践案例深入探讨了Java大数据技术在智慧文旅中的创新应用,聚焦旅游线路规划与游客流量调控难题。通过整合多源数据、构建用户画像、开发个性化推荐算法及流量预测模型,实现了旅游线路的精准推荐与流量的科学调控。在某旅游城市的落地实践中,游客满意度显著提升,景区流量分布更加均衡,充分展现了Java大数据技术在推动文旅产业智能化升级中的核心价值与广阔前景。
|
存储 分布式计算 大数据
大数据之路:阿里巴巴大数据实践——大数据领域建模综述
数据建模解决数据冗余、资源浪费、一致性缺失及开发低效等核心问题,通过分层设计提升性能10~100倍,优化存储与计算成本,保障数据质量并提升开发效率。相比关系数据库,数据仓库采用维度建模与列式存储,支持高效分析。阿里巴巴采用Kimball模型与分层架构,实现OLAP场景下的高性能计算与实时离线一体化。
|
7月前
|
SQL 缓存 监控
大数据之路:阿里巴巴大数据实践——实时技术与数据服务
实时技术通过流式架构实现数据的实时采集、处理与存储,支持高并发、低延迟的数据服务。架构涵盖数据分层、多流关联,结合Flink、Kafka等技术实现高效流计算。数据服务提供统一接口,支持SQL查询、数据推送与定时任务,保障数据实时性与可靠性。
|
7月前
|
存储 Java 大数据
Java 大视界 —— 基于 Java 的大数据隐私保护在金融客户信息管理中的实践与挑战(178)
本文探讨了基于 Java 的大数据隐私保护技术在金融客户信息管理中的应用与挑战。随着金融行业数字化转型加速,客户信息的安全性愈发重要。文章详细分析了数据加密、脱敏、访问控制、区块链及联邦学习等关键技术,并结合实际案例展示了其在金融机构中的应用效果,为金融科技从业者提供了宝贵的实践经验与技术参考。
|
5月前
|
机器学习/深度学习 传感器 分布式计算
数据才是真救命的:聊聊如何用大数据提升灾难预警的精准度
数据才是真救命的:聊聊如何用大数据提升灾难预警的精准度
376 14

相关产品

  • 云原生大数据计算服务 MaxCompute