预配置吞吐量
创建或者更新表时,您需要为读取和写入预配置吞吐容量。KTS会预留必要的机器资源,以满足您的吞吐量需求,同时确保性能的一致性和低延迟性。一个读取容量单位表示对大小为4KB的行每秒执行一次读取。一个写入容量单位表示对大小为4KB的行数据每秒执行一次写入。如果行数据大小超过4KB,就需要执行多次读取操作,需要读取的总数大小向上取整到4KB的下一个倍数。例如,要计算大小为10KB的数据读取操作数量,需要向上取整到4KB的下一个倍数(12KB),然后除以4KB,最后得到的结果是需要3次读取操作。
如果应用程序的读取和写入请求超过了表的预配置吞吐量,那么系统可能会限制这些请求。
- 读取容量单位
如果应用的数据大小小于4KB,则一次读取操作,消耗一个读取容量单位。你不能在一次读取操作中读取多行数据,即使这些行的大小加起来为4KB或者更小。例如,如果应用的单行数据大小为3KB,并且需要每秒从表中读取80行数据,那么就需要配置80(每秒读取次数)* 4KB(进位到4KB的下一个倍数) = 80个读取容量单位。如果应用的单行数据大于4KB,就需要将这一项目大小进位到4KB的下一个倍数。例如,如果项目大小为6KB,并且需要每秒执行100次读取,就需要配置100(每秒读取次数) * 2(6KB / 4KB = 1.5,然后向上取整)=200个读取容量单位。
执行Scan操作时,所考虑的是需要扫描的整体数据量,而不仅仅是返回的结果大小。对Scan来说,Table系统会扫描最多1MB的数据,然后返回满足条件的结果,并返回nextStartKey作为下次scan操作的起点。
- 写入容量单位
如果应用的行数据大小小于4KB,那么每个写入容量单位会在每秒分配1次写入。例如,如果应用的单行数据大小为512个字节,并且需要在每秒向表中写入100行数据,就需要预配置100个写入容量单位;如果应用的单行数据大小大于4KB,就需要将这一大小向上取整到4KB的下一个倍数。例如,如果应用的单行数据大小为6KB,并且希望每秒进行10次写入,则需要配置10(每秒写入次数)* 2(6KB / 4KB = 1.5,然后向上取整) = 20个写入容量单位。