InfluxDb中写入重复数据问题解决方案
1.InfluxDb版本
0.10.3
2.Measurement
TodayChargeTimeReport
只有time和Field列,没有Tag列
3.现象:通过定时任务向上面的表中写入数据:
var point = new Point();
point.Measurement = "TodayChargeTimeReport";
point.Precision = InfluxDB.Net.Enums.TimeUnit.Milliseconds;
point.Timestamp = time;
point.Fields = new Dictionary<string, object>() {
{"Sucess", Convert.ToInt32(value[])},
{"Faild", Convert.ToInt32(value[])},
{"FailureRate",Convert.ToDouble(value[])}
}; point.Tags = new Dictionary<string, object>(); points.Add(point);
定时任务5分钟执行一次,定时任务的内容是查询SQL,查询出凌晨至今的数据,10分钟一个间隔,写入influxdb,发现influxdb中偶尔会出现重复数据:
发现重复时间:// ::
发现重复时间:// ::
发现重复时间:// ::
发现重复时间:// ::
发现重复时间:// ::
发现重复时间:// ::
发现重复时间:// ::
发现重复时间:// ::
发现重复时间:// ::
发现重复时间:// ::
发现重复时间:// ::
发现重复时间:// ::
发现重复时间:// ::
发现重复时间:// ::
发现重复时间:// ::
发现重复时间:// ::
发现重复时间:// ::
发现重复时间:// ::
发现重复时间:// ::
发现重复时间:// ::
发现重复时间:// ::
发现重复时间:// ::
发现重复时间:// ::
发现重复时间:// ::
发现重复时间:// ::
发现重复时间:// ::
发现重复时间:// ::
发现重复时间:// ::
发现重复时间:// ::
发现重复时间:// ::
发现重复时间:// ::
发现重复时间:// ::
发现重复时间:// ::
发现重复时间:// ::
发现重复时间:// ::
发现重复时间:// ::
发现重复时间:// ::
发现重复时间:// ::
发现重复时间:// ::
对应的grafana也出现错乱现象:

