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