【问题标题】:Azure Table Storage Batch Row Key LookupsAzure 表存储批处理行键查找
【发布时间】:2014-01-28 01:05:04
【问题描述】:

我尝试使用 CloudTable::ExecuteBatch(new TableBatchOperation{operation1, operation2}); 每个操作都是一个检索操作。有问题的 sn-p 如下所示:

var partitionKey = "1";

var operation1 = TableOperation.Retrieve(partitionKey, "1");
var operation2 = TableOperation.Retrieve(partitionKey, "2");

var executedResult = ExecuteBatch(new TableBatchOperation{operation1, operation2});

我收到一个异常,说在批处理执行中不能有任何检索操作。有没有办法解决这个问题,或者异步执行是处理多个分区键、行键查找的最佳方法?对于我的用例,我必须同时按分区键和行键查找最多 3 个不同的行。

【问题讨论】:

    标签: azure azure-table-storage


    【解决方案1】:

    是的,批处理操作有一定的限制,不包括GETS。 如果分区键保持不变,您可以尝试此处概述的范围查询。

    Windows Azure table access latency Partition keys and row keys selection

    否则,您可以并行查询。

    【讨论】:

    • 哎呀,我把这个问题骗了。我不能真正查询一系列行键,因为我最终可能想要分区中的第一个和最后一个键。我认为并行查询可能最终成为最好的方法。这与对 azure 的异步调用相同吗?如果不是,你能告诉我或指出一个有区别的来源吗?您能否将此链接(或更好的链接)添加到您的答案中以供以后的访问者使用:social.msdn.microsoft.com/Forums/windowsazure/en-us/…
    • 是的,并行调用是异步的,但需要同时进行才能并行。应该有很多并行查询的例子。您还可以考虑使用 TPL,因为它是一种从直接使用线程中抽象出来的好方法。 msdn.microsoft.com/en-us/library/dd537609.aspx。如果您只需要运行 3 个返回单行的查询,则并行化可能无法提供最佳性能,而顺序处理可能就足够了。如果您有很多并行调用和/或它们执行复杂查询并返回大量行,则并行调用更有意义。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-05
    • 1970-01-01
    • 2022-01-15
    相关资源
    最近更新 更多