4

您好,我正在使用适用于节点的 Windows Azure SDK,但不知道如何使用此库进行批量更新:

https://github.com/WindowsAzure/azure-sdk-for-node/blob/master/lib/services/table/batchserviceclient.js

因为我找不到任何关于如何做到这一点的例子。是否有人使用 tableService.js 文件的 isInBatch 属性进行批量更新、删除和插入?

任何帮助或建议将不胜感激。

干杯

4

1 回答 1

4

在 Windows Azure SDK for node github repo中,查看下的博客示例/examples/blog。具体来说,blog.js。在这里,您将看到示例代码,从第 91 行开始,在实体组事务中,一系列博客文章被写入同一分区:

  provider.tableClient.beginBatch();

  var now = new Date().toString();
  provider.tableClient.insertEntity(tableName, { PartitionKey: partition, RowKey: uuid(), title: 'Post one', body: 'Body one', created_at: now });
  provider.tableClient.insertEntity(tableName, { PartitionKey: partition, RowKey: uuid(), title: 'Post two', body: 'Body two', created_at: now });
  provider.tableClient.insertEntity(tableName, { PartitionKey: partition, RowKey: uuid(), title: 'Post three', body: 'Body three', created_at: now });
  provider.tableClient.insertEntity(tableName, { PartitionKey: partition, RowKey: uuid(), title: 'Post four', body: 'Body four', created_at: now });

  provider.tableClient.commitBatch(function () {
    console.log('Done');

请注意关于分区的要点。这是您可以在单个事务中写入多个实体的唯一方法:它们必须位于同一分区中。

编辑- 正如@Igorek 正确指出的那样,单个实体组事务仅限于 100 个实体。此外,交易的整个有效负载不得超过 4MB。有关实体组事务的所有详细信息,请参阅此 MSDN 文章

于 2012-05-30T03:52:54.500 回答