樽前做剧莫相笑,我死诸君思我狂
指定主键的前缀范围,可以实现对主表的范围扫描(GetRange),查询范围的指定必须和主键范围保持一致。如果查询范围无法表示成主键前缀的形式,则可以使用二级索引重新组合字段顺序。相比范围查询(GetRange)加过滤器(filter)的方式,二级索引可以大大减少扫描数据量,提升查询速度。
# 前言 信息爆炸的浪潮下,单应用的数据量呈指数级增长,对海量数据进行实时分析的场景日趋广泛。从管理大量设备的监控指标,到勾勒目标用户画像,从突发新闻的舆情监控,到可视化呈现业务规律以供BI决策,都对“实时”、“快速”地分析海量数据提出更高的要求。
# 背景 订单系统在各行各业中广泛应用,为消费者、商家后台、促销系统等第三方提供用户、产品、订单等多维度的管理和查询服务。为了挖掘出海量订单数据的潜能,丰富高效的查询必不可少。然而很多时候并不能给出完整准确的查询关键字,例如,只知道收货人姓氏,或是产品名称部分关键字,或是根据收货人手机尾号找到订单,我们将这类查询归为“模糊查询”。
表格存储是阿里云提供的一个分布式存储系统,可以用来存储海量结构化、半结构化的数据。数据存储后就需要查询出来满足业务需求,但是有时候一次请求可以返回的数据量有限,不能返回完所有的数据,那这个时候就需要通过多次查询来返回需要的数据,这就是我们接下来要讲的“翻页”。
对主表中需要查询的列(Column)建立多元索引,即可通过该列的值查询数据。索引列分为基本类型和复合类型,本文详细介绍两种复合类型——数组类型(array)和嵌套类型(nested)的使用。
多元索引会分布式地将数据打散存储在不同机器上。通过指定路由,您可以有的放矢地定向搜索,在指定的一个数据分区上执行查询,而不是所有数据分区,有效提升了查询吞吐量,减少长尾对延迟的影响。本文抽丝剥茧,介绍分布式模型中路由的原理,如何使用路由来加速查询。