原文:https://blog.csdn.net/Vblegend_2013/article/details/80904275

最近项目中使用了时序数据库InfluxDB 各方性能也是蛮强大的。但是唯一不足的地方时间格式,默认是使用的UTC时间也是固定的不能修改的,研究了下找到解决方案。

        public static void Write()
{
String[] Tags = new string[] { "Element_1", "Element_2", "Element_3", "Element_4", "Element_5" };
List<Point> Points = new List<Point>();
foreach (var item in Tags)
{
Point point = CreatePoint(item);
Points.Add(point);
}
var r = InfluxDB.WriteAsync(DBName, Points.ToArray()).Result; }
public static Random r = new Random(); public static Point CreatePoint(String name)
{
Dictionary<string, object> fields = new Dictionary<string, object>();
Dictionary<string, object> tags = new Dictionary<string, object>(); tags.Add("Name", name);
fields.Add("Value", r.Next(, ));
Point point = new Point()
{
Fields = fields,
Measurement = "base",
Tags = tags,
Timestamp = DateTime.UtcNow.AddHours(),
};
return point;
}

很简单 写入数据时 UTC时间加上8小时就OK

看下 持续查询代码

按小时查询

CREATE CONTINUOUS QUERY Group_Hour_Query ON TestDB RESAMPLE EVERY 1h FOR 1h BEGIN SELECT mean(Value) AS Avg, max(Value) AS Max, min(Value) AS Min, spread(Value) AS Spread, sum(Value) AS Sum, count(Value) AS Count, difference(max(Value)) AS Difference, stddev(Value) AS Stddev INTO TestDB.autogen.Group_Hour FROM TestDB.autogen.base GROUP BY "Name", time(1h) fill() END

按天查询

CREATE CONTINUOUS QUERY Group_Day_Query ON TestDB RESAMPLE EVERY 1d FOR 1d BEGIN SELECT mean(Value) AS Avg, max(Value) AS Max, min(Value) AS Min, spread(Value) AS Spread, sum(Value) AS Sum, count(Value) AS Count, difference(max(Value)) AS Difference, stddev(Value) AS Stddev INTO TestDB.autogen.Group_Day FROM TestDB.autogen.base GROUP BY "Name", time(1d) fill() END

以上两个持续查询脚本会将base表中数据按每小时、每天 以Name聚合 写入到新的表中去

每天聚合的表  我们看下 2018-07-01 00:00:00 这一天的 Element_1 的数据

每小时聚合的表  我们看下 2018-07-01 13:00:00 这一小时的 Element_1 的数据

然后我们自己写查询语句 查询这一小时的平均值 跟持续查询的结果是相同的

然后我们写查询07-01一天的平均值 跟持续查询的结果也是相同的

因为之前写入时我们是UTC+8小时的 ,最后我们确认下 数据库中的数据是否是最新的。

查询下最后一条语句,  因为是每隔10分钟写入一次。。 所以貌似没毛病。

经过我的简单测试 数据库在写入2000W条数据后并没有明显的降速(写入),且查询速度依然很理想化。

