Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
可以在服务器端Azure表存储上添加分区密钥_Azure_Azure Table Storage_Azure Storage - Fatal编程技术网

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

可以在服务器端Azure表存储上添加分区密钥,azure,azure-table-storage,azure-storage,Azure,Azure Table Storage,Azure Storage,我注意到Windows Azure Diagnostics使用UTC ticks主键作为一种方法,可以方便地按时间范围访问条目。我想为我的表实现一个类似的系统 然而,一个主要的问题是,将要进行上传的系统不一定会将其时间同步到毫秒(更不用说ping时间差),因此在本地设置分区键然后上传不起作用(我有各种各样的竞争条件问题)。理想情况下,我想保证,每当创建一个表条目时,它的分区键一定会大于或等于表中已有的任何分区键(因为时间就是这样工作的) 我认为确保这种保证的唯一方法是在服务器端设置“timest

我注意到Windows Azure Diagnostics使用UTC ticks主键作为一种方法,可以方便地按时间范围访问条目。我想为我的表实现一个类似的系统

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

我认为确保这种保证的唯一方法是在服务器端设置“timestamp”分区密钥。是否有某种方法可以实现这一点,例如通过服务器端脚本

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

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

我用过。它是基于.net实现的

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


我希望这会有所帮助。

这种事情在Azure表存储中是不可能实现的——目前还没有比服务器端脚本更好的东西。但是,“主键”的概念实际上也不适用。您可能需要查看节点之间的某种程度的时间同步,这在分布式系统中非常常见。对不起,主键是一个输入错误-我指的是分区键。这正是我要查找的!