InfluxDB简介

作者: YangSmokey | 来源:发表于2019-03-06 18:42 被阅读0次

InfluxDB是一个开源分布式的时间序列、事件和指标数据库。使用 GoLand 编写,无需外部依赖。其设计目标是实现分布式和水平伸缩扩展。

influxDB MySQL 描述
database database 数据库
measuremen table 数据表
points row 数据行

InfluxDB中独有的概念

Point由时间戳(time)、数据(field)、标签(tags)组成。
Point相当于传统数据库里的一行数据,如下表所示:

Point 描述
time 每个数据记录时间,是数据库中的主索引(会自动生成)
fields 各种记录值(没有索引的属性)
tags 各种有索引的属性

从概念上讲,您可以将 measurement 视为一个SQL表,其中主索引始终是时间。 tags并且fields是表中的有效列。 tags被编入索引,而fields不是。不同之处在于,使用InfluxDB,您可以进行数百万次测量,您不必预先定义模式,也不会存储空值。

入门实践

root@a0bfadf454e6:/# ./usr/bin/influx
Connected to http://localhost:8086 version 1.7.4
InfluxDB shell version: 1.7.4
Enter an InfluxQL query
>

显示所有数据库:

> SHOW DATABASES
name: databases
name
----
_internal
TestDataBase
DeviceManage

创建数据库:

CREATE DATABASE "db_name"

删除数据库:

DROP DATABASE "db_name"

新增一条数据:

语法格式:

<measurement>[,<tag-key>=<tag-value>...] <field-key>=<field-value>[,<field2-key>=<field2-value>...] [unix-nano-timestamp]
INSERT Device,host=Server_1,region=ck value=740

以下几行都是可以写入InfluxDB的点的示例:

cpu,host=serverA,region=us_west value=0.64
payment,device=mobile,product=Notepad,method=credit billed=33,licenses=3i 1434067467100293230
stock,symbol=AAPL bid=127.46,ask=127.48
temperature,machine=unit42,type=assembly external=25,internal=37 1434067467000000000

使用数据库:

> USE TestDataBase
Using database TestDataBase

显示数据库中所有数据表:

> SHOW MEASUREMENTS
name: measurements
name
----
Device

显示数据表中所有数据:

> SELECT * FROM "Device"
name: Device
time                host     region value
----                ----     ------ -----
1551838714809273800 Server_1 zh     510
1551838773182374400 Server_1 ck     740
1551838784114047000 Server_1 sz     880
1551838793649884400 Server_1 df     245
1551838808490581100 Server_1 bj     543
1551839343592639700 Server_1 kd     324
1551839352626367200 Server_1 cc     674
1551839361132222700 Server_1 gk     932
1551839370771752200 Server_1 kk     633

警告:在大型数据库上使用*不带LIMIT子句可能会导致性能问题。您可以使用Ctrl+C取消响应时间过长的查询。

> SELECT * FROM /.*/ LIMIT 1
> SELECT * FROM /.*/ WHERE "value" > 0.9

实例:

# 查询最新的三条数据
SELECT * FROM "Device" ORDER BY time DESC LIMIT 3

在InfluxDB中并没有提供数据的删除与修改方法。不过我们可以通过数据保存策略(Retention Policies)来实现删除。

查看当前数据库的Retention Policies:

SHOW RETENTION POLICIES ON "DataBase_Name"

创建新的Retention Policies:

CREATE RETENTION POLICY "rp_name" ON "db_name" DURATION 30d REPLICATION 1 DEFAULT
  1. rp_name:策略名
  2. db_name:具体的数据库名
  3. 30d:保存30天,30天之前的数据将被删除
  4. 它具有各种时间参数,比如:h(小时),w(星期)
  5. REPLICATION 1:副本个数,这里填1就可以了
  6. DEFAULT 设为默认的策略

修改Retention Policies:

ALTER RETENTION POLICY "rp_name" ON db_name" DURATION 3w DEFAULT

删除Retention Policies:

DROP RETENTION POLICY "rp_name" ON "db_name"

删除数据表:

DROP MEASUREMENT "measurementName"

相关文章

  • InfluxDB简介

    InfluxDB是一个开源分布式的时间序列、事件和指标数据库。使用 GoLand 编写,无需外部依赖。其设计目标是...

  • InfluxDB 简介

    InfluxDB 是一个时间序列数据库(TSDB), 被设计用来处理高写入、高查询负载,是 TICK 的一部分。 ...

  • Centos7 下 InfluxDB 从安装开始到入门

    仅供学习,转载请注明出处 参考文献 InfluxDB 1.7文档 InfluxDB简介 InfluxDB是一个时间...

  • InfluxDB

    参考文档 InfluxDB 1.7文档 InfluxDB简介 InfluxDB 是一个时间序列数据库,旨在处理高写...

  • windows下安装TICK

    下载TICK 下载TICK,下载页面如下 InfluxDB 简介 "InfluxDB 目的在处理时间序列数据,传统...

  • influxdb

    influxdb简介 InfluxDB是基于Golang编写的一个用于存储和分析时间序列数据的开源数据库。 安装简...

  • 时序数据库influxdb

    influxdb 简介 Influxdb是一个开源的分布式时序、时间和指标数据库,使用go语言编写,无需外部依赖。...

  • InfluxDB安装部署(CentOS)

    InfluxDB简介 InfluxDB 是用Go语言编写的一个开源分布式时序、事件和指标数据库,无需外部依赖。 主...

  • InfluxDB从原理到实战 - 一篇文章搞懂InfluxDB时

    0x00 简介 InfluxDB默认以UTC时间存储并返回时间戳,当接收到一个时序数据记录时,InfluxDB将时...

  • Centos 7安装Grafana 4及结合Zabbix3.2实

    简介: Grafana 是 Graphite 和 InfluxDB 仪表盘和图形编辑器。Grafana 是开源的,...

网友评论

    本文标题:InfluxDB简介

    本文链接:https://www.haomeiwen.com/subject/arbxpqtx.html