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的话会非常容易上手. 本文 ...
随机推荐
- 实现:调用API函数ShowWindow()来隐藏窗口
只需要将相应代码复制即可. 代码如下: #include <iostream> #include <windows.h> int main() { HWND hDos; //声 ...
- Linux 系统管理——磁盘管理及文件系统实例
1.为主机新增两块30GB的SCSI硬盘 2.划分3个主分区,各5GB,剩余空间作为扩展分区 3.在扩展分区中建立2个逻辑分区,容量分别为2GB.10GB 4.将第一个逻辑分区的类型改为swap 5. ...
- bash循环得到日期目录
#!/bin/bash today=$(date "+%Y%m%d") echo 'today is :'${today} single_input="raw_data/ ...
- Ajax 的一些概念 解析
什么是Ajax Ajax基本概念 Ajax(Asynchronous JavaScript and XML):翻译成中文就是异步的JavaScript和XML. 从功能上来看是一种在无需重新加载整个网 ...
- 缺陷的优先程度(Priority)
测试人员希望程序员什么时间哪个版本修改该bug (1)Urgent 立即修改否则影响开发进度 (2)Veryhigh 本版本修改 (3)High 下个版本修改 (4)Medium 发布前修改 (5)L ...
- mapreduce中reduce没有执行
hadoop执行mapreduce过程reduce不执行原因 1.如果你的map过程中没有context.write()是不执行reduce过程的:2.如果你的map过程中context.write( ...
- rabbitmq添加user及vhost
rabbitmqctl add_vhost /myhost # 添加 vhost rabbitmqctl add_user me me123 # 设置用户和密码 rabbitmqctl set_per ...
- Redis主从搭建环境
一.环境准备 软件环境 redis版本: redis-4.0 操作系统:Centos-7.5 IP:192.168.1.190(主redis) 192.168.1.191(从redis) 硬件环境 服 ...
- 移动端 - adb shell常用命令
一.文件操作相关命令 //进入设备 adb shell //进入指定目录"/data/local/tmp" cd /data/local/tmp //查看目录 ls //进入根目录 ...
- @DateTimeFormat 和 @JsonFormat 注解
1. 准备 定义一个pojo,它有一个 java.util.Date 类型的属性 date. import java.util.Date; public class DateVo { private ...