InfluxDB 的UTC时间问题与简单的持续查询语句的更多相关文章

  1. 简单的Linq查询语句

    下面我来我大家介绍几种简单的查询方式. 1.简单语法 这个LINQ语句的第一个关键字是from,from后面加的是范围变量,范围变量后加in,后加上事先实例化的模型,然后点出数据的来源. List是列 ...

  2. 一条简单的 SQL 查询语句到底经历了什么?

    一.MySQL 基础架构   整体来说 MySQL 主要分为两个部分,一个部分是:Server 层,另一部分是:存储引擎层. 其中 Server 层包括有连接器.查询缓存.分析器.优化器.执行器等,存 ...

  3. C#实现多级子目录Zip压缩解压实例 NET4.6下的UTC时间转换 [译]ASP.NET Core Web API 中使用Oracle数据库和Dapper看这篇就够了 asp.Net Core免费开源分布式异常日志收集框架Exceptionless安装配置以及简单使用图文教程 asp.net core异步进行新增操作并且需要判断某些字段是否重复的三种解决方案 .NET Core开发日志

    C#实现多级子目录Zip压缩解压实例 参考 https://blog.csdn.net/lki_suidongdong/article/details/20942977 重点: 实现多级子目录的压缩, ...

  4. 时间处理得到UTC时间

    在工作过程遇到了时间处理的问题,因为需要统一将时间处理按照utc时间进行处理,因此,不能简单的通过系统运行直接得到时间的毫秒数,这样会在不同时区得到的值是不同的. import java.text.P ...

  5. Linux与Windows中的UTC时间

    Linux与Windows中的UTC时间 先介绍几个术语 UTC 协调世界时,又称世界标准时间或世界协调时间,简称UTC(从英文“Coordinated Universal Time”/法文“Temp ...

  6. 认识GMT和UTC时间-附带地理知识

    GMT-格林尼治标准时 GMT 的全名是格林威治标准时间或格林威治平时 (Greenwich Mean Time),这个时间系统的概念在 1884 年确立,由英国伦敦的格林威治皇家天文台计算并维护,并 ...

  7. Python 将一个已知的 utc时间字符串 转换为东八区时间

    先获取一个utc格式的时间 utc_time = datetime.datetime.utcnow() print(utc_time) 输出 2018-06-24T08:59:39Z 这里我们假设目前 ...

  8. c语言实战 BJT时间转化位UTC时间

    题目是这样的: 题目内容: UTC是世界协调时,BJT是北京时间,UTC时间相当于BJT减去8.现在,你的程序要读入一个整数,表示BJT的时和分.整数的个位和十位表示分,百位和千位表示小时.如果小时小 ...

  9. 详解JavaScript UTC时间转换方法

    这篇文章主要介绍了JavaScript UTC时间转换方法,介绍了本地时间到UTC时间的转换.UTC日期到本地日期的转换,感兴趣的小伙伴们可以参考一下 一.前言 1.UTC: Universal Ti ...

随机推荐

  1. 20165228 2017-2018-2 《Java程序设计》第8周学习总结

    20165228 2017-2018-2 <Java程序设计>第8周学习总结 教材学习内容总结 进程与线程的关系 多线程的运行机制 线程的四种状态:新建.运行.中断.死亡 使用Thread ...

  2. epoll_wait惊群问题

    项目接入层用的模型是,主线程创建listenfd,传入6个子线程,每个子线程一个事件循环,epoll_wait这个listenfd. 如果是listenfd,则epoll_wait返回调用accept ...

  3. MySQL中的修改表操作

    一.增加表的列 语法:alter table 表名 add(           增加列定义          ); 实例: #增加列 alter table text add( text_num ) ...

  4. stringify在苹果电脑下的值不能为空

     sessionStorage.channel = JSON.stringify(  );苹果的safari不接受stringify里面为空 火桑飘零ご 2018/1/25 20:21:49 wind ...

  5. currentStyle&getComputedStyle获取属性

    方法如下: function getStyle(obj,attr){ if(obj.currentStyle){ return obj.currentStyle[attr]; // IE 中的方法 } ...

  6. Python数据结构——栈的列表实现

    用Python内置的列表(list)实现栈,代码如下: import os os.chdir("E:\\Python_temp") class Stack: def __init_ ...

  7. 《DSP using MATLAB》Problem 6.6

    代码: %% ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ %% Output In ...

  8. 快速挂载iso文件到虚拟机系统

    在vm软件菜单栏那里选择vm,再选择弹出菜单最下面的设置,如图,找到实体机上的iso文件,保存. 这时候,在虚拟机ls /dev会发现有一个cdrom,这个就是我们的iso文件,不过我们还需要把它挂载 ...

  9. RSA 加密算法 Java 公钥加密私钥解密 和 私钥加密公钥解密 的特点

    package com.smt.cipher.unsymmetry; import org.apache.commons.codec.binary.Base64; import org.apache. ...

  10. php 内网/外网ip判断

    工作需要判断ip是否是内网ip,本来想着使用正则自己写一个呢,后来发现php自带的有现成的函数[filter_var()](http://php.net/manual/zh/function.filt ...