背景: 项目中设计工业数据监控,大量高并发写入,而且数据量极大(上千万),传统的数据库如MySQL根本hold不住,此时,找到influxdb这个救星
简介: InfluxDB是一个由InfluxData开发的开源时序型数据。它由Go写成,着力于高性能地查询与存储时序型数据。InfluxDB被广泛应用于存储系统的监控数据,IoT行业的实时数据等场景。

特点:

  • 时间序列数据:从定义上来说,就是一串按时间维度索引的数据。
  • 时序数据库(TSDB)特点: 持续高并发写入、无更新;
  • 数据压缩存储;
  • 低查询延时
  • 常见 TSDB:influxdb、opentsdb、timeScaladb、Druid 等。

1. 安装influxdb

influxdb官网上下载如下文件


解压influxdb-1.7.10_windows_amd64之后
influxdb.conf 配置文件修改一下,地址改成自己的
双击influxd.exe之后再双击influx.exe
上面的命令窗口就可以操作influxdb了
不过他也是有web可视化操作页面的
解压kapacitor-1.5.4_windows_amd64,双击chronograf-v1.db,输入http://localhost:8888
influxdb启动进行操作是不需要验证账号密码的,如有需要可在influxdb.conf中配置
auth-enabled = true

2接下来我们用命令来操作一下influxdb

// 展示influxdb中所有数据库
show databases;

// 切换到数据库testdb
use testdb;
// 查看testdb中的measurement
show measurements;

// 查看fnl中的数据
select * from fbl;

// 我们插入一条数据
insert fbl,name=hua sex="man";

在查询就会多出来一条

注意的是:插入measurement如果不存在,influxdb会自动创建一个measurement

3. influxdb中的策略

创建数据库或者measurement时可以指定数据保存策略RetentionPolicy,当然,measurement中每一条数据也可以有不同的保存策略,这个保存策略是influxdb定时清理数据的关键

目的: InfluxDB本身不提供数据的删除操作,因此用来控制数据量的方式就是定义数据保留策略。
因此定义数据保留策略的目的是让InfluxDB能够知道可以丢弃哪些数据,从而更高效的处理数据。

// 查询数据库中有哪些策略
show retention policies on testdb

  • name–名称,此示例名称为 autogen
  • duration–持续时间,0代表无限制
  • shardGroupDuration–shardGroup的存储时间,shardGroup是InfluxDB的一个基本储存结构,应该大于这个时间的数据在查询效率上应该有所降低。
  • replicaN–全称是REPLICATION,副本个数
  • default–是否是默认策略
// 在testdb数据库中新建策略create retention policy "myrp_two" on testdb duration 24h replication 1

// 修改策略alter retention policy myrp_two on testdb duration 5d default


注意:一个库中只允许一个默认策略,设置这个上一个默认的就会变成false,如果有自己的策略查询时measurement前带策略名,表示查这个策略的measurement,否则没有值

// 删除策略
drop retention policy myrp_two on testdb


马上写springBoot整合influxdb
补充一个语法知识:influxdb数据库字符串类型使用双引号查不出数据,单引号可以。
插入数据时,字符串类型要是用双引号,单引号报错。
如果自己创建了策略,即使default为true,在insert时也要指定策略,否则查不到

另外influxdb还有时区的问题,他默认使用的是UTC时区,和中国差了8小时

// 查询语句最后一行加tz('时区')可以转换成某个地方的时间
select * from mymeasurement where time >='2018-07-16T10:00:00Z' tz('Asia/Shanghai')

但是windows系统没有装go环境的小伙伴会报找不到该时区的错误
所以要装go开发环境

如果装开发环境使用msi模式的话,环境变量是直接配置好的,不过也不能什么都不配置,不然influxdb还是报错。需要添加GOROOT和GOPATH两个环境变量

GOROOT:go环境的安装目录
GOPATH:你的go项目目录

还不行可能需要重启一下电脑(配置没起作用)

