Window Azure Table 存储查询性能

Window Azure Table Storage Query performance

所以我请求 运行 一份基于 azure table 存储的报告,经过漫长的提炼报告过程后我得到了数据。然而,当我完成对控制台应用程序的重构时,有些事情并不适合我。我使用 azure 的时间不长,但我有一个基本概念,即您选择用作 PartitionKey 和 RowKey 的内容将成就或破坏 table(最终)。

我运行 的查询使用时间戳(对我使用此字段的原因有限制)作为过滤器来提取一天的数据,因为 PartitionKey 和 RowKey 是未知的。据我了解,如果 运行 查询没有 PK 和 RK,这将导致查询 运行 贯穿整个 table(如果我错了请纠正我)。导致查询的获取时间很短。

使用时间戳让我很紧张,因为它属于 table,并且每次该条目发生变化时都会不断更新。考虑到这一点,报告可能需要几个小时才能完成 运行。所以这引出了我的主要问题。

如果在我的查询过程中一系列条目在获取过程中被更改会怎样?

以这个场景为例:

当我访问第 50 个条目时,条目 1-20 被更新,条目 80-100 发生变化。

我得到什么样的数据? (我相信我得到了 80-100 的更新条目,但仍然保留 1-20 的旧数据)。

如果我错了请纠正我,但是 运行 没有 PK 和 RK 的查询会导致查询的获取时间很短。

这是一个严重的反模式。最高效的查询是对 PK 和 RK 的点查询。提供 PK 至少会强制查询进入一个分区或计算节点。两者都不能保证完整的 table 扫描。与许多 NoSQL 存储一样,围绕查询性能设计数据模型至关重要。通过对 PK 和 RK 的控制,您可以将时间戳注入其中,同时保持对另一个反模式的仅追加写入到单个分区的意识。例如,如果您将 PK 基于每日或每小时存储桶并且仅将数据插入单个存储桶,就会发生这种情况。