2013-04-01 90 views
0

为检索Azure存储表中的1200个实体触发多少事务,并记住连续令牌。Windows Azure存储表中的事务和延续令牌

我读过“Windows Azure Tables在单个请求中最多返回1000个实体,并在有更多结果(剩余200个实体)可用时返回延续标记”。见(http://blog.smarx.com/posts/windows-azure-tables-expect-continuation-tokens-seriously)。

因为Azure根据no。我们通过云执行的交易; 我只想知道:一个请求会执行多少个事务,返回第1000个实体(行)结果后带有连续标记的1200个实体(行)?

+0

这不是说这个回答你的问题,而是......以每10万笔交易一分钱为代价,我怀疑交易成本会被计算+存储的成本拖垮,这样交易成本可能会赢得“ (如果有的话)将你的每月预算考虑在内。 –

+0

Thorks David回复。我读过很多你的文章。 那么,我正在处理1000K +实体(约2Lakhs到20Lakhs),每30秒更新一次。当这件事情出现时,我确实需要看看没有。的交易。并且Azure存储表的Continuation标记方面也... –

回答

3

多少交易将单个请求 回报说1200层的实体(行)与后第1000 实体(行)结果的延续标记来执行?

它实际上取决于。正如文档所述,Windows Azure Table returns up to a maximum of 1000 entities in a single request。这意味着,对于您的情况,最小交易次数为2,但最大交易次数可能为1200次。这完全取决于数据的分区方式和存储帐户的负载。您拥有的分区越多,您可能会收到每个请求的较少数据,从而导致更多的事务。同样需要考虑执行时间(服务器端),因为如果执行时间超过分配时间,服务将返回部分数据。

基于文档在这里:http://msdn.microsoft.com/en-us/library/windowsazure/dd179421.aspx,你可以期待一个延续令牌,如果一个或多个条件为真:

  1. 如果要返回的实体数量超过1000
  2. 如果服务器超时间隔已超过。
  3. 如果查询跨越分区边界。
+0

关于分区的好处。 –

+0

我有大约5-6个分区。 1200个实体是所有分区之一的一部分,我在where(partition_Key ==“partition_Key_1”)条件中筛选。所以Gaurav,你的答复仍然存在于这种情况下? 请尽快解决此问题.. 并感谢Gaurav让这个(隐藏的)信息出现在这篇文章中。希望这可能有助于少数新手。 –

+0

我会说是,尽管它可能不是1200笔交易,如上所述。如果您的数据没有跨越分区边界,那么您应该能够在2个事务中获得1200条记录,但是如果由于某种原因您的数据跨越了分区边界,那么您可以预期超过2个事务。 –