一、计量明细的介绍和使用
1.1导出用量明细数据
用量明细的参考文档
https://help.aliyun.com/document_detail/53057.html
费用账单>用量明细 可以看到费用明细下的用量明细,在右侧选择大数据计算服务MaxCompute(按量付费),并选择所有统计的时间段,以及计费粒度,填写验证码,选择导出CSV。
用户中心
用量明细
导出说明:
1.导出文件格式为CSV,您可以使用Excel等工具查看
2.如果导出文件中有错误提示,请按照提示重新操作.
3.如果导出记录过大,文件可能会被截断,请修改导出条件并重试.
全部菜单项
首页
产品
大数据计算服务MaxCompute(按量付费)
资金音理
计量规格:
大数据计算服务MaxCompute(按量付费)
收支明细
?
苗
使用时间:
2020-11-30
2020-11-30
费用账单
计量粒度:
小时
菱用账单
ROTC
看不清楚,换一张
RCVC
验证码:
成本账单
导出记录
导出CSV
月账单
用量明细
费用管理
费用分析
可以看到界面的正处于导出状态,稍等片刻,可以看到导出成功的状态,点击下载功能
aruladTORaLRU
28
8:0
港封日
用星
快上B豆
用量汗
采时已c图
用量转生
量调味
用量付庄
用遇习名
朵游
经过筛选后可以看到使用的业务流程主要为3个SQL任务
存惜(lyte)
项县绝短计品信息编号
SQu交互式分析取品
(ivte
结末时间
敬活分类
SQL话耳SOL
2020/11/300:30
ComeutationSal
maxcomol2020112916293330bahqaslm
11298467
2020/11/30031
2452083
ComcutationSql
maxcompl20201129163107308wmdy72m
2020/11/30031
1456039
maxcompl20201129163140250g4u1292
ComputationSql
1.2在MaxCompute创建用量明细的表
用量明细的表以及所有字段
CREATETABLE IF NOT EXISTS OdpsFee(ProjectId STRING COMMENT '项目编号',MeteringId STRING COMMENT '计量信息编号',Type STRING COMMENT '数据分类',Storage STRING COMMENT '存储(Byte)',EndTime STRING COMMENT '结束时间',ComputationSqlInput STRING COMMENT 'SQL读取量',ComputationSqlComplexity STRING COMMENT 'SQL复杂度',Upload STRING COMMENT '公网上行',Download STRING COMMENT '公网下行',ComputationCount STRING COMMENT 'MR/Spark作业计算(Core*Second)',SqlReadOTS STRING COMMENT 'SQL读取量_访问OTS(Byte)',SqlReadOSS STRING COMMENT 'SQL读取量_访问OSS(Byte)',StartTime STRING COMMENT '开始时间',OdpsSpecCode STRING COMMENT '计算资源规格',DataWorksID STRING COMMENT 'DataWorks调度任务ID');
在DataWorks创建表
查询
DWUSERINFOALLD
巴口OC8
43
CREATETABLEIFNOTEXISTSOdPSFEEC
STRINGCOMMENT项目编号
ProjectId
STRINGCOMIENT计量信息编号
MeteringId
STRINGCOMIMENT数据分类
Type
STRINGCOMMENT存储(Byte)
Storage
STRINGCOMMENT结束时间
50
EndTime
ComputationSqlInputSTRINGCOMENT'SOL读取量
51
ComputationSqicomplexitySTINGTL复杂度
52
UpLoadSTRINGCOMMENT?公网上行
53
DOwLoaDSTRINGCOMMENT网下行
54
COMPutATionCOUntSTINGCENTR/SaK作业计算(Cresecond)
SqIREADOTSSTRINGCOMENTSQL读取售_访问oTs(Byte)
SqIREADOSSSTRINGCOMMENT'SQL读取里_访问oSS(Byte)
STArtTimeSTRINGCMENT开始时间
odpsspecCodeSTRINGCOMMENT计算资源规格
DAtaMorKsIDSTRINGCOMMENT'DataHorks调度任务ID
60
61
D;
运行日志
ax
OX
2929-11-3015:81:56tarttoetabid;
28211315:81:561d:2823113887915558330728
ID2929113887015558398um28
CK
2929113015:81:58FO
232811315:81:58FOButcoDeofteshaco
2828113015:81:58F0--Lmocatianofsellcodcomletd
282811315:81:58Fshelnsucesfuy!
2828113815:81:58FOCmEnttaskTatusFos
2929113915:81:58FOCo5tLi5:89155
wltinyatst/zsh//Am
查看MaxCompute表是否创建成功
公共表
MaCompute
MaxComputegn
maxcomoute_git
0
odpsmarcomputegt
storeSales
+WUSERINFOAD
odps.maxcompute_gL
国
odsuseRinfod
odpsmarcomputegit...
R
odps.marcompute_git
odsfawJogd
丫
ods-enterprsesharebasic
odps.maxcompute_git.
但
Ptuserinfod
odps.marcompute_git..
OdpsfEedemo
odps.marcompute-gt
odpsmacomputegt
odpsfee
数据预货
列信息
分区信息
措述
列信息
器型
项目编号
string
proLcctid
计星信息编号
meterngLid
string
数系分
string
type
存错(Byte)
stning
storage
结束时间
string
endime
SQL诗取显
string
computationsqlIinput
SOL复杂度
computationsqlcomplexity
string
公网上行
string
中pload
公网下行
string
dowTload
string
MR/Spark作业计算(CoreSecond)
compuTationcount
SQL读取量访问ors(Byte)
string
sqlreadots
SQL读取量访问oss(Bye)
string
SqLreadoss
开始时间
string
计算资海规格
string
odpsspeccode
DataWorks调度任务ID
string
dataworksid
1.3将下载的计量明细数据到入到MaxCompute表中
在业务流程中中,鼠标指向表,并点击右键,选择导入数据
品
解决方案
国
业务选程
数舒质星检测模拟
WorKShoP-git
数据集成
MaxCompute
数锅开发
表
田田田田田田一
DWUSERINfOAILD锁定
odps.maxcompute_gitdev
odpsfee领定odps.maxcompute_gitdev
锁定odps.maxcompute_gitde
odser
编辑
odsIo
maxcompute_gitdey
Meta中查看
odsTa
maxcompute_git_dey
导入数据
is.maxcomputeqItDEv
odsUS
别除麦
中tUS数据同步导出数据
imaxcompute-gitdev
数据同步导入数据
资源
颜数
数据服务
通用
自定义
选择创建的表odpsFree
Projectid
五数卖质星岭测衡拟
MeteringId
WOr'ShOPOU
Type
Storage
欢保生城
12212我2020111811:4055
CorputationSq1i
oss同步节点我货定20201116163238
ROS月节点我锁202011-1616:3249
CorputationCoun
MarComPute
SqIReadOTsSTRI
燕新开发
SqIREadossSTRI
StartTimeSTRIN
DWUSERIN货DE202011171433:38
ODSLOGINTOd我锁定2020-11171433:25
导入表
IPUUREJNTO我锁E20201117143347
选择导入的表:
清选择
咪WUSEINfO定odpmaxcomuTtegILde
领定odpsmaxcomouRe.otdai
odsentapiseshareBasic
Odaloninfod
被写入
OdAogInfod锁
OdPSMaXcOMPUTE-OLDEN
被写入
TPtUSERInfo.D
odsrowoqd锁
oOPSmAXCOmOUREOLDEV
OdeUSEinfod领
odpsmarcompute-gift.dey
割PUIRod领
odpsmaxcomoute_gitdev
资源
生产
ods-enterprise_share_basL.
微保服务
OWUSEUNTOAILO
通用
odACntEIPriGEChAreBASL
20281113915921856mt2610
自定义
ID280811388781555
选择浏览点击本地下载的计量明细数据,选择原始字符集为UTF-8,可以看到数据在数据预览中显示
数据导入向导
上传本地文件
选择数据导入方式:
选择文件:
只支持.xtcsv和llog文件类型
132938300454065120201130135409.omsdatac
浏览
选择分隔符:
逗号
原始字符集:
UTF8
导入起始行:
首行为标题:
数据顶货
由于数据量太大,只展示前100行和50列
357675
2020-11
5723.16
longma
0
065839
2901:1
Storage
xcomPu
534218
9:13
te
357675
上一步
下一步
取消
二、DataWorks的API的介绍和使用
2.1DataWorks的API的介绍
参考文档,其中有DataWorks的内容介绍以及对应的限制,目前DataWorks的企业版可以使用DataWorks的API功能
https://help.aliyun.com/document_detail/175553.html
对应使用的API为ListNodes
日返力园
AR品名
API调用
QWIO
运电中心
LiLNeiheHoe
5CLBDo以ELSOK
Gaibasclnicong
+国
理代
Owneto
INOCEE
去抗行手别
火乐辣默冬
aon
实起读用
运行的环境:包:1-vtlhon.
1作中白的ID
世城冯,西是院兴所古的.红几,忘
上日)星nshanha
cn-hAngsk,无Ngn会
时无的C中P通自幼扭G
Emparttonliqun.c1
3379--
无二人的ID.
Gealoot
latlapiclnmierce
Ttef.afRns.Fql.0afencfrof1le
1769代t22
OP9S0L
云纳关出
npartcopalma8
瓦吕机.
aptlicc1assL1stRones
三日
ListNodes
API调用
要新时间:2020-11-1717:38:09
超罚门试力实用用小卜心作
话aLsNodeS获放节点的列衣.
Regionldo
研试
王间试
可以tORwlEye帅_装行资门,怎北警咨各扰底功听,CHwmlegwe可以周生录K代示
POLeCLIDO
例1.
ProlectEnv
请求数
关型
示例佰
猫还
足凸彰选
名梯
OwTerd
stig
艺执行的播作,
Acion
LiSsINades
亚多品费
发用
运行的环拍,包指DEVFOPROD.
PROD
stnng
ProlecEnv
1234
工作空口9ID.
Long
Prorecila
时甲
示围代代码
地适三足装专听在的地伤,丛东
(上海)cn-shangma,毕北3(家口)足
足
sung
ReOionld
cn-zhangliakou,无孟写Regionld,会0店
间用的endpolnt自万料析.
inportcon.aliyuncs.Defaultacsclient;
IwportconalyuncIcsclient;
鱼宁人的ID,
stnng
193379*
importcom.aliyurcs.exceptions.clientExceotion;
Smportcom.aliyuncsecionsererExcPon;
inportcom.aiiyuncs.rofiie.Defauitprofi
业牙流堂的名称
testbizName
BizName
Sting
inportcomtoople.eson.6on;
Saportjava.ut1.*
ODPSSOL
一点的关型
ProgramType
suing
importcom.aliyunch.datanorkspublic.odl218
页有节
PageNumber
lntegar
pubiicelassListodes
2.2创建MaxCompute表,以便将DataWorks查询的数据插入到MaxCompute表中,并在DataWorks界面执行
createTABLE IF NOT EXISTS nodeItem(nodeId BIGINT COMMENT '节点ID',nodeName String COMMENT '节点名称',cronExpress String COMMENT 'cron表达式',schedulerType String COMMENT '调度类型',programType String COMMENT '节点类型',ownerId String COMMENT '负责人ID',projectId BIGINT COMMENT '工作空间ID',repeatability Boolean COMMENT '是否可以重复运行',paramValues String COMMENT '额外的参数',description String COMMENT '节点描述信息',resGroupName String COMMENT '资源组名称');
2.3编写对应逻辑的执行代码
其中参考的MaxCompute的SDK文档为https://help.aliyun.com/document_detail/27844.html
其中如何获取项目空间的projectID:
进入DataWorks的控制台,点击工作空间配置
三订企出出店日2020于12月18日
灯尖电区
蛋重华市市1拼阳阳妇
定工作F间
百出员
业巴黄间
通成中超次制空中心心
2018年8月29日14291
进入数白地弘人入道阳
工作旺三80出赔
上村利网车版试
共i页
点击更多设置
工作空间配置
基本信息
MaxComputegit
工作空间名称
上传下载速率测试
显示名
标准模式(开发跟生产隔离)
模式
上传下载速率测试
猫述
高级设置
on
*启动调度周期
*能下载Selec结果
关闭
更多设置
可以查看到左上角工作空间的ID
配置
手本三性
工作空向ID:
凯日期:2019-092914:39:17
梅式:标佳旧式
工变空国名:ManComorteoiR
状考正品
负专人:
述:上传下就连品财试
示名:上传下五评品训试
调京三性
启用户期度:
默认出出自动三和次效:3
默认记度资讯组:
公共购供货组
认装成汽通组:
认出节自动三宾时动可府:2分钟
安能使成减认公共到药用
安全设言
尤汗子账马安更自己的节点夫任人:
成下式化华杀:
为能三名单月shel务河以ID地社家名):
IPI址L
代码逻辑
packagecom.git.cost; importcom.aliyuncs.DefaultAcsClient; importcom.aliyuncs.IAcsClient; importcom.aliyuncs.dataworks_public.model.v20200518.ListNodesRequest; importcom.aliyuncs.dataworks_public.model.v20200518.ListNodesResponse; importcom.aliyuncs.exceptions.ClientException; importcom.aliyuncs.exceptions.ServerException; importcom.aliyuncs.profile.DefaultProfile; importcom.google.gson.Gson; importjava.io.IOException; importjava.util.Date; importcom.aliyun.odps.Column; importcom.aliyun.odps.Odps; importcom.aliyun.odps.PartitionSpec; importcom.aliyun.odps.TableSchema; importcom.aliyun.odps.account.Account; importcom.aliyun.odps.account.AliyunAccount; importcom.aliyun.odps.data.Record; importcom.aliyun.odps.data.RecordWriter; importcom.aliyun.odps.tunnel.TableTunnel; importcom.aliyun.odps.tunnel.TunnelException; importcom.aliyun.odps.tunnel.TableTunnel.UploadSession; importjava.util.List; importjava.util.Map; publicclassGetOrderDetail { privatestaticStringaccessId=""; privatestaticStringaccessKey=""; privatestaticStringodpsUrl="http://service.odps.aliyun.com/api"; privatestaticStringtunnelUrl="http://dt.cn-shanghai.maxcompute.aliyun.com"; //默认情况下,使用公网进行传输。如果需要通过内网进行数据传输,必须设置tunnelUrl变量。//此处取值为华东2经典网络Tunnel Endpoint。privatestaticStringproject=""; privatestaticStringtable="nodeItem"; privatestaticList<ListNodesResponse.Data.NodesItem>dataList; publicstaticvoidmain(String[] args) { DefaultProfileprofile=DefaultProfile.getProfile( "cn-shanghai", "",// 您的AccessKeyID。"");// 您的AccessKeySecret。IAcsClientclient=newDefaultAcsClient(profile); /*获取指定业务流程的节点*/ListNodesRequestrequestListNode=newListNodesRequest(); requestListNode.setRegionId("cn-shanghai"); //project的IDrequestListNode.setProjectId(); requestListNode.setProjectEnv("PROD"); //业务流程的名称requestListNode.setBizName("workshop_git"); try { ListNodesResponseresponse=client.getAcsResponse(requestListNode); dataList=response.getData().getNodes(); System.out.println(newGson().toJson(dataList)); } catch (ServerExceptione) { e.printStackTrace(); } catch (ClientExceptione) { System.out.println("ErrCode:"+e.getErrCode()); System.out.println("ErrMsg:"+e.getErrMsg()); System.out.println("RequestId:"+e.getRequestId()); } // 该部分为准备工作,仅需执行一次。Accountaccount=newAliyunAccount(accessId, accessKey); Odpsodps=newOdps(account); odps.setEndpoint(odpsUrl); odps.setDefaultProject(project); try { TableTunneltunnel=newTableTunnel(odps); tunnel.setEndpoint(tunnelUrl); UploadSessionuploadSession=tunnel.createUploadSession(project, table); System.out.println("Session Status is : "+uploadSession.getStatus().toString()); TableSchemaschema=uploadSession.getSchema(); RecordWriterrecordWriter=uploadSession.openRecordWriter(0); Recordrecord=uploadSession.newRecord(); for (inti=0; i<dataList.size(); i++) { System.out.println(i); record.set("nodeId".toLowerCase(),dataList.get(i).getNodeId()); record.set("nodeName".toLowerCase(),dataList.get(i).getNodeName()); record.set("cronExpress".toLowerCase(),dataList.get(i).getCronExpress()); record.set("schedulerType".toLowerCase(),dataList.get(i).getSchedulerType()); record.set("programType".toLowerCase(),dataList.get(i).getProgramType()); record.set("ownerId".toLowerCase(),dataList.get(i).getOwnerId()); record.set("projectId".toLowerCase(),dataList.get(i).getProjectId()); record.set("repeatability".toLowerCase(),dataList.get(i).getRepeatability()); record.set("paramValues".toLowerCase(),dataList.get(i).getParamValues()); record.set("description".toLowerCase(),dataList.get(i).getDescription()); record.set("resGroupName".toLowerCase(),dataList.get(i).getResGroupName()); recordWriter.write(record); } recordWriter.close(); uploadSession.commit(newLong[]{0L}); System.out.println("upload success!"); } catch (TunnelExceptione) { e.printStackTrace(); } catch (IOExceptione) { e.printStackTrace(); } } }
2.4进入DataWorks界面可以查看到数据以及写入到MaxCompute的表中
selectfronnodeitcm;
运疗日志
杭果图
杭郑间]
杭门
OdLCOpe
TOpcRTdt门y
POROC
TE-sgrOLPNOME
PIOGFOMTYDE
TCPOTRAR
paFnMwpLuco
Goncqprc65
OOPSSOL
002300**7
NCPMAL
1329383004510651102672
ooPss0L
NORMAL
dwEcInTO_aILD002700?
4700003742069
NORMA
002800**7
mu
002700*5?
NORMN
0s东业书点
1329383004540651102672
NORMA
13203839004540651102672
002200**
NORMA
WOK寸NOP-SIO
700003742997
三、在DataWorks通过SQL任务计算得出整个业务流程的消费情况
3.1统计整个业务流程的消费情况
各个类型任务的计费方法:
https://help.aliyun.com/document_detail/112752.html
应为本次使用的业务流程为3个SQL任务,是使用标准版的MaxCompute的SQL作业,因此选择的计费公式如下
SQL关键字个数小于等于3,复杂度为1.
SQL关键字个数小于等于6,且大于等于4,复杂度
为1.5.
SQL关键字个数小于等于19,且大于等于7,复杂
度为2
使用标准版
计算输入数据量XSQL复杂度x单价
SQL关键字个数大于等于20,复杂度为4.
MaxCompute服
(0.3元/GB)
务的SQL作业
说明如果SQL关键字个数远高于20,会导致解
析消耗大量时间,且作业长期处于排队状态,
建议您优化SQL,控制SQL关键字个数.
执行统计的SQL语句
SELECT sum( CAST(ComputationSqlInput ASDOUBLE)/1024/1024/1024*ComputationSqlComplexity*0.3)AS sumcost FROM odpsfee WHERE projectid ='maxcompute_git'AND starttime >'2020-11-30'AND TYPE !='Storage'AND dataworksid IN(SELECT nodeid FROM nodeItem);
在DataWorks执行得出最后的结果
Selectfromnodeitem
地心心地地心心
Time2820-11-30
块主1
总结:
本文使用的方案,在其中使用的时候要注意几点:
1.如果在使用企业版DataWorks的API测试时,出现权限错误,需要提工单开通DataWorks的API功能。
2.在使用时要注意计算的类型以及计算方式,将本文的实践代码略作修改,另外统计时也要关注各个字段的单位,以及数据类型方便最后的统计计算。
3.要仔细查看对应的文档介绍,熟悉其使用方法以及对应的参数设置。
欢迎加入“MaxCompute开发者社区2群”,点击链接申请加入或扫描二维码