MaxCompute消费预警与控制

本文涉及的产品
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: MaxCompute(原名ODPS)是一种快速、完全托管的EB级数据仓库解决方案, 致力于批量结构化数据的存储和计算,为用户提供数据仓库的解决方案及分析建模服务,以及完善的数据导入方案和多种经典的分布式计算模型,帮助用户轻松完成大数据分析。目前,MaxCompute服务已覆盖全球16个国家和地区,为全球用户提供海量数据存储和计算服务。

本篇内容

分享人: 哈白 阿里云智能 技术专家

视频地址:https://yqh.aliyun.com/live/detail/21707

本篇主要通过3个部分介绍如何控制MaxCompute 的资源使用和消费。

  • MaxCompute的计费模式
  • 消费预警
  • 消费控制

 

一、MaxCompute的计费模式

MaxCompute分为三种资源,分别是计算、存储和下载流量,其中计算占费用的主要部分,其次是下载流量,最后是存储。MaxCompute为计算和下载流量的计费都提供了预警和控制的能力,对于这几种资源MaxCompute也都提供了三种计费模式。

image.png

MaxCompute计费模式

计算

存储

下载流量

包年包月

按量计费

包年包月+按量计费

预警+控制

预警

1)包年包月

这种方式需要预先购买一定的资源,使用时就在这部分资源内进行使用,如果对资源的需求过多,就可能会出现排队等资源的问题。

2)按量计费

这种计费方式,不需要预先购买一定的资源,只需在完成作业后根据使用的资源量来进行计算费用。

3)同时使用包年包月和按量计费

这是一种是比较新的方式,也就是在包年包月的基础上开通一个项目的按量计费能力。

 

二、消费预警

为什么要进行消费预警和控制?

 

对于包年包月的套餐模式经常会遇到一些问题,比如,资源使用过满、资源被某一个特别大的作业占满、提交的作业太多,其他人把自己的Quota组占满了,这个时候就需要及时知道发生的状况并做处理,否则就会无法执行。

 

对于按量付费计费模式也是如此。比如,某些用户提交了全表扫描、一些定时跑的任务输入数据表的数据量突然增大、某些用户突然提交了大量的作业,有可能是操作失误,也有可能是提交作业的逻辑程序有bug,在按量付费的情况下,会造成更加严重的问题。

 

所以在面对这些情况的时候,必须有一种机制帮助用户提前预警消费资源使用。并且这种按量的付费,还能帮助用户去控制消费的额度。

 

从消费预警来讲起,MaxCompute是通过云监控来实现消费预警的。

image.png

消费预警

云监控链接

百阿里云

01

镇家文码,控材台,API,解决方富和质油

工单

官网

清体

企量

支持

云监控

报警规则列表

C别新

自定义控

事件报警

所值报警

日志益控

推索

请城入进行童询

创连报营熳则

站点益控

模作

状态(全脑)

监控项(全腩)

姓度(全腩)

控置瘦则

通知对象

启用

产品名称(全菌)

规则名棒

云产品监控

包年包月配精组CPU便

MaICompute-色

查看1程叠历史

qroupName默认聚付员

me-group1

正常妆

已启用

年包月配板组CPU使用星

年月quota组资

每年包月程警规则清试

用量>3%Info连线1

容别鸟控(Bota)

查看

锦改禁用新除

Ouota

次裁拇置

招置服务

按量付榄日作业润费>

查看1扭量历史

me-group1

HGMaIComoute-按

款察不足

以启用

清卖担置测试

2人民市Info连埃饮次影付算

按星付榄日作业酒费

projccthabaltest2

报雪历史

查看

锦农质用毛除

就报置

担雪视板

禁用

启用

共2条

报警粮则

控量联系人

事住订均

一健报警

贵源消耳(NeW

上图是一个云监控的页面,在上面可以配置一些报警的阈值,还有一些资源使用,资源占用的阈值。包年包月主要是对资源使用量进行报警。

image.png

计算按量,项目级)

消费预警

链接

可阿里云

摆索文档,控利台,API,解决方实和美酒

关联茵源

MarComouTe-按量付员

产品:

项目名蹲

有源楚围:

华北2北北京

地道:

项目名棒:

habaltest

设置控警规则

规射名楼:

按星付集日作业消费

1分许周期

持续1个周期

规则播述:

零值

最大值

+港加控警规则

24小时

潘滩万饮质联

23:59

