【发布时间】:2014-07-26 17:56:40
【问题描述】:
对于以下场景,您有什么建议:
如果我在表中有 100.000.000 项(更准确地说是很多项),我每天如何获得这些项?
一旦项目被添加到表中,它们就不再被修改或删除。基本上只是插入和读取它们。
我的问题是无需遍历所有 100.000.000 个项目即可检索它们。
我应该将 PartitionKey 设为日期时间还是只是日期,然后通过 partionkey 检索,例如 22.10.2013?
你有什么推荐的?
【问题讨论】:
对于以下场景,您有什么建议:
如果我在表中有 100.000.000 项(更准确地说是很多项),我每天如何获得这些项?
一旦项目被添加到表中,它们就不再被修改或删除。基本上只是插入和读取它们。
我的问题是无需遍历所有 100.000.000 个项目即可检索它们。
我应该将 PartitionKey 设为日期时间还是只是日期,然后通过 partionkey 检索,例如 22.10.2013?
你有什么推荐的?
【问题讨论】:
如果您每天都在阅读项目,那么使用日期(只是日期部分,而不是完整的日期时间)作为 PartitionKey 是最好的解决方案。 当使用 Date 作为 Key 时,我更喜欢将其转换为 YYYYMMDD(或 YYYY-MM-DD)格式的字符串。
【讨论】:
使用日期时间作为 PartitionKey 是一种反模式,因为所有写入都在同一个分区中 - 这限制了可扩展性。 Azure 存储scalability targets 表示每秒可以对分区执行 2,000 次操作,但每秒可以对存储帐户执行 20,000 次操作。您可以通过在当天的一组存储桶中分片插入来解决此问题 - 并在日期前加上存储桶名称。
【讨论】: