Azure表存储批处理突然失败

时间:2012-05-03 10:41:41

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

将数据批处理到Azure表存储时,我遇到了一个奇怪的错误。

我有一个包含+350.000字符串的数组。我将每个字符串保存在一行中。它工作正常,直到第一个+50.000记录,然后Azure表存储开始抛出“无效输入类型”和“状态代码400”的异常。

当我批处理时,我一次批量处理10个项目,只需要一个简单的重试策略。

_TableContext.RetryPolicy = RetryPolicies.Retry(4, new TimeSpan(0, 0, 30));
_TableContext.SaveChanges(System.Data.Services.Client.SaveChangesOptions.Batch);

没有异步,没有平行主义。它在开发环境中运行良好。

哎呀...

2 个答案:

答案 0 :(得分:3)

Azure表存储中的物理限制为每行1MB,每字符串字段限制为64 Kb(千字节)。

此外,如果您将字符串存储为partitionkeys或rowkeys,则不允许使用某些字符。

来源: http://msdn.microsoft.com/en-us/library/dd179338.aspx

答案 1 :(得分:1)

错误是我自己的错误。我尝试使用相同的行和partionkey保存批次。当我改变它时,它完美地运作。

Azure FTW! :)