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

如何让CnosDB合并存储重复时序数据?

CnosDB v2.0.1 重复数据点合并问题及解决办法

根据CnosDB的插入语法,在v2.0.1版本中,写入相同时间戳+相同标签但不同批次字段值的数据点时,未按预期合并为单个数据点,而是生成多条记录。以下是完整测试过程及解决办法:


测试过程

1. 创建带标签的表

CREATE TABLE test (
   a BIGINT,
   b BIGINT,
   c BIGINT,
   TAGS(id,name)
);

2. 仅插入字段a的数据点

INSERT INTO test (TIME, id,a) VALUES('2023-03-28 16:00:00', '1',100);
SELECT * FROM test;

查询结果:

timeidnameabc
2023-03-28T16:00:00.0000000001100

3. 仅插入字段b的数据点

INSERT INTO test (TIME, id,b) VALUES('2023-03-28 16:00:00', '1',200);
SELECT * FROM test;

查询结果:

timeidnameabc
2023-03-28T16:00:00.0000000001100200

4. 插入a(值不变)、b(值不变)、c(新值)的数据点

INSERT INTO test (TIME, id,a,b,c) VALUES('2023-03-28 16:00:00', '1',100,200,300);
SELECT * FROM test;

查询结果:

timeidnameabc
2023-03-28T16:00:00.0000000001100200300

5. 仅插入字段a(值改变)的数据点

INSERT INTO test (TIME, id,a) VALUES('2023-03-28 16:00:00', '1',110);
SELECT * FROM test;

实际查询结果:

timeidnameabc
2023-03-28T16:00:00.0000000001100200300
2023-03-28T16:00:00.0000000001110

预期结果:

timeidnameabc
2023-03-28T16:00:00.0000000001110200300

6. 插入a、b、c(值均改变)的数据点

INSERT INTO test (TIME, id,a,b,c) VALUES('2023-03-28 16:00:00', '1',120,220,320);
SELECT * FROM test;

实际查询结果:

timeidnameabc
2023-03-28T16:00:00.0000000001100200300
2023-03-28T16:00:00.0000000001110220320
2023-03-28T16:00:00.0000000001120

预期结果:

timeidnameabc
2023-03-28T16:00:00.0000000001120220320

解决办法

CnosDB默认的INSERT是追加模式,不会自动合并相同主键(时间戳+标签)的记录。要实现更新合并效果,直接使用UPSERT语法即可:

  • 若存在相同时间戳+标签的记录,更新指定字段的值,保留未指定字段的原有值
  • 若不存在,执行插入操作

修正步骤5的操作

UPSERT INTO test (TIME, id,a) VALUES('2023-03-28 16:00:00', '1',110);
SELECT * FROM test;

查询结果(符合预期):

timeidnameabc
2023-03-28T16:00:00.0000000001110200300

修正步骤6的操作

UPSERT INTO test (TIME, id,a,b,c) VALUES('2023-03-28 16:00:00', '1',120,220,320);
SELECT * FROM test;

查询结果(符合预期):

timeidnameabc
2023-03-28T16:00:00.0000000001120220320

CnosDB v2.0.1已原生支持UPSERT语法,替换INSERT即可实现数据点的合并更新。


内容的提问来源于Stack Exchange,提问作者Munin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 05:08:12