You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TDengine KEEP参数对时间戳写入的限制规则及使用方法咨询

TDengine KEEP参数用法及时间戳范围限制说明

KEEP参数的核心作用

KEEP参数用于定义数据库中数据文件的最长保留天数,达到该时长的历史数据会被系统自动回收清理,无需用户手动执行删除操作,是时序数据生命周期管理的核心配置项。

KEEP参数对写入时间戳的限制规则

TDengine写入数据时会对时间戳做合法性校验,KEEP参数决定了可写入时间范围的左边界,搭配默认的未来时间偏移限制,完整的校验规则如下:

  • 可写入的最早时间戳 = 服务器当前时间 - KEEP配置的天数,早于该时间的历史数据会被判定为超出范围,写入失败
  • 可写入的最晚时间戳默认 = 服务器当前时间 + 2天,晚于该时间的未来数据默认也会写入失败,该限制可通过建库时的FUTURE_TS参数自定义调整,单位为天。

对应现象的原因解释

首次建库设置KEEP 10时,执行插入操作的服务器时间约为2021-08-31 10:28:

  1. 最早可写入时间为2021-08-21 10:28左右,2021-08-21 10:28:53.521、2021-08-11 10:28:53.521两个时间戳均早于该边界,因此写入报错
  2. 最晚可写入时间为2021-09-02 10:28左右,2021-09-20 12:28:53.521远晚于该边界,因此写入报错
    将KEEP调整为365天后,最早可写入时间变为2020-08-31左右,两个历史时间戳均落在合法范围内,因此可以正常写入;但未来时间偏移的默认2天限制没有变更,2021-09-20仍然超出最晚可写入范围,所以依然报错。

业务适配建议

如果场景需要写入更远期的未来时间,可在建库时自定义FUTURE_TS参数,示例配置如下:

CREATE DATABASE IF NOT EXISTS db_keep KEEP 365 FUTURE_TS 30 PRECISION 'ms';

以上配置允许写入当前时间前365天到未来30天范围内的时间戳数据。

内容的提问来源于stack exchange,提问作者Ray Shown

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 23:15:01