概述
写在前面
时序数据库,数据过来能够一直写,influxdb会自动打上一个时间戳【毫秒级别】
安装:直接按照官网即可
https://docs.influxdata.com/influxdb/v1.7/introduction/installation/
Getting started with InfluxDB OSS
参照官网:
https://docs.influxdata.com/influxdb/v1.7/introduction/getting-started/
安装好之后:
yum list installed |grep influxdb
端口
默认influxDB使用以下端口
8086: 用于客户端和服务端交互的HTTP API
8088: 用于提供备份和恢复的RPC服务
配置
配置文件通过安装包安装,在linux上默认位置:
/etc/influxdb/influxdb.conf
查看默认配置:
列出当前使用的配置
influxd config
使用指定配置文件启动
influxd -config /etc/influxdb/influxdb.conf
使用路径
默认数据保存路径
/var/lib/influxdb/data
默认`write-ahead-log(WAL)保存路径
/var/lib/influxdb/wal
默认metadata 保存路径
/var/lib/influxdb/meta
网络时间协议(NTP)
influxDB使用所在主机的本地时间的UTC时间(比国内晚8个小时)来设置timestamp,多个主机之间使用NTP协议同步时间,如果时间不同步,会导致数据的时间戳不准确.
0.service influxdb start
influx -precision rfc3339
InfluxDB API默认在端口8086上运行。
因此,默认情况下,influx 将连接到端口8086和localhost。
如果您需要更改这些默认值,请运行涌入–help
-precision参数指定任何返回的时间戳的格式/精度。
在上面的例子中,rfc3339告诉InfluxDB返回RFC3339格式的时间戳
(YYYY-MM-DDTHH:MM:SS.nnnnnnnnnn)
To exit the InfluxQL shell, type exit and hit return.
1.create a database with the CREATE DATABASE <db-name>
CREATE DATABASE mydb
2. SHOW DATABASES
Influ_DB创建并使用_internal系统数据库来存储内部运行时指标。
3.USE <db-name>
USE mydb
4. 插入语句
INSERT cpu,host=serverA,region=us_west value=0.64
现在已将测量名称为cpu且标记为host和region的点写入数据库,测量值为0.64。
> SELECT "host", "region", "value" FROM "cpu"
name: cpu
---------
time
host
region
value
2015-10-21T19:28:07.580664347Z
serverA
us_west
0.64
如果没有为某个点提供时间戳,InfluxDB会在获取该点时分配本地当前时间戳。
5.让我们尝试存储另一种类型的数据,在同一测量中有两个字段:
INSERT temperature,machine=unit42,type=assembly external=25,internal=37
> SELECT * FROM "temperature"
name: temperature
-----------------
time
external
internal
machine type
2015-10-21T19:28:08.385013942Z
25
37
unit42
assembly
时区: 默认插入数据的时间是时间标准时间UTC ,然而北京时间东八区比标准时间快8h,
这里查询的时候可以在后面加tz(‘Asia/Shanghai’) ,就是真正你数据那个时候的北京时间就对了。
假如需要java代码处理的话,可以将查询结果中的时间 都加上8h即可。也不知道可以不,我暂时是这样想的
SELECT * FROM “temperature” tz(‘Asia/Shanghai’);
推荐在大型数据库中使用* 的时候,最好加上limit,消除数据库挂掉的危机
> SELECT * FROM /.*/ LIMIT 1
--
> SELECT * FROM "cpu_load_short"
--
> SELECT * FROM "cpu_load_short" WHERE "value" > 0.9
实战01-参照上面的创建语句
INSERT cpu,host=serverA,region=us_west value=0.64
INSERT temperature,machine=unit42,type=assembly external=25,internal=37
CREATE DATABASE mydb;
USE mydb;
insert logtype_count,logtype=INFO count=12
insert logtype_count,logtype=WARN count=1232
insert logtype_count,logtype=DEBUG count=1113
insert logtype_count,logtype=ERROR count=114
show measurements;
查看一下:
> select * from logtype_count;
name: logtype_count
time
count logtype
----
----- -------
2019-08-07T05:32:18.291002869Z 12
INFO
2019-08-07T05:32:18.295084203Z 1232
WARN
2019-08-07T05:32:18.298290348Z 1113
DEBUG
2019-08-07T05:32:19.255849342Z 114
ERROR
实战02-influxdb-java
pom文件中添加如下的依赖
<!-- https://mvnrepository.com/artifact/org.influxdb/influxdb-java -->
<dependency>
<groupId>org.influxdb</groupId>
<artifactId>influxdb-java</artifactId>
<version>2.5</version>
</dependency>
测试代码:
import org.influxdb.InfluxDB;
import org.influxdb.InfluxDBFactory;
/**
* Description: influxdb-java
*
* @Author: 留歌36
* @Date: 2019/8/7 13:09
*/
public class InfluxDB2JavaApp {
private static InfluxDB influxDB;
private static String defaultRetentionPolicy(String version) {
if (version.startsWith("0.") ) {
return "default";
} else {
return "autogen";
}
}
public static void main(String[] args) {
String value = "logtype_count,logtype=FATAL count=333";
// 定义连接influxdb
influxDB = InfluxDBFactory
.connect("http://hostname:8086", "admin", "admin");
// 获取版本协议
String retentionPolicy = defaultRetentionPolicy(influxDB.version());
// 这里只有一个节点,就选择ConsistencyLevel.ONE
influxDB.write("mydb", retentionPolicy, InfluxDB.ConsistencyLevel.ONE, value);
}
}
执行如上代码之后,再次查询:
> select * from logtype_count;
name: logtype_count
time
count logtype
----
----- -------
2019-08-07T05:32:18.291002869Z 12
INFO
2019-08-07T05:32:18.295084203Z 1232
WARN
2019-08-07T05:32:18.298290348Z 1113
DEBUG
2019-08-07T05:32:19.255849342Z 114
ERROR
2019-08-07T05:47:38.832463456Z 333
FATAL
发现数据已经成功插入了
简单入门,到此结束
最后
以上就是深情钥匙为你收集整理的InfuxDB 时序数据库入门+influxdb-java的全部内容,希望文章能够帮你解决InfuxDB 时序数据库入门+influxdb-java所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复