4.诡异的地方
4.1 Influxdb中只有time和Field列,如果时间相同,应该写不进去,但是实际却写进去了
4.2 如果grafana中按group by time(10m),然后对值取Max,理论上应该能过滤掉重复值,但是实际过滤后,还有一大段空值
5.解决方案
因为influxdb不支持删除操作,通过如下操作暂时解决该问题:
5.1 通过程序,将“TodayChargeTimeReport”表中的数据读出来,进行去重操作后,写入“TodayChargeTimeReport1”
5.2 drop measurement "TodayChargeTimeReport"(谨慎!可能会影响influxdb10分钟左右不能访问)
5.3 通过程序,将“TodayChargeTimeReport1”表中的数据读出来,写入“TodayChargeTimeReport”
5.4 定时任务,写入influxdb时的时间精度,由“Milliseconds”改为“Minutes”
问题暂时解决,初步怀疑是时间精度导致的,后续继续观察是否还有重复数据。
InfluxDb中写入重复数据问题解决方案的更多相关文章
- Oracle、SQLServer 删除表中的重复数据,只保留一条记录
原文地址: https://blog.csdn.net/yangwenxue_admin/article/details/51742426 https://www.cnblogs.com/spring ...
- Oracle删除表中的重复数据
Oracle数据库删除表中的重复数据,只保留其中的一条,以两个字段为例,提供两种方法 ①.直接delete重复的数据 delete from table_name t1 where (t1.col1, ...
- Java 实现word 中写入文字图片的解决方案
JAVA生成WORD文件的方法目前有以下两种方式: 一种是jacob 但是局限于windows平台 往往许多JAVA程序运行于其他操作系统 在此不讨论该方案; 一种是poi但是他的excel处理很程序 ...
- Excel中如何在两个工作表中查找重复数据
有时我们可能会在两种工作表中查找重复记录,当数据记录很多时,就必须通过简单的方法来实现.下面小编就与大家一起分享一下查看重复记录数据的方法,希望对大家有所帮助. 方法/步骤 为了讲解的需要,小编特 ...
- oracle学习----去除表中的重复数据
重复的数据可能有这样两种情况,第一种:表中只有某些字段一样,第二种:两行记录完全一样.第一.对于部分字段重复数据的删除 先来谈谈如何查询重复的数据吧. 下面语句可以查询出那 ...
- 删除一个表中的重复数据同时保留第一次插入那一条以及sql优化
业务:一个表中有很多数据(id为自增主键),在这些数据中有个别数据出现了重复的数据. 目标:需要把这些重复数据删除同时保留第一次插入的那一条数据,还要保持其它的数据不受影响. 解题过程: 第一步:查出 ...
- SQLServer 删除表中的重复数据
create table Student( ID varchar(10) not null, Name varchar(10) not null, ); insert in ...
- .NetCore 中使用AppMetrics向InfluxDB中添加监控数据并通过Grafana图像分析
考虑到分布式部署监控环境是所有的请求情况,所以这一块一般在网关GateWay里面加比较省事,聚合在一起的,如果放在api服务中,如果只有1个还好,一旦部署Node多是很痛苦的事情 这天需要添加的Nug ...
- postgresql数据库中对重复数据的处理
我们在使用postgresql数据库的时候,如果一张数据表在未做任何约束的情况下,很可能会出现几条完全一样的数据,即重复数据.如下图所示: 那么如果我们要删除其中的2条该怎么办呢?第一种我们可以清空表 ...
随机推荐
- [转载] TCP长连接与短连接的区别
转载自http://www.cnblogs.com/liuyong/archive/2011/07/01/2095487.html 1. TCP连接 当网络通信时采用TCP协议时,在真正的读写操作之前 ...
- [转载] 使用 Twitter Storm 处理实时的大数据
转载自http://www.ibm.com/developerworks/cn/opensource/os-twitterstorm/ 流式处理大数据简介 Storm 是一个开源的.大数据处理系统,与 ...
- RabbitMQ之Helloworld
RabbitMQ介绍 RabbitMQ是一个消息代理.它的核心原理非常简单:接收和发送消息. 专有名词 生产(Producing)意思就是发送.发送消息的程序就是一个生产者(producer).我们一 ...
- Python之matplotlib学习(一)
小试牛刀 在上一节已经安装好matplotlib模块,下面使用几个例子熟悉一下. 对应的一些文档说明: http://matplotlib.org/1.3.1/api/pyplot_summary.h ...
- 【JDK1.8】JDK1.8集合源码阅读——TreeMap(一)
一.前言 在前面两篇随笔中,我们提到过,当HashMap的桶过大的时候,会自动将链表转化成红黑树结构,当时一笔带过,因为我们将留在本章中,针对TreeMap进行详细的了解. 二.TreeMap的继承关 ...
- 机器学习 F1-Score 精确率 - P 准确率 -Acc 召回率 - R
准确率 召回率 精确率 : 准确率->accuracy, 精确率->precision. 召回率-> recall. 三者很像,但是并不同,简单来说三者的目的对象并不相同. 大多时候 ...
- c语言的流程控制
1. 流程控制 ● 顺序结构:默认的流程结构.按照书写顺序执行每一条语句. ● 选择结构:对给定的条件进行判断,再根据判断结果来决定执行哪一段代码. ● 循环结构:在给定条件成立的情况下,反复执行某一 ...
- 浅析php命名空间
介绍 印象中只有java代码才会用到一大堆的import,当初看到后一脸懵逼并对php心生自豪:还是我大php牛逼够简洁,殊不知php也有命名空间这一说,这些年用的越来越多.那么,为什么要搞那么麻烦呢 ...
- 读Kafka Consumer源码
最近一直在关注阿里的一个开源项目:OpenMessaging OpenMessaging, which includes the establishment of industry guideline ...
- 算法训练 区间K大数
算法训练 区间k大数查询 时间限制:1.0s 内存限制:256.0MB 问题描述 给定一个序列,每次询问序列中第l个数到第r个数中第K大的数是哪个. 输入格式 第一行包含一个数n,表示序列长度. ...