InfluxDB是一个用于存储和分析时间序列数据的开源数据库。类似的数据库有Elasticsearch、Graphite等。Go语言编写的一个开源分布式时序、事件和指标数据库,无需外部依赖

InfluxDB的主要特点
无结构(无模式):可以是任意数量的列
可拓展的
支持min, max, sum, count, mean, median 等一系列函数,方便统计支持min, max, sum, count, mean, median 等一系列函数,方便统计
原生的HTTP支持,内置HTTP API原生的HTTP支持,内置HTTP API
强大的类SQL语法强大的类SQL语法
自带管理界面,方便使用自带管理界面,方便使用

注意
自带管理界面在1.2版之后,将不再提供。
集群功能在1.2版之后,也不再提供。

InfluxDB与传统数据库的比较
database    数据库
measurement    数据库的表
points    表里的一行数据

InfluxDB的独特的特性
point  :Point相当于传统数据库里的一行数据,如下表所示:

oint属性  :  传统数据库中的概念
time(时间戳)  :  每个数据记录时间,是数据库中的主索引(会自动生成)
fields(字段、数据) :   各种记录值(没有索引的属性)也就是记录的值:温度, 湿度
tags(标签):    各种有索引的属性:地区,海拔
注意
在influxdb中,字段必须存在。因为字段是没有索引的。如果使用字段作为查询条件,会扫描符合查询条件的所有字段值,性能不及tag。类比一下,fields相当于SQL的没有索引的列。
tags是可选的,但是强烈建议你用上它,因为tag是有索引的,tags相当于SQL中的有索引的列。tag value只能是string类型。
series
相当于是 InfluxDB 中一些数据的集合,在同一个 database 中,retention policy、measurement、tag sets 完全相同的数据同属于一个 series,同一个 series 的数据在物理上会按照时间顺序排列存储在一起。

官方下载地址:https://portal.influxdata.com/downloads/
官方文档:https://docs.influxdata.com/influxdb/v1.8/

描述

InfluxDB使用UTC中主机的本地时间为数据分配时间戳并用于协调目的。
使用网络时间协议(NTP)在主机之间同步时间;如果主机的时钟未与NTP同步,则写入InfluxDB的数据上的时间戳可能不准确。

默认情况下,InfluxDB使用以下网络端口:TCP端口8086可用于使用InfluxDB API进行客户端-服务器通信。
TCP端口8088可用于RPC服务执行备份和还原操作。

1.安装

# 下载influxdb
wget https://dl.influxdata.com/influxdb/releases/influxdb-1.8.2.x86_64.rpm
# 安装influxdb
yum -y localinstall influxdb-1.8.2.x86_64.rpm
# 配置influxdb(此处可以复制配置示例)
vim /etc/influxdb/influxdb.conf
# 设置权限
mkdir -p /mnt/data/influxdb
chown influxdb:influxdb /mnt/data/influxdb
# 启动influxdb
systemctl start influxd.service
# 设置用户、密码
influx -port 8086
create user 'username' with password 'password' with all privileges
exit

配置示例

# 配置文件 /etc/influxdb/influxdb.conf

reporting-disabled = true         # 禁用报告,默认为 false
bind-address = ":8088"
[meta]
dir = "/mnt/data/influxdb/meta"    # 元信息目录
[data]
dir = "/mnt/data/influxdb/data"    # 数据目录
wal-dir = "/mnt/data/influxdb/wal" # 预写目录
wal-fsync-delay = "10ms"          # SSD 设置为 0s,非 SSD 推荐设置为 0ms-100ms
index-version = "tsi1"            # tsi1 磁盘索引,inmem 内存索引需要大量内存
query-log-enabled = true          # 查询的日志,默认是 true
[coordinator]
write-timeout = "20s"             # 写入请求超时时间,默认为 10s
[http]
enabled = true
bind-address = ":8086"
auth-enabled = true                 # 开启认证
log-enabled = true                 # http 请求日志,默认是 true
[logging]
level = "info"                    # 日志等级,error、warn、info(默认)、debug

