Skip to content

账单自定义分析案例

使用前提

使用成本管家的前提需要开通成本管家。

账单数据字段说明

字段说明样例
BillingDate账期2022-11-06
BillingItem计费项PUT 及其他类型请求次数
BillingType计费方式其它
CostUnit财务单元未分配
Currency币种CNY
DeductedByCashCoupons优惠券抵扣0.0
DeductedByCoupons代金券优惠金额0.0
DeductedByPrepaidCard储值卡抵扣0.0
DeductedByResourcePackage资源包抵扣0
InstanceConfig实例详细配置
InstanceID实例 IDme-east-1%3Bstandard
InstanceSpec实例规格
InternetIP公网 IP 地址
IntranetIP内网 IP 地址
InvoiceDiscount优惠金额0.001
Item账单类型。包括 (1)SubscriptionOrder:预付费订单。(2)PayAsYouGoBill:后付费账单。(3)Refund:退款。(4)Adjustment:调账。PayAsYouGoBill
ListPrice单价1.020000
ListPriceUnit单价单位元/万次
NickName实例昵称test
OutstandingAmount未结清金额0.0
OwnerIDAccount ID12***3212
PaymentAmount现金支付0.0
PretaxAmount应付金额0.0
PretaxGrossAmount原始金额0.005
ProductCode产品代码oss
ProductDetail产品明细对象存储 OSS
ProductName产品名称对象存储
ProductType产品类型
Region地域上海
ResourceGroup资源组
ServicePeriod服务周期10800

| SubscriptionType | 订阅类型。包括:

  • Subscription:预付费。
  • PayAsYouGo:后付费。 | PayAsYouGo | | Tag | 标签 | 无 | | Usage | 使用量 | 0.005000 | | UsageUnit | 使用量单位 | 万次 | | Zone | 可用区 | cn-shanghai-b |

基础语法

新版成本管家以外表形式关联到 Logstore,查询时需要通过查询外表来查询账单数据。

  • 查询语句只能为星号() ,即竖线(|)前面只能为星号()。
  • 分析语句中的外表名称固定为 instance_bill,需统一将查询条件添加在 where 子句中。
sql
* | select xxx from instance_bill where xxx group by xxx limit xxx

例如查询 SLS 产品每日消费金额,查询语句如下所示。

sql
* |
select
  date_trunc('day', __time__) as day,
  sum(PretaxAmount) as cost
FROM  instance_bill
where
  productcode = 'sls'
group by
  day

示例 1:聚合查询

例如:获取 SLS 总的账单费用。

  • 查询和分析语句
sql
* |
select
  sum(PretaxAmount) as cost
FROM  instance_bill
where
  productcode = 'sls'
  • 查询和分析结果

image.png

示例 2:分组查询

例如:查询不同产品的账单费用。

  • 查询和分析语句
sql
* |
select
  productcode,
  sum(PretaxAmount) as cost
FROM  instance_bill
group by
  productcode
  • 查询和分析结果

image.png

示例 3:同比环比分析

例如:按照产品,与上月进行同比分析。

  • 查询和分析语句
sql
* |
SELECT
  diff [1] AS "本月费用",
  diff [2] AS "上月费用",
  diff [3] * 100 -100 as "同比增加%"
FROM (
    SELECT
      compare(amount, 604800) as diff
    FROM (
        SELECT
          sum(PretaxAmount) AS amount
        FROM instance_bill
      )
  )
  • 查询和分析结果

image.png

示例 4:分析产品计费项信息

例如:查询 SLS 产品每个计费项的消费金额与用量。

  • 查询和分析语句
sql
* |
SELECT
  BillingItem,
  sum(PretaxAmount) AS "消费",
  sum(Usage) as "用量"
FROM  instance_bill
where
  productcode = 'sls'
GROUP by
  BillingItem
  • 查询和分析结果

image.png

示例 5:按天统计计费项用量趋势

sql
* |
SELECT
	date_trunc('day', __time__) as t,
  BillingItem,
  sum(PretaxAmount) AS "消费",
  sum(Usage) as "用量"
FROM  instance_bill
where
  productcode = 'sls'
GROUP by
  BillingItem,
  t
ORDER by
	t
  • 查询和分析结果

image.png

示例 6:统计产品实例费用

例如:查询 SLS 产品每个实例的消费金额。

  • 查询和分析语句
sql
* |
SELECT
  InstanceID,
  sum(PretaxAmount) AS "消费"
FROM  instance_bill
where
  productcode = 'sls'
GROUP by
  InstanceID
  • 查询和分析结果

image.png

实例 7:按天统计产品实例费用趋势

sql
* |
SELECT
	date_trunc('day', __time__) as t,
  InstanceID,
  sum(PretaxAmount) AS "消费"
FROM  instance_bill
where
  productcode = 'sls'
GROUP by
  InstanceID,
  t
ORDER by
	t
  • 查询和分析结果

image.png

示例 8:外表联合查询

例如:联合查询账单数据与您自定义的外表数据。 样例中外表为 instance_name_table,您需要修改为实际关联的外部数据源。

  • 查询和分析语句
sql
* | with t1 as (
  select
    InstanceID,
    sum(PretaxAmount) as PretaxAmount
  FROM    instance_bill
),
t2 as (
  select
    InstanceID,
    InstanceName
  FROM    instance_name_table
)
select
  t1.InstanceID,
  t1.PretaxAmount,
  t2.InstanceName
FROM  t1
  left join t2 on t1.InstanceID = t2.InstanceID