阿里云-表格存储服务最佳实践-D

阿里云-表格存储服务最佳实践-D

ID:35885529

大小:141.17 KB

页数:10页

时间:2019-04-22

阿里云-表格存储服务最佳实践-D_第1页
阿里云-表格存储服务最佳实践-D_第2页
阿里云-表格存储服务最佳实践-D_第3页
阿里云-表格存储服务最佳实践-D_第4页
阿里云-表格存储服务最佳实践-D_第5页
资源描述:

《阿里云-表格存储服务最佳实践-D》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、表格存储最佳实践表格存储/最佳实践最佳实践TableStore表的最佳实践这一节将会提供一些关于使用TableStore表的建议。设计良好的主键TableStore会根据表的分片键将表的数据切分成多个分片,表上配置的预留读写吞吐量会被均匀的分摊到多个分片上。举例来说,假设表被分成10个分片,表上的预留读吞吐量为100,那么每个分片上分得10个预留读吞吐量。因此,为了充分利用表上配置的预留读写吞吐量,应用程序需要让数据的分布和访问量的分布尽可能的均匀。TableStore会对表中的行按主键进行排序,合理地设计主键可以让数据在分片上的分布更加

2、均匀,从而能够充分的利用表上配置的预留读写吞吐量,降低成本。分片键的选取建议遵循以下几个原则:单个分片键中的数据不宜过大(不建议超过1GB)同一张表不同分片键中的数据在逻辑上独立访问压力不要集中在小范围连续的分片键中假设我们现在有这样一张表,里面存储的是某大学内所有学生使用学生卡消费的记录,主键列有学生卡ID(CardID),商家ID(SellerID),消费终端ID(DeviceID),订单号(OrderNumber)。同时我们有如下约定:每一张学生卡对应一个CardID,每一个商家对应一个SellerID。每一个消费终端对应Devic

3、eID,DeviceID在全局是唯一的。在每一个消费终端上产生的每一笔消费记录一个OrderNumber。一个消费终端产生的OrderNumber是唯一的,但是在全局范围内OrderNumber不唯一。例如不同的消费终端有可能产生两条完全不同的消费记录,但是它们的OrderNumber相同。9表格存储/最佳实践同一个消费终端产生的OrderNumber按时间排序,新的消费记录比老的消费记录拥有更大的OrderNumber。每笔消费记录均会被实时写入这张表中。那我们该如何设计TableStore表的主键,才能更高效的利用TableStore

4、呢?考虑表的分片键:使用CardID作为表的分片键使用CardID作为表的分片键是一个较好的选择。每天每张卡产生的消费记录数从总体上来讲是均匀的,每一个分片键中的访问压力也应该是均匀的。以CardID作为表的分片键可以较好地利用预留读写吞吐量资源使用SellerID作为表的分片键使用SellerID作为表的分片键不是一个较好的选择。因为学校内的商铺数量相对较少,同时一些商铺可能产生大量的消费记录成为热点,不利于访问压力的均匀分配使用DeviceID作为表的分片键使用DeviceID作为表的分片键是一个较好的选择。尽管每家商铺的消费记录数可

5、能相差较大,但是每天每台消费终端上产生的消费记录数是可预期的。消费终端每天产生消费记录的条数取决于收银员操作的速度。这就决定了一台消费终端产生的消费记录数是受限的。因此,使用DeviceID作为表的分片键也可以保证访问压力的相对均匀。使用OrderNumber作为表的分片键使用OrderNumber作为表的分片键不是一个好的选择。因为OrderNumber是顺序增长的,因此在同一段时间内产生的消费订单的OrderNumber的值会集中在一个较小的范围内,这些消费订单记录会集中写入到个别的分片,预留读写吞吐量没有得到高效的利用。如果必须使用

6、OrderNumber作为分片键,建议在OrderNumber上进行哈希散列,将哈希值作为OrderNumber的前缀,保证数据和访问压力的均匀综上,我们可以根据需求使用CardID和和DeviceID作为表的分片键,而不应该用SellerID和OrderNumber。之后再根据应用的实际需求来设计剩余的主键列。通过拼接的方式使用分片键TableStore建议单个分片下的数据量大小不超过1GB。如果您的表中单个分片键的所有行的总数据量大小可能超过1GB,在设计表时可以将原来的多个主键列拼接成分片键。9表格存储/最佳实践如上一小节中提到的学

7、生卡消费记录表的例子,假设主键为[DeviceID,SellerID,CardID,OrderNumber]。DeviceID是该表的分片键,单个DeviceID中所有行的数据量总大小可能超过1GB,可以将DeviceID,SellerID,CardID拼接作为表的第一个主键列(也就是分片键)。原来的表如下:DeviceIDSellerIDCardIDOrderNumberattrs16'a100'66661200001...54'a100'6777200003...54'a1001'6777200004...167'a101'28340

8、8200002...将DeviceID,SellerID,CardID拼接成分片键后的表如下:CombineDeviceIDSellerIDCardIDOrderNumberattrs'16:

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。