可以在服务器端Azure表存储上添加分区键

时间:2013-12-19 02:16:57

标签: azure azure-table-storage azure-storage

我注意到Windows Azure诊断程序使用UTC ticks主键作为一种方法,可以按时间范围轻松访问条目。我想为我的桌子实现一个类似的系统。

然而,一个主要问题是,将要进行上传的系统不一定会将时间同步到毫秒(更不用说ping时间差异),因此在本地设置分区键然后上传效果不佳(我有各种各样的竞争条件)。理想情况下,我想保证在任何表条目生成时,其分区键肯定大于或等于表中已有的任何分区键(因为这是时间的工作方式)。

我能想到确保这种保证的唯一方法是将“timestamp”分区键设置为服务器端。有没有办法让这种情况发生,例如通过服务器端脚本?

注意:我意识到在创建条目时已经添加了时间戳,但是这个时间戳没有为表编制索引。

1 个答案:

答案 0 :(得分:2)

我建议使用twitter / snowflake解决方案。我有非常相似的要求,这种方法对我来说很有效。

我使用了Flake ID Generator。它是基于twitter / snowflake的.net实现。

生成器可以独立部署到不同的Azure实例(或作为独立服务工作) - 我在每个Azure服务实例上独立生成ID。生成的64位ID可以直接排序并且始终是唯一的(即使同时来自不同的实例)。您还可以访问其源代码,以便在需要时也可以添加自定义项。

我希望这会有所帮助。