我们有一个windows azure表存储系统,我们有各种实体类型在白天报告值,所以我们有以下分区和行键方案:
大约有4000到5000个实体。有6种实体类型,类型大致均匀分布。所以每人大约800'。
ParitionKey:entityType-Date
行键:entityId
每一行记录该特定日期的实体的值。这是目前JSON序列化的。
数据非常详细。
我们会定期在一个月或两个月内回顾这些分区中的值,具体取决于我们的网站用户想要查看的内容。
我们遇到的问题是,如果我们想查询一个实体的一个月的数据,我们发现我们必须通过entityId查询31个分区键。
这种情况最初很慢,但在第一次调用后,结果会被缓存。
不幸的是,该网站的性质是会有不同数量的不同查询,因此数据不太可能从缓存中获益很多。
我们显然可以使分区更大,也许是整整一周的数据,并将rowKeys扩展为entityId和date。
还有哪些其他选项可供选择,或者仅仅是Windows Azure表遇到相当高的延迟?
答案 0 :(得分:2)
一些选项包括
并行进行31次查询
对分区键范围进行单个查询,即
分区键> = entityType-StartDate和分区键< = entityType-EndDate和Row key = entityId。
根据您的数据,此查询可能比当前查询的延迟更短。