表格存储是后付费产品,会根据一个账单周期内各个资源的实际使用量进行计量计费,所以不需要额外购买实例费用。

现在表格存储一共有 4 个维度的计量项:

  • 数据存储量
  • 预留读/写吞吐量
  • 按量读/写吞吐量
  • 外网下行流量

表格存储根据账单周期(小时)中的实际使用量来进行计量计费。

详解一:计算一个小时的使用费用

  • 场景

    在一个计费周期中,数据量为 50 GB,外网下行流量为 10 GB,在这个计费周期的一个小时内,在第 20 分钟的时候该实例下的所有表的预留读/写吞吐量从(1000,1500)调整到了(1200,800),这一个计费周期共使用了 50000 的按量读 CU 和 10000 的按量写 CU。

  • 计费公式
    该实例这一个小时的计费公式为:
    • 存储费用: 50 GB * 每 GB 每小时单价。
    • 流量费用: 10 GB * 外网下行流量单价。
    • 预留 CU 费用:
      • 这一个小时的平均预留读 CU 为:(1000 * 20 + 1200 * 40)/ 60 = 1133.3
      • 这一个小时的平均预留写 CU 为:(1500 * 20 + 800 * 40)/ 60 = 1033
      • 这一个小时的费用为: 1133.3 * 每小时读 CU 单价 + 1033.3 * 每小时写 CU 单价。
    • 按量 CU 费用:50000/10000 * 每万按量读 CU 单价 + 10000/10000 * 每万按量写 CU 单价。

    总费用为上述 4 项费用之和。

    数据存储量和预留读/写吞吐量都是精确到分钟级别,在计费周期结束的时候会对这个计费周期中的数据存储量和预留读/写吞吐量取平均值,来作为这个计费周期该资源的实际使用量。按量读/写吞吐量是精确到秒级别,统计此次计费周期中每秒使用的按量 CU,再做一次聚合。

    假如在前二十分钟中,预留读 CU 设置是 1000,在某一秒消耗了 2100 读 CU,那么这一秒按量读吞吐量就是 (2100 - 1000) = 1100。

详解二:计算一天的使用费用

  • 场景 1

    目前按传统方式购买资源的计费方式如下。

    上图模拟了一个应用程序一天的访问情况,为方便说明,假设这个应用程序的读/写访问情况是一致的。那么该应用程序为了保证在波峰的时候能够有足够的资源来提供读/写服务,用户就需要按波峰的业务量进行购买资源,假如换算成表格存储的服务能力单位,就是购买 200 CU 的预留读/写吞吐量。

    计费公式

    该用户一天的费用就是: 200 * 每小时预留读 CU 单价 *24 + 200 * 每小时预留写 CU 单价 * 24 + 24 小时的数据存储费用 + 24 小时的外网下行流量费用。

    即:4800 * 每小时预留读 CU 单价 + 4800 * 每小时预留写 CU 单价 + 24 小时的数据存储费用 + 24 小时的外网下行流量费用。

    表格存储提供了调整表预留读/写吞吐量的 API,用户可以随时调整每张表的预留读/写吞吐量大小,调整之后会在一分钟内生效,更关键的是调整表的预留吞吐量不会对业务造成任何影响。

    基于这种方式,用户可以在波峰的时候调大预留 CU 以适应业务增长需要,波谷的时候再降低预留 CU 以节省费用。

  • 场景 2

    假如用户当天使用表格存储的方式如下。

    24 个小时的周期中
    • 0~5 点:设置读/写 CU 为 30。5 个小时中,读、写各消耗的超出预留部分的 CU 为 100000 个。
    • 5~10 点:业务访问下降,调整读/写 CU 为 20。5 个小时中,读、写各消耗的超出预留部分的 CU 为 5000 个。
    • 10~12 点:业务访问开始上升,调整读/写 CU 到 45。2 个小时中,读、写各消耗的超出预留部分的 CU 为 10000 个。
    • 12~18 点:业务高峰到来,将读/写 CU 提高到 180。6 个小时中,读、写各消耗的超出预留部分的 CU 为 30000 个。
    • 18~24 点:访问高峰已经过去,将读/写 CU 下调到 20。6 个小时中,读、写各消耗的超出预留部分的 CU 为 50000 个。

    计费公式

    为方便计算,我们假设读写比例为 1:1,读/写预留 CU 调整方式一样,那么这一整天在 CU 上面的费用就是:
    • 读 CU 费用:

      (30 * 5 小时 + 20 * 5 小时 + 45 * 2 小时 + 180 * 6 小时 + 20 * 6 小时)* 每小时预留读 CU 单价 + (100000 + 5000+ 10000 + 30000 + 50000)* 按量读 CU 单价

      即 1540 * 每小时预留读 CU 单价 + 195000 * 按量读 CU 单价

    • 写 CU 费用:

      (30 * 5 小时 + 20 * 5 小时 + 45 * 2 小时 + 180 * 6 小时 + 20 * 6 小时)* 每小时预留写 CU 单价 + (100000 + 5000 + 10000 + 30000 + 50000) * 按量写 CU 单价

      即 1540 * 每小时预留写 CU 单价 + 195000 * 按量写 CU 单价

    相比场景 1中传统购买资源的方式,一天中节省费用为:

    4800 * 每小时预留读 CU 单价 + 4800 * 每小时预留写 CU 单价 - 1540 * 每小时预留读 CU 单价 - 19.5 * 每万按量读 CU 单价 - 1540 * 每小时预留写 CU 单价 - 19.5 * 每万按量写 CU 单价

注意事项

  • 按量读/写吞吐量的单价略贵于预留吞吐量的单价,所以建议用户根据业务动态合理的调整预留值,这样能够有效的降低成本。
  • 可以用过 SDK 将表的预留读/写吞吐量设置在比较低的水平,这样就会优先使用到免费额度。