Windows Azure表访问延迟分区键和行键选择



我们有一个windows azure表存储系统,其中有各种在白天报告值的实体类型,因此我们有以下分区和行键场景:

大约有4000-5000个实体。共有6种实体类型,并且这些类型大致均匀分布。所以每个人大约800伊什。

ParityKey:entityType日期

行关键字:entityId

每一行都记录该特定日期实体的值。这当前是JSON序列化的。

数据相当冗长。

根据我们的网站用户想要查看的内容,我们会在一个月或两个月内定期查看这些分区中的值。

我们遇到的问题是,如果我们想查询一个实体的一个月的数据,我们发现我们必须按entityId查询31个分区键。

这在最初非常缓慢,但在第一次调用之后,结果会被缓存。

不幸的是,该网站的性质是会有不同数量的不同查询,因此数据不太可能从缓存中受益匪浅。

很明显,我们可以将分区扩大,即可能有整整一周的数据,并将rowKeys扩展为entityId和date。

我还有什么其他选择,或者只是Windows Azure表的延迟相当高?

一些选项包括

  1. 在并行中进行31个查询

  2. 对分区密钥范围进行单个查询,即

    分区键>=entityType StartDate和分区键<=entityType EndDate和Row key=entityId。

根据您的数据,此查询的延迟可能比您当前的查询少。

最新更新