00:00

生鼓时阁:

最多只铁取10个责潭组合作为示制照示

还可以对按量付费进行创建报警规则(如上图)。这个时候单位就可以选择人民币了。

image.png

消费预警(计算包年包月,用户级)

链接

百网里云

卓阿里云

推家文档,控利台.API新浪克

推家文程,控利台.

000

关联责源

-050

MarCompute-智年包用用户南赛

产品

17:0640

1545:00

195020

183000

21:440

Regton列表

南源芯围:

年旺月rgn配准LCPU用率-AVcag9cn-boing

华北2(北京)

Renion列表:

通知方式

设置拇警规测

潘翅对象

已语组0个

联彩人通知姐

tenuple2

规则名蹲:

耀

MegrouP1

1分钟周期

每年包月reglon配随组CPU使用事

平均值

特埃1个周期

规则播述:

+添加控雷规则

源道尔数周聊

24小时

快港创建联系人组

23:59

00:00

生效时间:

电话赠信中国件们钉机器人(Cntican

最多只获取精10个南源组合作为示帆限示

赠信+望件+钉钉机器人wWarning)

控量馒别:

望件*们们制器人cnto)

0.50

0.00

包年包月还有用户级的,方法也是一样,都是对于一个用户下所有的Quota组进行报警。

image.png

消费预警(计算包年包月,Quota级)

链接

白阿里云

推素文档,控制台,API,牌

关联刻源

MaxCompute-包年包月quota组资潭

产品:

配颖组

贵源范围:

华北2(北京)

地域:

默认预付费Quotaquota2共2个

配精组:

设置报誉规则

规则名称:

testrule.3

1分钟周期

特线1个周期

平均值

色年包月配精组CPU使用量

规则播述:

+添加担警规则

通道沉默周期:

24小时

23:59

00:00

生效时间:

最多只铁取前10个责源组合作为示例展示

1.00


另外还可以对下载流量进行预警。

在产品部分选择MaxCompute通用,而不是包年包月或按量计费。再选择资源范围和地域,规则按照图中的配置,报警的阈值单位是兆,也就是当下载量超过一定MB的时候,就会按照配置的联系人去通知进行报警。只有公网的下载会收费,vpc等内部的网络下载都不会收费。


image.png

消费预警(日累计,用户级,产品级)

百阿里云

云服务器ECS

樱素

简体中文

用户中心

高额消费预警

返回

对添加预警的产品,当天一个产品后付贺消费大于提醒值时,每天姆信提醒一次.

odps-dev_testepro...

预警产品

预警阿值:

Dataworks(按星付阅)

增加

DataWorks(按量付费)

全部菜单项

最高消费预霍润值

预富

操作

大数据计算服务MaCom...

首页

暂无数据

表格存储

资金管理

制族

收支明组

免用账单

费用账单

费用管理

最后还有一个,对产品整体进行消费预警。比如MaxCompute的服务,各种各样的消费加在一起进行预警,总共的阈值不能超过一定量。这个不是通过云监控完成的,是阿里云支持的。

 

除此之外,还可以利用MaxCompute提供的一系列分析服务进行自己分析消费和自定义告警。

比如说有下面几个问题:如何分析一个详单数据?如何找到topN的消费用户?如何找到topN的耗时任务?如何定时推送分析报告?如何统计个人账号的资源使用情况?

举其中一个例子,比如可以通过information schema这种机制来找到topN的消费用户,或者是找到topN的耗时任务,在阿里云的官网文档上可以找到。后面可以通过钉钉机器人推送到钉群的方法来实现对分析报告或者是报警的推送。

相关文章参考:

MaxCompute账号费用及任务耗时TOPN统计:https://developer.aliyun.com/article/778447

MaxCompute消费监控最佳实践:https://developer.aliyun.com/article/781312

三、消费控制

如果报警没有被看到,或者消费增长的速度特别的快,就需要一种更严格的机制——消费控制。当消费超过设置或者期望的数量时,就会直接拒绝用户再提交作业。消费控制主要是针对按量付费来说的,因为按量付费资源使用过多就会直接涉及到更多的消费。

 

MaxCompute目前提供了对于SQL的消费按量控制,需要使用odps的客户端。下载客户端之后先把环境准备好,配置上project owner或者super adminak, 也可以由project owner或者super admin登录DataWorks上的临时查询来设置。

