【问题标题】:Windows Azure Table Storage int field incrementWindows Azure 表存储 int 字段增量
【发布时间】:2012-11-04 02:05:03
【问题描述】:

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

@smarx 这个功能会可用吗?

【问题讨论】:

标签: azure azure-storage azure-table-storage


【解决方案1】:

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

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

  • 增加检索到的值

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

【讨论】:

  • 我将这种方法命名为“kostyil”。但我希望在表存储中使用原子增量的本机实现。
【解决方案2】:

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

【讨论】:

  • 他正在寻找一个原子增量。今天没有这样的事情。
  • 但是我不能使用增量操作。只设置。我建议,更新表存储中的实体并非不可能。但此操作无法通过 REST API 进行。
【解决方案3】:

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

【讨论】:

  • 我知道现在不可能。我想与开发者分享我的建议:)
猜你喜欢
  • 1970-01-01
  • 2023-03-07
  • 2010-12-24
  • 2021-12-17
  • 1970-01-01
  • 2018-03-26
  • 2020-07-18
  • 2011-09-18
  • 2011-02-24
相关资源
最近更新 更多