influxdb TSDB初学相关推荐

  1. influxdb内存消耗分析及性能优化「追踪篇」

    背景 由于业务场景需求,在生产环境服务器(32core64G)搭建了基于golang开发的influx时序数据库v1.8版本 ,经过持续一周的运行之后(每天写入约100G数据),发现服务器内存消耗95 ...

  2. 分析服务器资源负载过高问题

    背景 由于业务场景需求,在生产环境服务器(32core64G)搭建了基于golang开发的influx时序数据库v1.8版本 ,经过持续一周的运行之后(每天写入约100G数据),发现服务器内存消耗95 ...

  3. 时序数据库连载系列: 时序数据库一哥InfluxDB之存储机制解析

    InfluxDB 的存储机制解析 本文介绍了InfluxDB对于时序数据的存储/索引的设计.由于InfluxDB的集群版已在0.12版就不再开源,因此如无特殊说明,本文的介绍对象都是指 InfluxD ...

  4. postgresql 查询序列_时间序列数据库(TSDB)初识与选择

    背景 这两年互联网行业掀着一股新风,总是听着各种高大上的新名词.大数据.人工智能.物联网.机器学习.商业智能.智能预警啊等等. 以前的系统,做数据可视化,信息管理,流程控制.现在业务已经不仅仅满足于这 ...

  5. 时序列数据库武斗大会之 TSDB 名录 Part 1

    2019独角兽企业重金招聘Python工程师标准>>> [编者按] 刘斌,OneAPM后端研发工程师,拥有10多年编程经验,参与过大型金融.通信以及Android手机操作系的开发,熟 ...

  6. influxdb tsm文件_Influxdb中的Compaction操作

    Influxdb中的Compaction操作 Compaction概述 Influxdb的存储引擎使用了TSM文件结构,这其实也是在LSM-Tree基础针对时序特点作了改进,因此其与LSM-Tree类 ...

  7. 时序数据库连载系列: 时序数据库一哥InfluxDB之存储机制解析 1

    2019独角兽企业重金招聘Python工程师标准>>> InfluxDB 的存储机制解析 本文介绍了InfluxDB对于时序数据的存储/索引的设计.由于InfluxDB的集群版已在0 ...

  8. 时序数据库技术体系 – InfluxDB 多维查询之倒排索引

    在时序数据库概述一文中,笔者提到时序数据库的基础技术栈主要包括高吞吐写入实现.数据分级存储|TTL.数据高压缩率.多维度查询能力以及高效聚合能力等,上文<时序数据库技术体系 – InfluxDB ...

  9. 时序数据库技术体系 – InfluxDB TSM存储引擎之数据读取

    任何一个数据库系统内核关注的重点无非:数据在内存中如何存储.在文件中如何存储.索引结构如何存储.数据写入流程以及数据读取流程.关于InfluxDB存储内核,笔者在之前的文章中已经比较全面的介绍了数据的 ...

最新文章

  1. 网络负载均衡相关技术-DNS
  2. epon matlab仿真,一种新型的EPON保护结构
  3. Docker入门简明教程
  4. mysql中创建表时提示 no database selected
  5. html边框自动变颜色,css怎么设置边框颜色?
  6. 7-46 银行排队问题之单队列多窗口服务 (10 分)
  7. java设计模式之创建型设计模式
  8. FairScheduler的任务调度机制——assignTasks
  9. php微信绑定银行卡_PHP实现微信提现功能
  10. POJ1177(扫描线求周长并)
  11. 接收诊断响应的相关CAPL函数,具有较高的可复用性
  12. 【计算机网络自顶向下方法】Web页面请求的历程
  13. Linux 设置ssh远程登录端口
  14. Scrapy爬取拉钩网的爬虫(爬取整站CrawlSpider)
  15. Druid 统计监控页面无法打开
  16. 1-5 第一个C语言程序
  17. 8bit位图保存为1bit
  18. Node.js基础2 fs方法和path方法的使用
  19. s7300的db块详细说明_西门子db数据块详解
  20. 【IoT】创业:智能硬件企业如何开始?

热门文章

  1. 实况录制翻车记EP3
  2. c语言讨论学,看看大家都是如何谈论C语言的
  3. python elif 用法_Python,为什么要使用elif关键字?
  4. c#中的SqlHelper类介绍
  5. 简述 OSI 网络七层模型
  6. ODOO技术在教育行业软件上的应用
  7. 【转载】Unix设计哲学 回车换行八卦 EOF八卦 UNIX目录结构八卦
  8. Wireshark抓包数据分析
  9. 第三十一题——[MRCTF2020]Ez_bypass
  10. JS - 生成随机数的方法汇总(不同范围、类型的随机数)