基本上,我想做的是,只有在我上一次查看时该分区中没有任何更改时,才将新的行/实体插入到表存储服务中。
如果你好奇的话,我考虑了事件溯源,但我认为这个问题比那更普遍。
基本上,我想读取部分或整个分区,并根据数据内容做出决策。为了确保在加载数据后分区中没有发生任何更改,插入应像正常的乐观并发控制一样:只有在分区中没有更改 - 没有添加、更新或删除行 - 的情况下插入才能成功。
通常在 REST 服务中,我希望使用 ETags 来控制并发,但据我所知,没有针对分区的 ETag。
我能想到的最好的解决方案是,在表中为每个分区维护一个单独的行/实体,其中包含时间戳/ETag,并使所有插入成为批处理的一部分,包括插入以及对此“时间戳实体”的有条件更新。然而,这听起来有点麻烦和脆弱。
Azure 表存储服务是否支持这种操作?