5

我正在考虑 Azure 表存储的巨大改进。是否可以通过特定操作向表存储提交查询,例如“通过 [PartitionKey=somestingPK] 和 [RowKey=somethingRK] 增加实体字段 [name] by [value]”?

@smarx 这个功能会可用吗?

4

3 回答 3

5

您可以使用启用了 ETAG 跟踪的表或页面存储来完成此操作。我使用这种技术为 Azure 表中的每个条目创建一个标识值。这个想法是这样的:

  • 从 Page Blob 中读取值,启用 ETAG 跟踪

  • 增加检索到的值

  • POST 检索到的值,如果存在 ETAG 冲突,请重新尝试整个操作。也许在这里使用指数退避算法来防止目标容器或分区过载。

于 2012-11-16T13:42:09.603 回答
1

是的,这是可能的——但可能不完全是你的想法。您正在寻找MERGE 操作。要使用它,您必须知道您要定位的实体(即实体的分区键和行键)。您不必检索实体来更新它,但您必须通过 REST 调用或使用批处理功能(有一些限制)专门处理每个实体。

于 2012-11-15T17:30:35.087 回答
0

这类似于UPDATEMySQL 的查询,目前无法在 Azure 表存储中执行。不确定这是否可以在这种数据库类型中实现,因为您必须首先获取整个实体,更新所需的字段,然后存储回数据库。

于 2012-11-15T14:12:52.977 回答