CnosDB:深入理解时序数据质量函数

news2024/9/23 11:14:48

在CnosDB中,我们设计并实现了计算数据质量的多个指标,这些指标可以从多个维度评估时序数据的质量,对于时间戳列,我们考虑数据的缺失点、冗余点和延迟点。对于值列,我们考虑数据的异常值、范围、变化、速度和加速度。

CnosDB:深入理解时序数据质量函数

数据质量问题会对数据应用造成巨大影响,严重困扰着信息社会的各个领域。据统计,全球财富1000强公司中超过25%的关键数据存在错误。2009年,戴尔台湾网站将4800元新台币的19寸显示器以500元新台币售出,8小时内下单140万台,造成直接经济损失达60亿新台币。英国一家电话公司因数据错误每年损失6亿英镑。

时序数据的获取、存储、传输和计算过程中均可能产生大量错误,如数据不完整、不一致等。其来源和形式上的多样使得数据有更大的可能产生不一致和冲突,数据的更新也会导致过时和不一致数据迅速产生。特别是在物联网场景中。在时序数据管理过程中,从数据的采集到最终将数据存储到时序数据库中,任何一个传感器故障或网络传输错误等问题都可能导致数据质量问题。在没有事先评估数据质量的情况下对脏数据进行分析可能会产生误导性的结果。

CnosDB 是一个专注于时序数据处理的数据库,旨在解决时序数据存储与分析问题,为用户提供高效的时序数据管理与查询便利。在CnosDB中,我们设计并实现了计算数据质量的多个指标,这些指标可以从多个维度评估时序数据的质量,对于时间戳列,我们考虑数据的缺失点、冗余点和延迟点。对于值列,我们考虑数据的异常值、范围、变化、速度和加速度。在CnosDB中,这些指标能通过聚合函数进行计算,其中包括以下四个函数:

completeness

用途

函数 completeness 用于计算时间序列的完整性,其衡量的是数据不缺失的比例。例如,网站日志的日访问量(即COUNT聚合值)就是一个记录值,若平时的日访问量在1000左右,突然某一天降到100了,就需要检查一下数据是否缺失了。

算法简述

函数 completeness 首先统计数据的行数 cnt ,然后考虑了数据列中可能出现的 NaN 和 Inf 的情况,对其进行线性平滑处理,同时统计上述两种特殊值计数 specialcnt ,再通过扫描数据统计缺失计数 misscnt,则完整性 completeness 的计算公式:1 – \frac{misscnt + specialcnt} {cnt + misscnt}。值为0~1之间的数值,越靠近1表示质量越好,越靠近0表示质量越差。

函数用法

completeness(time, value)

参数

  • time:Timestamp

  • value:BIGINT / BIGINT UNSIGNED / DOUBLE

返回类型

  • DOUBLE

示例

创建表 wzz:

CREATE table wzz(value double);
INSERT wzz VALUES (1,  12.34), (3, 34.54 ), (4, 1.43), (6, 14.03), (10, 12.30), (13, 11.54), (14,  112.20), (16, 14.44), (18,  134.02), (19, 116.34), (22, 1234.45),  (24,10.36), (26, 124.21),  (31, 6.34), (33, acos(12345));

最后一个数据中的 acos(12345) 表示NaN。

SELECT * FROM wzz;

插入数据后,表内数据为:

    +-------------------------------+---------+
    | time                          | val     |
    +-------------------------------+---------+
    | 1970-01-01T00:00:00.000000001 | 12.34   |
    | 1970-01-01T00:00:00.000000003 | 34.54   |
    | 1970-01-01T00:00:00.000000004 | 1.43    |
    | 1970-01-01T00:00:00.000000006 | 14.03   |
    | 1970-01-01T00:00:00.000000010 | 12.3    |
    | 1970-01-01T00:00:00.000000013 | 11.54   |
    | 1970-01-01T00:00:00.000000014 | 112.2   |
    | 1970-01-01T00:00:00.000000016 | 14.44   |
    | 1970-01-01T00:00:00.000000018 | 134.02  |
    | 1970-01-01T00:00:00.000000019 | 116.34  |
    | 1970-01-01T00:00:00.000000022 | 1234.45 |
    | 1970-01-01T00:00:00.000000024 | 10.36   |
    | 1970-01-01T00:00:00.000000026 | 124.21  |
    | 1970-01-01T00:00:00.000000031 | 6.34    |
    | 1970-01-01T00:00:00.000000033 | NaN     |
    +-------------------------------+---------+

