InfluxDB是一个用于存储和分析时间序列数据的开源数据库

时序数据是基于时间的一系列的数据

时序数据库就是存放时序数据的数据库,并且需要支持时序数据的快速写入、持久化、多纬度的聚合查询等基本功能

InfluxDB主要特性:

  • 内置HTTP接口,使用方便
  • 数据可以打标记,查让查询可以很灵活
  • 类SQL的查询语句
  • 安装管理很简单,并且读写数据很高效
  • 能够实时查询,数据在写入时被索引后就能够被立即查出

1.安装

  (1)windows下

  下载 https://portal.influxdata.com/downloads/

   选择

  解压

  启动服务端,打开命令窗口,到这个目录下,执行

influxd

  启动客户端,打开命令窗口,到这个目录下,执行

influx

  安装成功

  (2)Linux下

  下载

wget https://dl.influxdata.com/influxdb/releases/influxdb-1.7.7_linux_amd64.tar.gz

  解压

tar xvfz influxdb-1.7.7_linux_amd64.tar.gz 

  重命名

mv influxdb-1.7.7-1 influxdb

  influxdb/usr/bin/influxd服务端

./influxd

  全局使用

ln -s /www/influxdb/usr/bin/influxd /usr/local/bin/influxd

  使用

influxd

  influxdb/usr/bin/influxd客户端命令

ln -s /www/influxdb/usr/bin/influx /usr/local/bin/influx

  使用

influx

> create database mydb
> show databases
name: databases
name
----
_internal
mydb

2.简单使用

(1)名词介绍:

database:数据库

measurement:数据库中的表

points:表里面的一行数据

Point由时间戳(time)、数据(field)和标签(tags)组成

time:每条数据记录的时间,也是数据库自动生成的主索引

fields:各种记录的值

tags:各种有索引的属性

(2)数据库基本操作

#创建数据库
> create database "test"
#显示所有数据库
> show databases
name: databases
name
----
_internal
test
#打开数据库
> use test
Using database test
#显示该数据库中所有的表
> show measurements
#创建表,直接在插入数据的时候指定表名test
> insert test,host=127.0.0.1,monitor_name=test count=1
> show measurements
name: measurements
name
----
test
#删除表test
> drop measurement "test"
> show measurements
#删除数据库test
> drop database test
> show databases
name: databases
name
----
_internal

说明:

  insert test,host=127.0.0.1,monitor_name=test count=1

  test:表名

  host=127.0.0.1,monitor_name=test:tag

  count=1:field

插入与查询数据

> create database test
> show databases
name: databases
name
----
_internal
test
> show measurements
> insert test,host=127.0.0.1,monitor_name=test count=1
> show measurements
name: measurements
name
----
test
> select * from test order by time desc
name: test
time count host monitor_name
---- ----- ---- ------------
1561957302455301318 1 127.0.0.1 test
> insert test,host=127.0.0.1,monitor_name=test count=1
> select * from test order by time desc
name: test
time count host monitor_name
---- ----- ---- ------------
1561957336177679133 1 127.0.0.1 test
1561957302455301318 1 127.0.0.1 test

(3)数据保存策略(Retention Policies):

  influxDB是没有提供直接删除数据记录的方法,但是提供数据保存策略,主要用于指定数据保留时间,超过指定时间,就删除这部分数据

  查看当前数据库Retention Policies

> show retention policies on "test"
name duration shardGroupDuration replicaN default
---- -------- ------------------ -------- -------
autogen 0s 168h0m0s 1 true

  创建新的Retention Policies

> create retention policy "rp_name" on "test" duration 1w replication 1 default
> show retention policies on "test"
name duration shardGroupDuration replicaN default
---- -------- ------------------ -------- -------
autogen 0s 168h0m0s 1 false
rp_name 168h0m0s 24h0m0s 1 true

  说明:

rp_name:策略名

test:数据库名

1w:保存1周,1周之前的数据将被删除,influxdb具有各种事件参数,比如:h(小时),d(天),w(星期)

replication 1:副本个数,一般为1就可以了

default:设置为默认策略

  修改Retention Policies

> alter retention policy "rp_name" on "test" duration 5d default
> show retention policies on "test"
name duration shardGroupDuration replicaN default
---- -------- ------------------ -------- -------
autogen 0s 168h0m0s 1 false
rp_name 120h0m0s 24h0m0s 1 true

  删除Retention Policies

> drop retention policy "rp_name" on "test"
> show retention policies on "test"
name duration shardGroupDuration replicaN default
---- -------- ------------------ -------- -------
autogen 0s 168h0m0s 1 false

(4)连续查询(Continous Queries)

  InfluxDB的数据保留策略,数据超过保存策略里指定的时间之后,就会被删除。但是如果我们不想完全将这些数据删除掉,就需要连续查询(Continuous Queries)的帮助了。

  连续查询主要用在将数据归档,以降低系统空间的占用率,主要是以降低精度为代价。

  连续查询是在数据库中自动定时启动的一组语句,语句中必须包含 SELECT 关键词和 GROUP BY time() 关键词。

  InfluxDB会将查询结果放在指定的数据表中

  查看Continous Queries

> show continuous queries
name: _internal
name query
---- ----- name: test
name query
---- -----

  创建Continous Queries

