用于Node.js的Windows Azure SDK表存储批处理更新

时间:2012-05-30 03:38:05

标签: windows node.js sdk azure

您好我使用的是Windows Azure SDK for node,但无法弄清楚如何使用此库进行批量更新:

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

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

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

干杯

1 个答案:

答案 0 :(得分:4)

在Windows Azure SDK for node github repo中,查看/examples/blog下的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。有关实体组事务的所有详细信息,请参阅this MSDN article