TableStore的注意事项

公司使用阿里的 TableStore(以下简称 TS) 已经有些日子了。这周仔细翻阅了一下 TableStore 的官方文档。现对 TableStore 做一些总结。

我们先来了解一下什么是 TableStore。表格存储(Table Store)是阿里云自研的 NoSQL 多模型数据库,提供海量结构化数据存储以及快速的查询和分析服务。表格存储的分布式存储和强大的索引引擎能够提供 PB 级存储、千万 TPS 以及毫秒级延迟的服务能力。

接下来我们来看看 TS 给我们提供了一些什么样的功能,以及这些功能对应的一些限制。

日常操作

我们首先来看看日常操作(增删改查)。对于日常操作,官方提供了单行操作和多行操作(批量操作)。对于批量操作,官方可能出于安全或者技术上的考虑,将很多操作都进行了数量的限制,这些限制会使得我们在编写代码时变得麻烦。

日常操作中需要注意的点如下:

1.更新和删除的操作都只能根据主键列进行。也就是如果你要更新或者删除某行数据,只能先查找出该行数据的主键,然后再根据该行主键去更新或删除。而无法直接通过某些组合的条件去做更新或删除的操作。

2.范围读操作时,一次操作请求读取的行数不能超过 5000 行(4 MB)。

3.批量读操作时,一次操作请求读取的行数不能超过 100 笔。

4.批量写操作时,一次操作请求写入行数不能超过 200 笔,数据大小不能超过 4 MB。同时,TS 无法保证批量操作一定都会执行成功,也就是如果 200 笔,有一笔失败了,你需要自己对失败的这笔数据进行处理。

5.在没有索引的情况下,查询表中数据的总行数是件非常麻烦的事情,需要使用范围读,自己去遍历查询。

接下来我们来看看 TS 提供的索引功能。TS 为我们提供了两种索引,一种是二元索引,一种是多元索引。二元索引类似于 MySQL 的索引,多元索引类似于 Solr 的索引。

二元索引

二元索引可以在指定列上建立索引,生成的索引表中数据按用户指定的索引列进行排序,主表的每一笔写入都将自动异步同步到索引表。在很多场景下,我们需要对表的属性列、或者非首列主键进行条件上的查询,这个时候就可以用到二元索引。

二元索引中需要注意的点如下:

1.查询时,如果需要返回的属性列不在索引表中,需要反查主表。相当于,我们需要对查询出来的数据,再做遍历,然后去主表中查询。实际使用起来还是挺麻烦的。

2.TS 的索引中暂时没有类似于 MySQL 的唯一索引的概念,如果你希望某一字段的值全局唯一,你只能将该字段设置为主键。

多元索引

多元索引支持以下三种索引方法。1.倒排索引:基于建立了倒排索引的属性列,可以实现多字段自由组合的 ad-hoc 查询。2.多维空间索引:表格存储基于多维空间索引提供了地理位置的查询能力。3.列式正排索引:可以更好地支持排序、统计聚合等功能。

基于上述三种基础索引能力,多元索引提供很多其他的索引功能。非主键列的查询、多字段自由组合查询、地理位置查询、排序等等,详情请见官网。另外在 TS 的控制台,可以直接下查询条件去测试这些索引的查询方法。

关于查询的功能,其实都挺好理解的,大家自己测试一下就可以知道大致的一些用法。这边有个稍微需要提一下的是,建立多元索引时,可以选择分词字符串,分词字符串又分为单字分词和多层语义分词。单字分词,中文会按字拆分,英文会按照空格拆分;多层语义分词会根据下划线拆分。官网暂时没有这两个分词规则的文档,是我自己测试后给出的定义,最终以官方文档为准。

收费

最后是关于收费的问题,我个人在这个方面也是比较困惑的,官方给的价格表不是很好理解。查看最近的消费明细,一个多元索引,每个小时费用是0.05元。给大家做个参考。

关于本文提到的一些限制,都是通过官网文档或个人测试后得到的结果,大家最终以官方最新文档为准。如果有不准确的地方,欢迎大家指出。

参考文档:
https://help.aliyun.com/document_detail/91524.html?spm=a2c4g.11186623.6.916.13203d76r16QMK

https://help.aliyun.com/product/27278.html?spm=a2c4g.11186623.6.540.39041b82N7FXbs

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1.亚马逊购物的成功,源于贝索斯的哲学,更归功于他的第一性原理,以客户体验感受为第一! 2.十年前,亚马逊说自己是...
    缘享阅读 3,434评论 0 0
  • 我现在是想写什么就写什么,没那么多格式,规章。 我的家乡有山有水,我是个农村娃儿。 小时候读二年级的时候...
    虞己阅读 1,697评论 0 0
  • 一个人总要一个人走陌生的路,看陌生的风景,听陌生的歌。 我们都在渐渐长大,渐渐成熟,渐渐的我们开始有...
    红橙夏雨阅读 3,767评论 9 4
  • 难过怎么讲的清楚 失落如何身同感受 慢慢开始怀疑 我是否经历过从前 就算可以回忆过往 要怎样才能回到当初 谁来告诉...
    晚熟的柿子阅读 1,445评论 0 0

友情链接更多精彩内容