利用InformationSchema与阿里云账单管理API实现MaxCompute费用对账分摊统计
利用MaxCompute InformationSchema与阿里云交易和账单管理API 实现MaxCompute费用对账分摊统计
一、需求场景分析
很多的企业用户选择MaxCompute按量付费模式构建自己的数据平台,利用MaxCompute按作业付费的计费模型,在获得高性能的同时避免"IDLE"状态的不必要资源费用支出,仅为实际使用付费。
那么在一个规模比较大的公司,企业购买了MaxCompute服务,会支撑企业内部的不同部门、个人来使用MaxCompute来开展数据处理分析。为了更好地识别数据平台使用方的周期性花费成本,优化数据资源的使用,就有必要对作业的费用进行统计,从而确认不同人员或归属部门的作业数量、作业费用、作业时长、作业资源使用量等指标。基于这些指标进行成本分摊、作业优化等管理工作。
阿里云交易和账单系统包含了MaxCompute产品的费用信息及费用明细,通过关联交易和账单系统的计费明细与MaxCompute项目的作业明细或某时间段的账单费用,可以获得使用用户、作业明细信息(如提交人账号、作业SQL内容、作业资源使用大小等信息)与计费明细或账单费用间的关系,从而开展分析。
本文将介绍如果自动化实现MaxCompute按量付费项目的作业费用统计,您也可以通过阿里云交易和账单系统API获取其他需要的费用信息,扩展分析场景。
二、方案设计思路
1、获得MaxCompute项目历史作业明细
MaxCompute Information_Schema服务是MaxCompute产品的开放元数据服务,通过Information_Schema提供的一组视图,用户可以自助地查询访问到项目内的准实时的table,column,function等全量元数据信息,同时也提供了项目内近期的作业历史明细,供使用者自助查询使用。
通过元数据服务Information_Schema里面的作业历史表tasks_history视图,可以查询到准实时的项目作业历史明细。包括:项目名称、任务名称、Instance id、开始时间、结束时间、任务复杂度、任务CPU使用情况等字段。
备注:Information_Schema目前正在灰度中,即将全面开放。
2、获取作业的计费明细数据
用户可以通过费用中心账号总览消费记录去查询具体的消费情况。
同时,格式阿里云交易和账单管理OpenAPI为用户提供管理阿里云产品售卖和财资能力,通过该api可以程序化获取MaxCompute作业计费明细数据。
调用QueryUserOmsData接口(阿里云的账单系统OMS),可以查询到具体计量信息编号、数据分类、存储、SQL读取量、公网上下行流量等字段信息。
3、关联计费明细与作业明细
通过表关联,查询到需要计算的数据结果
这些数据可以通过作业ID与计费明细数据进行关联后,您就获取各个作业明细的费用信息(例如,SQL费用=数据扫描量*复杂度) ,从而可以开展不同视角的分析。
需要强调的是:MaxCompute的计费都是以阿里云费用中心的出账结果及费用明细为准。
三、具体实现步骤(含参考代码)
1.查询元数据服务里面的作业历史表tasks_history
例如,您登录访问的当前项目为 myproject1,在 myproject1 中,可以通过查询 INFORMATION_SCHEMA.tables 获得当前 myproject1 中所有表的元数据信息。
INFORMATION_SCHEMA 同时包含了作业历史视图,可以查询到当前项目内的作业历史信息,使用时注意添加日期分区进行过滤,例如。
查询历史表字段属性
如下如所示:
2.使用阿里云交易和账单管理API获取费用明细和分摊统计
方法1:手工下载上传方式
(一)首先在MaxCompute中创建结果输出表OMS表,建表语句如下:
方法一:手动从视图下载oms账单详细费用,将数据上传(tunnel upload)到odps对应输出表
手动下载步骤:https://help.aliyun.com/product/87964.html?spm=a2c4g.750001.list.245.5e907b138Ik9xM
进入阿里云用户中心:https://usercenter2.aliyun.com/home
返回旧版
费用中心>消费记录>使用记录
选择产品类型,填写使用期间,计算粒度,导出CSV格式
把oms数据定期取下来,然后上传到odps中创建的结果输出表(OdpsFeeDemo)
tunnel upload C:UsersDesktopaa.txt project.tablename ;
(二)进行表关联,将最终结果存储在上面创建的MaxComputeFee中
方法2:程序化API下载费用明细数据&上传到MaxCompute后分析
(一)在odps创建oms表OdpsFeeDemo,参考如下:
通过API下载OMS系统数据并上传到odps对于表格中
代码参考如下:
1) 服务启动类Application
2) 从odps接收数据ReceiveData
3) 将接收数据上传到MaxCompute项目里建好的oms表,类名:OdpsServer
4) 配置文件
5) 现在将数据上传到odps里面对应的表,然后进行关联
--------------------------------------
本文作者:圣远
原文链接:https://yq.aliyun.com/articles/713562?utm_content=g_1000072207
相关文章
-
李开复:未来几年,中国最赚钱的工作是什么?
文章来源:老铁商城2019-10-29 -
2019年全球十大突破性技术
文章来源:老铁商城2019-10-29 -
科学家为什么钟情艺术?因为数学和绘画、音乐有相似的美感
文章来源:老铁商城2019-10-20 -
价格上涨“劝退”用户,奈飞为何逆流而行?
文章来源:老铁商城2019-10-18 -
王思聪“股权遭冻结”又上热搜!王健林当初给的“练手资金”还好吗?
文章来源:老铁商城2019-10-18 -
滴滴宣布开放城市交通指数数据集 助力交通领域科研发展
文章来源:老铁商城2019-10-18 -
A16Z合伙人:那些“连错都谈不上”的技术预测
文章来源:老铁商城2019-10-18