Serverless读写计量单位以CU(Capacity Unit,能力单元)来计算,单行读操作返回数据大小大于4 KB,则消耗读CU为实际数据大小按4 KB整除向上取整。

请求计费

Serverless读写计量单位以CU(Capacity Unit,能力单元)来计算,单行读操作返回数据大小大于4 KB,则消耗读CU为实际数据大小按4 KB整除向上取整。

CU计量详解

  1. 单行读操作返回数据大小大于4 KB,则消耗读CU = 实际数据大小按4 KB整除向上取整。
  2. 对于Batch的多行读操作,消耗的读CU为所有单行读操作消耗的CU之和。每单行读操作消耗的读CU按规则1对该行进行计量。
  3. 如果是Scan的批量读操作,则消耗读CU = 读取到的所有行主键的数据大小与每行实际读取的属性列数据大小之和除以4 KB向上取整。这意味着如果Scan带Filter的操作在服务器上扫描了100行数据,返回了1行数据,计算CU使用的是这100行数据。

CU计量示例

在某一秒内发生了10次单行读操作。

其中5次读操作(每次操作读出当行数据大小为3.78 KB),读出的数据大小为(3.78 KB按4 KB向上取整)x5。

另外5次读操作(每次操作读出当行数据大小为4.26 KB),读出的数据大小为(4.26 KB按4 KB向上取整)x5。

则这一秒内10次单行读操作所实际消耗的读CU值为(5 x 1) + (5 x 2)= 15。3.78 KB向上取整计为1个读CU,4.26 KB向上取整计为2个读CU。

存储计费

HBase Serverless空间计费使用的是写入HBase的每个原始KeyValue大小,而非压缩后的表大小。用户可以调用org.apache.hadoop.hbase.CellUtil.estimatedSerializedSizeOf()函数来估算每个KeyValue的大小。由于HBase使用的是LSM(Log-structured merge-tree)存储结构。因此删除和TTL过期的数据不会立即删除,需要等待Compaction之后空间才会减少。

产品定价

目前Serverless有两种付费方式,一种是包年包月,一种是按量付费。在包年包月模式下,用户预购计算资源和存储资源。当使用的计算资源超过购买的CU量时,会遇到QuotaExceededException错误。当存储量超过购买量时,会导致Serverless实例写锁定。用户可以在实例界面随时调节购买的CU数和磁盘来应对业务变化在按量付费模式下,用户无需提前购买计算资源和存储资源,完全按照用户使用的资源情况收费,0请求0费用。

包年包月

计量项 价格
请求 0.15元/CU/每月
存储 0.36 GB/每月

例如:

  1. 购买了10CU,每个月需要付费1.5元。购买10CU的计算资源代表每秒可以最多请求10个CU,使用超过会遇到限流。每秒没有使用完的CU不会累积到下一秒。
  2. 购买了10 GB的存储空间,每月需要付费3.6元。当Serverless实例的空间使用超过10 GB,实例会被写锁定。如果存储空间不足10 GB,仍然需要每月付费3.6元。

按量付费

计量项 价格
请求 0.004元/万CU
存储 0.43 GB/每月

按量付费会按照小时为单位发出账单。比如一位用户在一小时内,请求消耗了3w个CU,并且在这个小时内最高使用的存储空间为20 GB,则这个小时的请求费用为 30000CU x 0.004元/万CU = 0.01元。存储费用为20GB x 0.00059 GB/小时(即0.43 GB/每月) = 0.01元。因此该用户这一小时的费用为0.02元。如果下一小时该用户没有请求,存储量仍为20GB,则该用户下一小时只需要付存储费用0.01元。

如何选择付费模式

对于请求量比较固定的用户来说,包年包月的价格会比较划算,比如购买10CU的包年包月的实例,计算资源一个月只需1.5元,每个月可以请求 10 x 3600 x 24 x 30 = 2592w CU。而在按量付费模式下,请求2592w CU需要 2592 x 0.004 = 10.37元。对于请求量波动比较大的用户来说,按量付费可以做到0请求0费用,在没有请求的时间段,用户可以无需为计算资源付钱。