查询时序数据的完整性:

SELECT completeness(time, value) FROM wzz;
    +----------------------------------+
    | completeness(wzz.time,wzz.value) |
    +----------------------------------+
    |  0.8235294117647058              |
    +----------------------------------+

consistency

用途

函数 consistency 计算时间序列的一致性,其衡量的是时序数据均匀分布的不密集冗余的比例。例如,气象站的冗余温度传感器可能会造成站点的数据重复采集等。

算法简述

同函数 completeness ,经过缺失值填充后,通过扫描数据统计出冗余计数 redundancy ,则一致性 consistency 的计算公式:

1 – \frac{redundancycnt} {cnt}。值为0~1之间的数值,越靠近1表示质量越好,越靠近0表示质量越差。

参数

  • time: Timestamp

  • value: BIGINT / BIGINT UNSIGNED / DOUBLE

返回类型

  • DOUBLE

示例

建立的表即为函数completeness中示例的表wzz。查询时序数据的一致性:

SELECT consistency(time, value) FROM wzz;
    +---------------------------------+
    | consistency(wzz.time,wzz.value) |
    +---------------------------------+
    |  0.8666666666666667             |
    +---------------------------------+

timeliness

用途

函数 timeliness 用于计算时间序列的时效性,其衡量的是时序数据按时到达不延迟的比例。例如监控数据的时效性场景很多,包括汇聚值报警、查看指标的历史趋势图、实时的数据报表(天/周/季/年的同/环比)、趋势异常检测以及历史数据离线分析等,可以看到,每种场景的查询数据量、数据的分布以及对数据时效性的需求不尽相同,时序数据库需要在这些场景下都能够高效地获取数据。

算法简述

同函数 completeness ,经过缺失值填充后,通过扫描数据统计出延迟计数 latecnt ,则时效性 timeliness 的计算公式:

1 – \frac{latecnt}{cnt}。值为0~1之间的数值,越靠近1表示质量越好,越靠近0表示质量越差。

参数

  • time: Timestamp

  • value: BIGINT / BIGINT UNSIGNED / DOUBLE

返回类型

  • DOUBLE

示例

建立的表即为函数completeness中示例的表wzz。查询时序数据的一致性:

SELECT timeliness(time, value) FROM wzz;
    +--------------------------------+
    | timeliness(wzz.time,wzz.value) |
    +--------------------------------+
    |  0.9333333333333333            |
    +--------------------------------+

validity

用途

函数validity用于计算时间序列的有效性,其衡量的是数据满足约束条件的比例。例如一地的月平均降水量是负值,这必然是有问题的。

算法简述

首先统计数据的行数 cnt ,然后进行缺失值填充,去除其中的 NaN 和 Inf ,然后通过自定义计算方法得到计数 valuecnt、variationcnt、speedcnt、speedchangecnt ,则有效性 validity 的计算公式:

1 – \frac{0.25 * (valuecnt + variationcnt + speedcnt + speedchangecnt)}{cnt}。值为0~1之间的数值,越靠近1表示质量越好,越靠近0表示质量越差。

参数

  • time: Timestamp

  • value: BIGINT / BIGINT UNSIGNED / DOUBLE

返回类型

  • DOUBLE

示例

建立的表即为函数completeness中示例的表wzz。查询时序数据的有效性:

SELECT validity(time, value) FROM wzz;
    +------------------------------+
    | validity(wzz.time,wzz.value) |
    +------------------------------+
    |  0.8                         |
    +------------------------------+

CnosDB简介

