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的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps&nbsp;
目录
相关文章
|
19天前
|
存储 大数据 API
大数据隐私保护策略:加密、脱敏与访问控制实践
【4月更文挑战第9天】本文探讨了大数据隐私保护的三大策略:数据加密、数据脱敏和访问控制。数据加密通过加密技术保护静态和传输中的数据,密钥管理确保密钥安全;数据脱敏通过替换、遮蔽和泛化方法降低敏感信息的敏感度;访问控制则通过用户身份验证和权限设置限制数据访问。示例代码展示了数据库、文件系统和API访问控制的实施方式,强调了在实际应用中需结合业务场景和平台特性定制部署。
115 0
|
19天前
|
存储 监控 NoSQL
Redis HyperLogLog: 高效统计大数据集的神秘利器
Redis HyperLogLog: 高效统计大数据集的神秘利器
|
19天前
|
SQL 分布式计算 监控
MaxCompute提供了一些工具以帮助您监控作业和资源使用情况。
【2月更文挑战第4天】MaxCompute提供了一些工具以帮助您监控作业和资源使用情况。
33 8
|
19天前
|
数据采集 监控 算法
利用大数据和API优化电商决策:商品性能分析实践
在数据驱动的电子商务时代,大数据分析已成为企业提升运营效率、增强市场竞争力的关键工具。通过精确收集和分析商品性能数据,企业能够洞察市场趋势,实现库存优化,提升顾客满意度,并显著增加销售额。本文将探讨如何通过API收集商品数据,并将这些数据转化为对电商平台有价值的洞察。
|
19天前
|
存储 数据可视化 数据管理
基于阿里云服务的数据平台架构实践
本文主要介绍基于阿里云大数据组件服务,对企业进行大数据平台建设的架构实践。
788 2
|
19天前
|
存储 SQL 分布式计算
开源大数据比对平台设计与实践—dataCompare
开源大数据比对平台设计与实践—dataCompare
89 0
|
19天前
|
SQL 存储 大数据
某互联网大厂亿级大数据服务平台的建设和实践
某互联网大厂亿级大数据服务平台的建设和实践
85 0
|
11天前
|
存储 弹性计算 大数据
【阿里云弹性计算】阿里云ECS在大数据处理中的应用:高效存储与计算实践
【5月更文挑战第23天】阿里云ECS在大数据处理中发挥关键作用,提供多样化实例规格适应不同需求,尤其大数据型实例适合离线计算。通过集成分布式文件系统如OSS,实现大规模存储,而本地存储优化提升I/O性能。弹性扩容和计算优化实例确保高效运行,案例显示使用ECS能提升处理速度并降低成本。结合阿里云服务,ECS构建起强大的数据处理生态,推动企业创新和数字化转型。
31 0
|
13天前
|
分布式计算 大数据 Hadoop
大数据编程期末大作业2023
大数据编程期末大作业2023
31 1
|
19天前
|
分布式计算 数据可视化 Hadoop
大数据实战——基于Hadoop的Mapreduce编程实践案例的设计与实现
大数据实战——基于Hadoop的Mapreduce编程实践案例的设计与实现

热门文章

最新文章

相关产品

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