taosdata / TDengine

High-performance, scalable time-series database designed for Industrial IoT (IIoT) scenarios
https://tdengine.com
GNU Affero General Public License v3.0
23.19k stars 4.83k forks source link

wal keep time #23369

Open graceZxy opened 10 months ago

graceZxy commented 10 months ago

问题: taos版本:3.0.3.1 服务器环境:window与Linux 描述: 根据官方文档,使用WAL_RETENTION_PERIOD关键字建库,设置1200 期望数据保留20分钟。 create database wc0 WAL_RETENTION_PERIOD 1200; 创建超级表 CREATE STABLE superstr (ts timestamp, hvalue binary(16000)) TAGS (device binary(64),item_code binary(64)); 新建订阅 create topic str_topic0 as select * from superstr;

然后每秒往表中写入数据,订阅通道建立。创建消费者一直消费数据,使用手动提交点位形式消费。 一段时间后,关闭消费者,但是依然每秒往表中写入数据。等待一小时后,再次启动消费者,发现订阅数据依然是从上次关闭的时间开始,而不是当前时间的20分钟前开始。

我想要在消费者再次启动时,如果停止超过20分钟,那么最多只能订阅到20分钟前的数据。请问该怎么处理?WAL_RETENTION_PERIOD关键字用法是否是控制数据订阅中的数据保留时长?

boxiaobj commented 10 months ago

建议:

  1. 升级至3.2.0.0后验证
  2. 提供tmq消费参数:auto.offset.reset
  3. 提供开发语言
  4. 提供taosd运行平台:Linux x64 or ...
graceZxy commented 10 months ago

开发语言:java 运行平台:window10、linuxx86_64 WAL_RETENTION_PERIOD关键字建库,设置1200 期望数据保留20分钟。请问这个参数的实际意义我理解的是否正确,还有这个参数是否能满足我的期望

graceZxy commented 9 months ago

升级到3.2.0.0后依然无法实现想要的效果。 1、版本3.2.0.0 2、相关参数: properties.setProperty(TMQConstants.ENABLE_AUTO_COMMIT, "false"); properties.setProperty(TMQConstants.AUTO_COMMIT_INTERVAL, "500"); properties.setProperty(TMQConstants.AUTO_OFFSET_RESET, "latest"); 3、开发语言Java 4、taosd运行linux x86_64,Centos7系统,使用docker容器部署;客户端在windows10