
timestamp_repair - 对时间戳列进行有效修复,支持插入、删除、不变等操作。 value_repair - 对值列进行智能修复,根据时间戳间隔和速度变化进行优化。 value_fill - 提供多种填充方法,快速填充值列的缺失数据。
数据质量问题
时序数据经常存在各种数据质量问题。在时序数据管理过程中,从数据的采集到最终将数据存储到时序数据库中,任何一个传感器故障或网络传输错误等问题都可能导致数据质量问题。对这些“脏数据“进行分析可能会产生误导性的结果。因此,在进行数据质量评估之后,我们需要对时间戳列和值列进行有效的填充和修复。
CnosDB 的时序数据修复方法
在CnosDB中,我们设计并实现了多种数据修复方法,让用户可以从多个维度评估时序数据的质量。
timestamp_repair(time, value, 'method=mode&start_mode=linear')
时间戳修复(timestamp_repair)
对于时间戳列,CnosDB使用timestamp_repair函数进行修复。该函数首先通过Mode、Cluster、Median等方法确定时间戳间隔interval,然后使用Linear、Mode方法确定修复后时间戳的开始值start。接下来,它采用动态规划算法对修复代价进行优化,支持插入、删除、不变三种操作,最终得到最优的修复序列。
timestamp_repair(time, value, 'method=mode&start_mode=linear')
值列修复(value_repair)
value_fill(time, value, 'method=linear')
值列填充(value_fill)
value_fill(time, value, 'method=linear')
使用示例
示例一:timestamp_repair
创建数据集
CREATE TABLE wzz (value DOUBLE);INSERT INTO wzz VALUES ('2024-01-01T00:00:00.000', 1.0),('2024-01-01T00:00:10.000', 2.0),('2024-01-01T00:00:19.000', 3.0),('2024-01-01T00:00:30.000', 4.0),('2024-01-01T00:00:40.000', 5.0),('2024-01-01T00:00:50.000', 6.0),('2024-01-01T00:01:01.000', 7.0),('2024-01-01T00:01:11.000', 8.0),('2024-01-01T00:01:21.000', 9.0),('2024-01-01T00:01:31.000', 10.0);
修复前:
SELECT * FROM wzz;

修复后:
SELECT timestamp_repair(time, value, 'method=mode&start_mode=linear') FROM wzz;

示例二:value_fill
创建数据集
CREATE table wzz(value double);INSERT wzz VALUES ('2024-01-01T00:00:02',acos(3)),('2024-01-01T00:00:03',101.0),('2024-01-01T00:00:04',102.0),('2024-01-01T00:00:06',104.0),('2024-01-01T00:00:08',126.0),('2024-01-01T00:00:10',108.0),('2024-01-01T00:00:14',acos(3)),('2024-01-01T00:00:15',113.0),('2024-01-01T00:00:16',114.0),('2024-01-01T00:00:18',116.0),('2024-01-01T00:00:20',acos(3)),('2024-01-01T00:00:22',acos(3)),('2024-01-01T00:00:26',124.0),('2024-01-01T00:00:28',126.0),('2024-01-01T00:00:30',128.0);
修复前:
SELECT * FROM wzz;

修复后:
SELECT value_fill(time, value, 'method=mean') FROM wzz;

示例三:value_repair
创建数据集
CREATE table wzz(value double);INSERT wzz VALUES ('2024-01-01T00:00:02',100.0),('2024-01-01T00:00:03',101.0),('2024-01-01T00:00:04',102.0),('2024-01-01T00:00:06',104.0),('2024-01-01T00:00:08',126.0),('2024-01-01T00:00:10',108.0),('2024-01-01T00:00:14',112.0),('2024-01-01T00:00:15',113.0),('2024-01-01T00:00:16',114.0),('2024-01-01T00:00:18',116.0),('2024-01-01T00:00:20',118.0),('2024-01-01T00:00:22',100.0),('2024-01-01T00:00:26',124.0),('2024-01-01T00:00:28',126.0),('2024-01-01T00:00:30',acos(3));
修复前:
SELECT * FROM wzz;

修复后:
SELECT value_repair(time, value, 'method=screen') FROM wzz;

通过这些示例,您可以更好地理解CnosDB提供的时序数据修复功能,并在实际应用中加以运用。如果您有任何其他问题,欢迎随时询问。更多内容请参考:https://docs.cnosdb.com/docs/reference/sql/functions/repair。
参与CnosDB社区交流群:
扫描下方二维码,加入CC进入CnosDB社区进入社区交流,CC也会在群内分享直播链接哒



「 CnosDB」 Media Gallery
「诺司时空」媒体画廊~


CnosDB
关注后记得星标「诺司时空」哦~


🚪由此下方【阅读原文】即可传送CnosDB开源社区🔜🎟 各位爱码士🧙♂️尽情享受开源世界吧!
文章转载自CnosDB,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。