首先,对于单条SQL,执行之前设置一个预期的消费阈值,提交SQL的时候系统会自动地分析这条SQL可能会消费多少,如果超过了这个消费的值就会直接报错。

image.png

消费控制(SQL按量,单SQL)

单sql,ssion级,普通用户权限

环境准备

odpsohabai-test2>

odps.sql.metering.value.max-0.001;

odpsohabai.testzseectomutom

odps客户端(链接)

ID202122714251183gbigj21

Logview:

http://oyew.

2157CG5NLMSCOMMTELDMNNYOGRBUOTU

projectowner/super

HGtCSMX3J63

JobQueueing.

admin的ak

FAtED:Mteingdtaxcedx

单sq,项目级,projectowner/supradmin权限

单条SQL消费限制

odpsohabaitest2uneodpssqmeing

OK

habai.test2setprojctossqlmetringx

odpsol

OK

或值单位:SQL读取量

oupsehabaitest2semU

(GB)XSQL复杂度

ID20201227142788135gg68sa

LogView:

htp://oyer.

zG

日/月累计限制

3gtcs831

JobQueueing.

ATED:Mtringdt

图中的右上图是一个例子。

阈值单位不是人民币,是SQL读取量(GBx SQL的复杂度,直接把价格放进去会影响准确度。当执行一条SQL的时候,在没有用任何资源的时候,系统评估花费输入数据量可能是0.12037908GB,复杂度是1.0,这就超过了预设的值,无法执行这条SQL


另外还能设置项目级,和session级不同,通过setproject这个命令把第三行中的flag设置成一个值,这一次设置就是永久生效的。退出客户端,或者DateWorks上的定时任务,或是其他用户在其他设备上重启这个客户端,都会看到这样的一个阈值,他们提交作业的时候同样也会受到这个阈值的限制。

当然,有单条SQL的控制是不够的,所以平台还提供了累计的消费控制。目前实现的是按日累计的消费控制,可以通过在项目级设置。

image.png

消费控制(SQL按量,日累计)

环境准备

odps客户端(链接)

日累计,project级,projectowner/superadmin权限

projectowner/super

odpsehabai.testztprojcctoupcostonto

admin的ak

OK

oApsehaboitetz

单条SQL消费限制

BEpRBt

日/月累计限制

ID2028122714393879gdvv66pr2

Logview:

htp://ogo

延迟约5~10秒

93978bw.boo

t480837160

bbo33

6IjEIFO-S

当前累计+预估下一条

JobQueueing

TE:Bwt7

t:6.8.Poocthbit

同值单位:扫描数据量

(GB)x复杂度x0.3

上图是一个例子,目前用户可以改的是SQL:后面的数值,这个单位是人民币,比如说可以设置0.5元。这时执行一句SQL并不会受到控制,因为花费没有超过,再次执行一个SQL时,累计的消费就超过0.5了。一天之内所有的SQL会累计起来,直到消费超过了设置的累计预值就不能再提交SQL了。系统会预估当前消费,和累计的消费求和,来判断预估的消费加累计的消费是否超过设的上限。这种方式就是一个实时的控制,但是实时性并不是很强,可能会产生5~10秒的延迟。它的单位是扫描的数据量(GB)乘以复杂度再乘以0.3,其中0.3是预设上去的一个单价,是可以修改的。

最后说明一点,可能有些用户会使用limit这个关键字去控制自己的消费。其实这样的控制方法是错误的,因为很多情况下limit其实都不能控制费用,比如图中的两种情况。

image.png

不要使用limit控制费用

很多情况limit都不能控制费用

select*fromtablexwhere分区字段三常量/能推出的常量"limitxxx;//

会产生计量

select*from(asubqueryalimitXxx/SQL计量是按照读入数据量,

而不是输出数据量

如果想费用控制,使用前文提到的方法为好,不要使用Limit

以上就是对MaxCompute消费预警和控制方法的基本介绍。

更多关于大数据计算产品技术交流,可扫码加入 “MaxCompute开发者社区” 钉钉群进行咨询。

2群.jpg

MaxCompute开发者社区2群

扫一扫,快速加入我们的企业/组织/团队


相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
目录
相关文章
|
大数据
大数据Azkaban失败任务预警
大数据Azkaban失败任务预警
247 0
|
SQL 分布式计算 MaxCompute
MaxCompute 消费预警与控制 | 学习笔记
快速学习 MaxCompute 消费预警与控制
225 0

相关产品

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