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

时间:2014-01-15 21:57:07

标签: azure azure-table-storage data-partitioning

我们有一个windows azure表存储系统,我们有各种实体类型在白天报告值,所以我们有以下分区和行键方案:

大约有4000到5000个实体。有6种实体类型,类型大致均匀分布。所以每人大约800'。

ParitionKey:entityType-Date

行键:entityId

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

数据非常详细。

我们会定期在一个月或两个月内回顾这些分区中的值,具体取决于我们的网站用户想要查看的内容。

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

这种情况最初很慢,但在第一次调用后,结果会被缓存。

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

我们显然可以使分区更大,也许是整整一周的数据,并将rowKeys扩展为entityId和date。

还有哪些其他选项可供选择,或者仅仅是Windows Azure表遇到相当高的延迟?

1 个答案:

答案 0 :(得分:2)

一些选项包括

  1. 并行进行31次查询

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

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

  3. 根据您的数据,此查询可能比当前查询的延迟更短。