我考虑过Azure表存储的巨大改进。是否可以使用特定操作向表存储提交查询,例如“[value]增加实体字段[名称],其中[PartitionKey = somestingPK]和[RowKey = somethingRK]”?
@smarx会有这个功能吗?
答案 0 :(得分:5)
您可以使用启用了ETAG跟踪的表或页面存储来完成此操作。我使用此技术为Azure表中的每个条目创建标识值。这个想法是这样的:
从页面Blob中读取值,启用ETAG跟踪
增加检索值
POST检索到的值,如果存在ETAG冲突,请重新尝试重新执行整个操作。也许在这里使用指数退避算法来防止目标容器或分区过载。
答案 1 :(得分:1)
是的,这是可能的 - 但也许并不完全是你的想法。您正在寻找MERGE operation。要使用它,您必须知道您要定位的实体(即实体的分区键和rowkey)。您不必检索实体来更新它,但您必须根据REST调用或使用批处理功能(具有一些限制)专门针对每个实体。
答案 2 :(得分:0)
这类似于MySQL的UPDATE
查询,目前无法在Azure表存储中执行。不确定是否可以在这种数据库类型中实现,因为您首先获取整个实体,更新所需的字段,然后存储回数据库。