InfluxDB入门
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入门的更多相关文章
- InfluxDB学习系列教程,InfluxDB入门必备教程
nfluxDB是一个当下比较流行的时序数据库,InfluxDB使用 Go 语言编写,无需外部依赖,安装配置非常方便,适合构建大型分布式系统的监控系统. 本文是一系列InfluxDB学习教程的目录,现主 ...
- influxdb入门——和mongodb一样可以动态增加字段
./influxd [--config yourconfigfile 2> /dev/null] 之所以重定向 因为默认log是stderr 再启动客户端./influx > CREAT ...
- InfluxDB入门教程
前言InfluxDB是一个时序性数据库,详细资料如下http://liubin.org/blog/2016/02/18/tsdb-intro/ 下载和安装LZ从官网下载的是influxdb-1.2.4 ...
- .NET Core微服务之基于App.Metrics+InfluxDB+Grafana实现统一性能监控
Tip: 此篇已加入.NET Core微服务基础系列文章索引 一.关于App.Metrics+InfluxDB+Grafana 1.1 App.Metrics App.Metrics是一款开源的支持. ...
- 别人家的 InfluxDB 实战 + 源码剖析
1. 前几次的分享,我们多次提到了下图中 Metrics 指标监控的 Prometheus.Grafana,而且 get 到了 influxdata 旗下的 InfluxDB 的入门技能. 本次,我们 ...
- 通过Python将监控数据由influxdb写入到MySQL
一.项目背景 我们知道InfluxDB是最受欢迎的时序数据库(TSDB).InfluxDB具有 持续高并发写入.无更新:数据压缩存储:低查询延时 的特点.从下面这个权威的统计图中,就可以看出Influ ...
- InfluxDB Java入门
添加依赖 <dependency> <groupId>org.influxdb</groupId> <artifactId>influxdb-java& ...
- influxDB安装部署及入门
1.下载安装包,本文使用1.7.7版本 https://portal.influxdata.com/downloads/ 2.安装 yum localinstall influxdb-1.7.7.x8 ...
- InfluxDB学习之InfluxDB的基本操作
InfluxDB提供类SQL语法,如果熟悉SQL的话会非常容易上手.本文就为大家介绍一下InfluxDB的基本操作. InfluxDB提供类SQL语法,如果熟悉SQL的话会非常容易上手. 本文 ...
随机推荐
- 解决页面初始化vue加载代码问题
<style type="text/css"> /* 解决页面初始化vue加载代码问题 */ [v-cloak] { display: none; } </sty ...
- 1.zookeeper是干什么的?
Zookeeper是Hadoop的一个子项目,虽然源自hadoop,但是我发现zookeeper脱离hadoop的范畴开发分布式框架的运用越来越多.今天我想谈谈zookeeper,本文不谈如何使用zo ...
- SQL操作Spark SQL--CatalogApiTest
object CatalogApiTest { def main(args: Array[String]): Unit = { val spark = SparkSession .builder() ...
- 二、python介绍
python第一篇-------python介绍 一.python介绍 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间,Guido开始写Python语 ...
- JSON和计算机网络的个人总结
JSON JSON是什么? JSON:JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式.它基于ECMAScript (欧洲计算机协会制定的js规范) ...
- JavaScript基础06——字符串
字符串的创建: 字符串的创建: var str = "hello world"; //常量,基本类型创建 var str2 = new String("hello wor ...
- c# NPOI aspx导出数据
public static class XSSFWorkbook_Excel { /// <summary> /// GetExcel /// </summary> /// & ...
- LOJ P10016 灯泡 题解
每日一题 day50 打卡 Analysis 用初中学的相似推一波式子,再用三分一搞就好了. #include<iostream> #include<cstdio> #incl ...
- learning java 使用WatchService监控文件变化
import java.io.IOException; import java.nio.file.*; public class WatchServiceTest { public static vo ...
- Dump文件定制工具---MiniDump Wizard
MiniDump向导应用程序允许在不编写代码的情况下尝试MiniDumpWriteDump和MiniDumpCallback函数.可以指定将传递给MiniDumpWriteDump函数的MINIDUM ...