如何在AWS Timestream中获取已有记录的版本号?
AWS Timestream 获取记录当前版本号方法
Timestream的记录版本号为内置的version字段,默认不会在查询结果中返回,需要主动在查询语句中声明要返回该字段即可获取。
具体操作方法
- 编写查询语句时显式指定
version字段,参考查询示例:
SELECT time, measure_name, version, <自定义维度字段>, <自定义度量字段> FROM "<你的数据库名>"."<你的表名>" WHERE <目标记录的筛选条件>
不管是在AWS控制台的查询编辑器运行上述语句,还是通过各语言的SDK调用查询接口,都会在返回结果中包含对应记录的当前版本号。
Upsert 优化技巧
如果你只是需要实现upsert逻辑,不需要精确获取现有版本号,可以采用单调递增的版本号生成策略,省略提前查询版本的步骤:
- 直接使用当前Unix毫秒级时间戳作为版本号,只要保证写入操作的生成版本号是单调递增的,新写入的版本号自然会高于历史版本,即可完成upsert覆盖。
- 若对写入时序一致性要求极高,也可以使用全局单调递增序列号生成服务生成版本号,避免多实例写入时出现时间戳回退导致的写入失败。
注意事项
- 版本号为64位有符号整数,取值不能超出其允许范围。
- 若新写入记录的版本号小于等于现有记录的版本号,Timestream会直接忽略该条写入请求,不会返回错误。
内容的提问来源于stack exchange,提问作者ninsonTan
相关产品推荐
相关产品推荐