CnosDB是一款高性能、高易用性的开源分布式时序数据库,现已正式发布及全部开源。

欢迎关注我们的社区网站:https://cn.cnosdb.com

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1696075.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

AI应用案例:影像报告智能辅助编辑系统

今天给大家介绍一个医疗行业的案例“影像报告智能辅助编辑系统”!该案例已经在某三甲医院落地,模型准确度超过80%。 该项目上线后,保守估计,能为每位医生的每一张报告至少省下1分钟时间和2分钟的精力,20位初级医生&…

大作业爬取手机数据,实现手机推荐系统以及朋友圈手机论坛

1、功能简介 (1)用户注册与用户登录 (2)手机搜索、手机比拼、手机个性化推荐 (3)点击搜索的手机图片会就用户行为,轮播展示用户行为,推荐点击次数靠前的手机 (4&#xf…

Day01-Web开发、介绍、HTML

一、什么是 Web ? Web:全球广域网&#xff0c;也称为万维网(www World Wide Web)&#xff0c;能够通过浏览器访问的网站。 <!-- 文档类型为HTML --> <!DOCTYPE html> <html lang"en"> <head><!-- 字符集 --><meta charset"U…

【Python001】python批量下载、插入与读取Oracle中图片数据(已更新)

1.熟悉、梳理、总结数据分析实战中的python、oracle研发知识体系 2.欢迎点赞、关注、批评、指正,互三走起来,小手动起来! 文章目录 1.背景说明2.环境搭建2.1 参考链接2.2 `oracle`查询测试代码3.数据请求与插入3.1 `Oracle`建表语句3.2 `Python`代码实现3.3 效果示例4.问题链…

2024最新 Jenkins + Docker实战教程(二) - Jenkins相关配置

&#x1f604; 19年之后由于某些原因断更了三年&#xff0c;23年重新扬帆起航&#xff0c;推出更多优质博文&#xff0c;希望大家多多支持&#xff5e; &#x1f337; 古之立大事者&#xff0c;不惟有超世之才&#xff0c;亦必有坚忍不拔之志 &#x1f390; 个人CSND主页——Mi…

深入了解Nodejs模块机制

深入了解Nodejs模块机制 我们都知道Nodejs遵循的是CommonJS规范&#xff0c;当我们require(moduleA)时&#xff0c;模块是怎么通过名字或者路径获取到模块的呢&#xff1f;首先要聊一下模块引用、模块定义、模块标识三个概念。 1 CommonJS规范 1.1 模块引用 模块上下文提供…

操作符详解(上)(新手向)

操作符详解&#xff08;上&#xff09; 一&#xff0c;算术操作符&#xff08;双目操作符&#xff09;1:‘’,‘-’,‘*’2&#xff1a;‘/’&#xff0c;‘%’ 一&#xff0c;单目操作符1:‘’,‘-’2&#xff1a;‘!’3&#xff1a;‘&’4&#xff1a;‘*’5&#xff1a;…

c++(一)

c&#xff08;一&#xff09; C与C有什么区别命名空间使用 输入输出流引用指针和引用的区别定义拓展 函数重载例子测试函数重载原理 参数默认值什么是参数默认值注意 在c中如何引入c的库动态内存分配new、delete与malloc、free的区别&#xff1f; C与C有什么区别 <1>都是…

.NET 一款内部最新的免杀WebShell

01阅读须知 此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等&#xff08;包括但不限于&#xff09;进行检测或维护参考&#xff0c;未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失&#xf…

释放Mac潜能,选择Magic Disk Cleaner for Mac

想要让Mac运行更加流畅、性能更加出色吗&#xff1f;那就选择Magic Disk Cleaner for Mac吧&#xff01; Magic Disk Cleaner for Mac v2.7.7激活版下载 这款软件是Mac用户的得力助手&#xff0c;它拥有强大的扫描和清理功能&#xff0c;能够迅速找出并删除硬盘上的无用文件和垃…

亲测使用frp获得访问者真实ip

怎么访问都只有127.0.0.1这个内网ip,获取不到访问者的真实ip 1.打开frp的配置文件(一般是frpc.toml&#xff0c;无需设置frps.toml) 在每一个tcp协议中添加 transport.proxyProtocolVersion "v2" 实例&#xff1a; # frpc.toml [[proxies]] name "web" …

Docker+nginx部署SpringBoot+vue前后端分离项目(保姆及入门指南)

前后分离项目部署 项目回顾工具上线准备1、win1.1、前端1.2、后端 2、linux环境2.1、安装docker2.2、安装docker compose2.3、编写Dockerfile文件2.4、编写docker-compose.yml文件2.5、修改application-pro.yml2.6、准备好nginx的挂载目录和配置2.7、部署后端服务 项目回顾 书…

Studio 3T 2024.3 (macOS, Linux, Windows) - MongoDB 的专业 GUI、IDE 和 客户端,支持自然语言查询

Studio 3T 2024.3 (macOS, Linux, Windows) - MongoDB 的专业 GUI、IDE 和 客户端&#xff0c;支持自然语言查询 The professional GUI, IDE and client for MongoDB 请访问原文链接&#xff1a;https://sysin.org/blog/studio-3t/&#xff0c;查看最新版。原创作品&#xff…

从0开始带你成为Kafka消息中间件高手---第三讲

从0开始带你成为Kafka消息中间件高手—第三讲 实际上来说&#xff0c;每次leader接收到一条消息&#xff0c;都会更新自己的LEO&#xff0c;也就是log end offset&#xff0c;把最后一位offset 1&#xff0c;这个大家都能理解吧&#xff1f;接着各个follower会从leader请求同…

LabviewCarla仿真平台搭建一:平台设计及仿真视频可视化实现

文章目录 背景一、平台设计二、视频显示模块实现1、视频模块实现框架2、python-camera数据生成3、labview-camera数据可视化 三、效果展示 背景 在使用carla的时候&#xff0c;有平台的话可以提高效率&#xff0c;因此想结合labview和carla设计一个仿真平台-labcar。其实carla…

滑动菜单栏

效果如下&#xff1a; NavigationView 新建menu布局,表示菜单栏的选项 <menu xmlns:android"http://schemas.android.com/apk/res/android"> <group android:checkableBehavior"single"> <item android:id"id/navCall" android…

C#【进阶】特殊语法

特殊语法、值和引用类型 特殊语法 文章目录 特殊语法1、var隐式类型2、设置对象初始值3、设置集合初始值4、匿名类型5、可空类型6、空合并操作符7、内插字符串8、单句逻辑简略写法 值和引用类型1、判断值和引用类型2、语句块3、变量的生命周期4、结构体中的值和引用5、类中的值…

对于高速信号完整性,一块聊聊啊(12)

常见的无源电子器件 电子系统中的无源器件可以按照所担当的电路功能分为电路类器件、连接类器件。 A、电路类器件&#xff1a; &#xff08;1&#xff09;二极管&#xff08;diode&#xff09; &#xff08;2&#xff09;电阻器&#xff08;resistor&#xff09; &#xf…

智慧城市运维可视化:透视未来城市高效管理的新视窗

行业痛点 现代城市运维是一个复杂而庞大的系统&#xff0c;涉及到诸多方面&#xff0c;包括交通、环境、能源等等。然而&#xff0c;在城市运维中&#xff0c;存在着一些现实的痛点&#xff0c;给城市管理者带来了不小的压力和困扰&#xff1a; 1、交通拥堵 随着城市化进程的…

基于Docker的ElasticSearch、Kibana服务搭建并开启用户鉴权

&#x1f3f7;️个人主页&#xff1a;牵着猫散步的鼠鼠 &#x1f3f7;️系列专栏&#xff1a;云原生与服务部署专栏 &#x1f3f7;️个人学习笔记&#xff0c;若有缺误&#xff0c;欢迎评论区指正 目录 1. 前言 2. 服务搭建 2.1. 部署ElasticSearch 2.2. 部署Kibana 3. …