基本命令

# 查看默认配置
influxd config# 指定配置文件启动
influxd -config /etc/influxdb/influxdb.conf

数据库命令

# influxdb使用命令(默认8086 配置多实例时端口不同)
influx
influx -port 8086
influx -host ip -port 8086
# 创建数据库
create database test
# 删除数据库
drop database test
# 查看数据库
show databases
# 使用数据库
use test
# 创建普通用户
create user 'username' with password 'password'
# 创建管理员用户
create user 'username' with password 'password' with all privileges
# 登录
auth
# 修改密码
influx user password -n 'username'

查询语句
SHOW FIELD KEYS --查看当前数据库所有表的字段
SHOW series from pay --查看key数据
SHOW TAG KEYS FROM "pay" --查看key中tag key值
SHOW TAG VALUES FROM "pay" WITH KEY = "merId" --查看key中tag 指定key值对应的值
SHOW TAG VALUES FROM cpu WITH KEY IN ("region", "host") WHERE service = 'redis'
DROP SERIES FROM <measurement_name[,measurement_name]> WHERE <tag_key>='<tag_value>' --删除key
SHOW CONTINUOUS QUERIES   --查看连续执行命令
SHOW QUERIES  --查看最后执行命令
KILL QUERY <qid> --结束命令
SHOW RETENTION POLICIES ON mydb  --查看保留数据
查询数据
SELECT * FROM /.*/ LIMIT 1  --查询当前数据库下所有表的第一行记录
select * from pay  order by time desc limit 2
select * from  db_name."POLICIES name".measurement_name --指定查询数据库下数据保留中的表数据 POLICIES name数据保留
删除数据
delete from "query" --删除表所有数据,则表就不存在了
drop MEASUREMENT "query"   --删除表(注意会把数据保留删除使用delete不会)
DELETE FROM cpu
DELETE FROM cpu WHERE time < '2000-01-01T00:00:00Z'
DELETE WHERE time < '2000-01-01T00:00:00Z'
DROP DATABASE “testDB” --删除数据库
DROP RETENTION POLICY "dbbak" ON mydb --删除保留数据为dbbak数据
DROP SERIES from pay where tag_key='' --删除key中的tag

SHOW SHARDS  --查看数据存储文件
DROP SHARD 1
SHOW SHARD GROUPS
SHOW SUBSCRIPTIONS

influxdb实现模糊查询

1.实现查询以给定字段开始的数据

select fieldName from measurementName where fieldName=~/^给定字段/

2.实现查询以给定字段结束的数据

select fieldName from measurementName where fieldName=~/给定字段$/

3.实现查询包含给定字段数据

select fieldName from measurementName where fieldName=~/给定字段/

