influxdb java maven_InfluxDB 基本认识

一、InfluxDB 简介

InfluxDB 是用Go语言编写的一个开源分布式时序、事件和指标数据库,无需外部依赖。类似的数据库有Kairosdb、OpenTsdb等。

三大特性:

时序性(Time Series):与时间相关的函数的灵活使用(诸如最大、最小、求和等);

度量(Metrics):对实时大量数据进行计算;

事件(Event):支持任意的事件数据,换句话说,任意事件的数据我们都可以做操作。

有以下七大特点:

1)schemaless(无结构),可以是任意数量的列;

2)可拓展的;

3)支持min, max, sum, count, mean, median 等一系列函数,方便统计;

4)原生的HTTP支持,内置HTTP API;

5)强大的类SQL语法;

6)自带管理界面,方便使用,Built-in Explorer 自带管理工具;

7)Powerful Query Language 类似sql;

influxdb的两个http端口:

port 8083:管理页面端口,访问localhost:8083可以进入你本机的influxdb管理页面;

port 8086:http连接influxdb client端口,一般使用该端口往本机的influxdb读写数据。

二、基本操作:

influxdb相关名词

database:数据库;

measurement:数据库中的表;

points:表里面的一行数据。

influxDB中独有的一些概念

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

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

fields:各种记录的值;

tags:各种有索引的属性

数据库与表的操作:

#进入influxDB数据库

influx

#创建数据库

create database "db_name"

#显示所有的数据库

show databases

#删除数据库

drop database "db_name"

#使用数据库

use db_name

#显示该数据库中所有的表

show measurements

#创建表,直接在插入数据的时候指定表名

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

#删除表

drop measurement "measurement_name"

#清空数据库表里面的数据

delete from tbname

InfluxDB中既有显式的新建表的语句,也有通过insert数据的方式来建立新表

insert tbname,hostname=server01 value=4422

其中 tbname就是表名,hostname是索引(tag),value=xx是记录值(field),记录值可以有多个,系统自带追加时间戳或者添加数据时,自己写入时间戳

insert tbname,hostname=server01 value=442221834240i 1435362189575692182

show retention policies on "db_name"     查看当前数据库Retention Policies

创建新的Retention Policies

create retention policy "rp_name" on "db_name" duration 3w replication 1 default

查看measurement里面的tags和fields

show tag keys from measurement_name

show field keys from measurement_name

select * from measurement_name

创建新的Retention Policies

create retention policy "rp_name" on "db_name" duration 3w replication 1 default

- rp_name:策略名;

- db_name:具体的数据库名;

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

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

- default:设置为默认策略

创建新的Continous Queries

create continous query cq_name on db_name begin select sum(count) into new_table_name from table_name group by time(30m) end

- cq_name:连续查询名字;

- db_name:数据库名字;

- sum(count):计算总和;

- table_name:当前表名;

- new_table_name:存新的数据的表名;

- 30m:时间间隔为30分钟

三、数据录入

InfluxDB三种操作方式:

客户端命令行方式

插入数据:

curl -i -X POST 'http://localhost:8086/write?db=monitor' --data-binary 'monitor,host=server01,region=us-west value=0.60'

查询数据:

curl -G 'http://localhost:8086/query?pretty=true' --data-urlencode "db=monitor" --data-urlencode "q=SELECT * FROM measurement_name "

HTTP API接口

插入数据

Postman: http://localhost:8086/write?db=monitor&u=root&p=123456

Body: measurement_name,host=localhost,name=zhangsan sex=male,age=20

measurement_name相当于表名,host=localhost,name=zhangsan 是tagset,类似索引,sex=male,age=20 是filed字段,也就是存到数据库里面的数据。

查询数据: 查询结果以Json的数据格式返回

http://localhost:8086/query?db=monitor&q=SELECT * FROM measurement_name

各种语言API库

Influxdb有针对各种语言的API

Java maven依赖

org.influxdb

influxdb-java

2.7

Influxdb的数据保留策略:

InfluxDB的数据保留策略(RP)用来定义数据在InfluxDB中存放的时间,或者定义保存某个期间的数据。一个数据库可以有多个保留策略,但每个策略必须是独一无二的。

show retention policies on dbName 可以查看指定数据库的数据保留策略.

其中duration是数据保留时间,shardGroupDuration是每个shard上的数据的时间跨度,replicaN是数据的副本数量,default是指这个retention policy是否是指定数据库的默认数据保留策略

创建数据保留策略并设置为默认数据保留策略

create retention policy "2_hours" on "monitor" duraption 2h replication 1 default

修改数据保留策略

alter retention policy "2_hours" on "monitor" duraption 4h default

删除数据保留策略

drop retention policy "2_hours" on "monitor"

四、用户管理

#显示用户

show users

#创建用户

create user "username" with password 'password'

#创建管理员权限用户

create user "username" with password 'password' with all privileges

#删除用户

drop user "username"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值