> show continuous queries
name: _internal
name query
---- ----- name: test
name query
---- -----
> create continuous query cq_name on test begin select sum(count) into test1 from test group by time(10m) end
> show continuous queries name: _internal
name query
---- ----- name: test
name query
---- -----
cq_name CREATE CONTINUOUS QUERY cq_name ON test BEGIN SELECT sum(count) INTO test.rp_name.test1 FROM test.rp_name.test GROUP BY time(10m) END

  删除Continous Queries

> drop continuous query cq_name on test
> show continuous queries
name: _internal
name query
---- ----- name: test
name query
---- -----

在InfluxDB中,将连续查询与数据存储策略一起使用会达到最好的效果

(5)用户管理

> show users
user admin
---- -----
> create user "abc" with password '123'
> show users
user admin
---- -----
abc false
> drop user "abc"
> show users
user admin
---- -----

注:

  如果启动失败,请查看是否是端口被占用,默认端口为8088

InfluxDB入门的更多相关文章

  1. InfluxDB学习系列教程,InfluxDB入门必备教程

    nfluxDB是一个当下比较流行的时序数据库,InfluxDB使用 Go 语言编写,无需外部依赖,安装配置非常方便,适合构建大型分布式系统的监控系统. 本文是一系列InfluxDB学习教程的目录,现主 ...

  2. influxdb入门——和mongodb一样可以动态增加字段

    ./influxd [--config yourconfigfile 2> /dev/null]  之所以重定向 因为默认log是stderr 再启动客户端./influx > CREAT ...

  3. InfluxDB入门教程

    前言InfluxDB是一个时序性数据库,详细资料如下http://liubin.org/blog/2016/02/18/tsdb-intro/ 下载和安装LZ从官网下载的是influxdb-1.2.4 ...

  4. .NET Core微服务之基于App.Metrics+InfluxDB+Grafana实现统一性能监控

    Tip: 此篇已加入.NET Core微服务基础系列文章索引 一.关于App.Metrics+InfluxDB+Grafana 1.1 App.Metrics App.Metrics是一款开源的支持. ...

  5. 别人家的 InfluxDB 实战 + 源码剖析

    1. 前几次的分享,我们多次提到了下图中 Metrics 指标监控的 Prometheus.Grafana,而且 get 到了 influxdata 旗下的 InfluxDB 的入门技能. 本次,我们 ...

  6. 通过Python将监控数据由influxdb写入到MySQL

    一.项目背景 我们知道InfluxDB是最受欢迎的时序数据库(TSDB).InfluxDB具有 持续高并发写入.无更新:数据压缩存储:低查询延时 的特点.从下面这个权威的统计图中,就可以看出Influ ...

  7. InfluxDB Java入门

    添加依赖 <dependency> <groupId>org.influxdb</groupId> <artifactId>influxdb-java& ...

  8. influxDB安装部署及入门

    1.下载安装包,本文使用1.7.7版本 https://portal.influxdata.com/downloads/ 2.安装 yum localinstall influxdb-1.7.7.x8 ...

  9. InfluxDB学习之InfluxDB的基本操作

    InfluxDB提供类SQL语法,如果熟悉SQL的话会非常容易上手.本文就为大家介绍一下InfluxDB的基本操作.     InfluxDB提供类SQL语法,如果熟悉SQL的话会非常容易上手. 本文 ...

随机推荐

  1. 解决页面初始化vue加载代码问题

    <style type="text/css"> /* 解决页面初始化vue加载代码问题 */ [v-cloak] { display: none; } </sty ...

  2. 1.zookeeper是干什么的?

    Zookeeper是Hadoop的一个子项目,虽然源自hadoop,但是我发现zookeeper脱离hadoop的范畴开发分布式框架的运用越来越多.今天我想谈谈zookeeper,本文不谈如何使用zo ...

  3. SQL操作Spark SQL--CatalogApiTest

    object CatalogApiTest { def main(args: Array[String]): Unit = { val spark = SparkSession .builder() ...

  4. 二、python介绍

    python第一篇-------python介绍 一.python介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,Guido开始写Python语 ...

  5. JSON和计算机网络的个人总结

    JSON JSON是什么? JSON:JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式.它基于ECMAScript (欧洲计算机协会制定的js规范) ...

  6. JavaScript基础06——字符串

    字符串的创建: 字符串的创建: var str = "hello world"; //常量,基本类型创建 var str2 = new String("hello wor ...

  7. c# NPOI aspx导出数据

    public static class XSSFWorkbook_Excel { /// <summary> /// GetExcel /// </summary> /// & ...

  8. LOJ P10016 灯泡 题解

    每日一题 day50 打卡 Analysis 用初中学的相似推一波式子,再用三分一搞就好了. #include<iostream> #include<cstdio> #incl ...

  9. learning java 使用WatchService监控文件变化

    import java.io.IOException; import java.nio.file.*; public class WatchServiceTest { public static vo ...

  10. Dump文件定制工具---MiniDump Wizard

    MiniDump向导应用程序允许在不编写代码的情况下尝试MiniDumpWriteDump和MiniDumpCallback函数.可以指定将传递给MiniDumpWriteDump函数的MINIDUM ...