InfluxDB基本使用相关推荐

  1. 在CentOS 7.7 x86_64上安装InfluxDB 1.8.0实录

    在InfluxDB官网获取最新稳定版的下载和安装指导 wget https://dl.influxdata.com/influxdb/releases/influxdb-1.8.0.x86_64.rp ...

  2. InfluxDB 2.0 Alpha展开测试!将会加入查询语言Flux

    InfluxData释出其开源时序数据库InfluxDB 2.0 Alpha测试版,这个版本最大的更新,便是增加了新的数据脚本和查询语言Flux,不只能提供跨平台时序数据操作,还能将TICK组件堆栈整 ...

  3. influxdb java spring_Spring boot使用influxDB总结

    项目中需要存放大量设备日志,且需要对其进行简单的数据分析,信息提取工作. 结合众多考量因素,项目决定使用时序数据库中的领头羊InfluxDB. 引入依赖 项目中使用influxdb-java,在pom ...

  4. telegraf监控mysql数据库_部署Telegraf+Influxdb+Grafana 架构来监控 MySQL

    前段时间小编写了一篇:使用Nginx+Telegraf+Influxb+Grafana构建高逼格Nginx集群监控系统!文章,详细了介绍了 采集器telegraf, 时序数据库influxdb , 数 ...

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

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

  6. 基于 Prometheus、InfluxDB 与 Grafana 打造监控平台

    在本文中,我将把几个常用的监控部分给梳理一下.前面我们提到过,在性能监控图谱中,有操作系统.应用服务器.中间件.队列.缓存.数据库.网络.前端.负载均衡.Web 服务器.存储.代码等很多需要监控的点. ...

  7. 可视化-grafana_使用influxDB数据

    1 添加数据源 给数据源取个名字,然后选择数据类型为influxDB. HTTP:8086是influxDB的HTTP查询API,grafana是通过这个接口获取数据. Details:选择从infl ...

  8. grafana模板_EMQ X + InfluxDB + Grafana:物联网数据监控可视化方案

    本文以常见物联网使用场景为例,介绍了如何利用 EMQ X 消息中间件与开源数据可视化方案 InfluxDB + Grafana ,将物联网设备大量基于时序的数据便捷地展示出来. 在物联网项目中接入平台 ...

  9. 将Windows下的InfluxDB、Grafana做成Windows服务

    从网上下载的Windows下的InfluxDB.Grafana,都是控制台程序,打开窗口后,很容易被别人给关掉,因此考虑做成Windows服务,nssm正是解决该问题的利器. 1.下载nssm htt ...

  10. 基于InfluxDB实现分页查询功能

    InfluxDB作为时序数据库中的翘楚,应用范围非常广泛,尤其在监控领域. 最近做了一个功能,将InfluxDB中的数据查询出来后,在前台分页展现,比如每页10条,一共100页,可以查看首页.末页,进 ...

最新文章

  1. MySQL分布式集群
  2. 北斗导航 | 从北一到北二再到北三,你应该知道的北斗导航系统
  3. 特征对齐的旋转目标检测:Align Deep Features for Oriented Object Detection
  4. python3环境下用matplotlib库实现UI交互
  5. 树莓派AI视觉云台——3、树莓派系统的启动
  6. 系统相机裁剪比例_要不要买全画幅相机?
  7. java性能调优及问题追踪--Btrace的使用
  8. (学习进度表)【第八周】
  9. 从源码安装mysql_从源代码安装mysql
  10. Docker动荡在继续:创始人兼CTO离职
  11. echarts 柱状图如何不顶格_echarts柱状图如何中间对齐而不是底部对齐?
  12. IBM:利用闪存提速实时分析 掘金大数据
  13. windows10pygame下载安装问题描述
  14. linux下vmstat命令详解
  15. 饿百零售开放平台,测试账号饿了么显示该商家还没有上传商品
  16. Proe3.0-5.0安装说明
  17. The kernel appears to have died. It will restart automatically
  18. pyqt获得鼠标_PyQt5编程:鼠标事件
  19. python打印九九乘法口诀_PYTHON如何打印九九乘法表
  20. 【此间乐,不思蜀】 大一不想咸鱼的暑假7.17

热门文章

  1. php命令行传递参数,PHP命令行传递参数
  2. 『Linux基础 - 2 』操作系统,Linux背景知识和Ubuntu操作系统安装
  3. GRE和IPsec搭配使用,到底是谁over谁?先看GRE over IPsec
  4. Qt WebEngine(01):Qt WebEngine 概述【官翻】
  5. RabbitMQ之心跳检测
  6. python中eps参数_Matplotlib简介和pyplot的简单使用——输出eps格式图像
  7. 破解navicat试用期功能
  8. iOS 中使用 Mobile Installation 安装 IPA-获取列表(使用iTunes/AppStore一样的安装API)
  9. 详解jQuery.Deferred对象
  10. 教你免费安装官方 Apple Remote Desktop 洗白官方Remote Desktop for Mac