InfluxDB Java入门
添加依赖
<dependency>
<groupId>org.influxdb</groupId>
<artifactId>influxdb-java</artifactId>
<version>2.5</version>
</dependency>
Java实例
package com.ysl.influx; import org.influxdb.InfluxDB;
import org.influxdb.InfluxDBFactory; public class InfluxDBUtils { private String userName;
private String password;
private String url; private InfluxDB influxDB; public InfluxDBUtils(String url,String userName, String password) {
this.userName = userName;
this.password = password;
this.url = url;
} public InfluxDB builder(){
if(influxDB == null){
synchronized (this){
if(influxDB == null){
influxDB = InfluxDBFactory.connect(url,userName,password);
}
}
}
return influxDB;
} public String getUserName() {
return userName;
} public void setUserName(String userName) {
this.userName = userName;
} public String getPassword() {
return password;
} public void setPassword(String password) {
this.password = password;
} public String getUrl() {
return url;
} public void setUrl(String url) {
this.url = url;
} public InfluxDB getInfluxDB() {
return influxDB;
} public void setInfluxDB(InfluxDB influxDB) {
this.influxDB = influxDB;
}
}
package com.ysl.influx; import org.influxdb.InfluxDB;
import org.influxdb.dto.Point;
import org.influxdb.dto.Query;
import org.influxdb.dto.QueryResult; import java.util.Map;
public class InfluxdbService { private String database;
private String policyName;
private InfluxDB influxDB; public InfluxdbService(String database, String policyName, InfluxDB influxDB) {
this.database = database;
this.policyName = policyName;
this.influxDB = influxDB;
} public void createDatabase(){
influxDB.createDatabase(database);
} /**
* 建保存策略
* @param duration 存放时间
* @param replicationNum 备份数量
*/
public void createRetentionPolicy(String duration, Integer replicationNum){
String cmd = String.format("CREATE RETENTION POLICY %s ON %s DURATION %s REPLICATION %s DEFAULT",policyName,database,duration,replicationNum);
influxDB.query(new Query(cmd,database));
} public QueryResult query(String cmd){
return influxDB.query(new Query(cmd,database));
} /**
* 插入数据
* @param measurement 表名
* @param tags
* @param fields
*/
public void insert(String measurement,Map<String,String> tags,Map<String,Object> fields){
Point.Builder builder = Point.measurement(measurement).tag(tags);
if(fields != null && !fields.isEmpty()){
builder.fields(fields);
}
influxDB.write(database,policyName,builder.build());
} public String getDatabase() {
return database;
} public String getPolicyName() {
return policyName;
} public InfluxDB getInfluxDB() {
return influxDB;
}
}
package com.ysl.influx; import org.influxdb.InfluxDB;
import org.influxdb.dto.QueryResult; import java.util.HashMap;
import java.util.List;
import java.util.Map; public class InfluxdbTest { /**
* 数据库名
*/
private static final String DB_NAME = "influx_test"; /**
* 数据保存策略
*/
private static final String retentionPolicy = "influx_name"; public static void main(String[] args){ InfluxDB influxDB = new InfluxDBUtils("http://localhost:8086/", "user", "pass").builder();
InfluxdbService service = new InfluxdbService(DB_NAME,retentionPolicy,influxDB); service.createDatabase(); service.createRetentionPolicy("30d", ); Map<String, String> tags = new HashMap<>();
tags.put("methodName", "getName");
Map<String, Object> fields = new HashMap<>();
fields.put("rt", );
fields.put("tps", );
service.insert("measurementKey", tags, fields); // 查询数据
QueryResult queryResult = service.query("select * from \"measurementKey\"");
List<QueryResult.Result> results = queryResult.getResults();
if (results != null && results.size() > ) {
for (QueryResult.Result result : results) {
System.out.println(result.toString());
}
}
}
}
InfluxDB Java入门的更多相关文章
- Java入门第一章
后天就是十一长假了,亲们准备好了去哪儿玩了吗? 今天有点空,就来聊聊Java吧,当然是一些Java入门知识了,网上有很多,这里我只是列举一些我自己学到的,感谢大家关注喵的博客这么久,也为大家带来点新知 ...
- [Java入门笔记] 面向对象编程基础(二):方法详解
什么是方法? 简介 在上一篇的blog中,我们知道了方法是类中的一个组成部分,是类或对象的行为特征的抽象. 无论是从语法和功能上来看,方法都有点类似与函数.但是,方法与传统的函数还是有着不同之处: 在 ...
- 第1章Java入门体验
第1章Java入门体验 1.java简介和平台应用 Java是sun公司开发出来,现在属于ORACLE公司java分为几个部分:首先是最基础的Java SE部分,这部分是Java的基础知识,主要包括: ...
- Java入门记(五):容器关系的梳理(下)——Map
注意:阅读本文及相关源码时,需要数据结构相关知识,包括:哈希表.链表.红黑树. Map是将键(key)映射到值(value)的对象.不同的映射不能包含相同的键:每个键最多只能映射到一个值.下图是常见M ...
- Java入门(二)——果然断更的都是要受惩罚的。。。
断更了一个多月,阅读量立马从100+跌落至10-,虽说不是很看重这个,毕竟只是当这个是自己的学习笔记,但有人看,有人评论,有人认同和批评的感觉还是很巴适的,尤其以前有过却又被剥夺的,惨兮兮的. 好好写 ...
- Android初涉及之Android Studio&JAVA入门--二月不能不写东西
是的,我还没有放弃写博客. 是的,我也没有放弃PHP的学习. 是的,我要开始学学最TM火的Android开发了. 你呢 1.Android Studio 一.概况 安装和配置什么的就不具体说了,网上一 ...
- JAVA手记 JAVA入门(安装+Dos下运行)
JAVA入门特供= =,今天设置环境变量后用dos运行的时候发现出现“找不到或无法加载主类”,索性查了些资料重新看了看JAVA入门的部分. 声明:我的笔记本暂时用的是Win10系统,Windows其他 ...
- Java入门教程总目录
Java入门教程总目录 持续更新中... 1.Java常识汇总 2.Java框架对比 3.Java技术路线 4.Java编码规范 5.Java环境变量配置 6.枚举 7.操作符 12.定时任务
- Java入门的程序汇总
Java入门的基础程序,虽然很简单,也要多练习,下面有重点的总结一下 1.HelloWorld这个不说了 2.常量与变量部分 基本数据类型使用 public class Javashujuleixin ...
随机推荐
- 惊讶于word 的流畅
word 这个产品 的操作流畅 比自家产品OneNote 比wps 强的太多 用后的体验是,再用其他的编译文字的软件,便感觉操作不畅,不流利,不舒服.(使人曾经沧海难为水,自然而然的不用别人的产品,w ...
- Hadoop3集群搭建之——hive添加自定义函数UDTF
上篇: Hadoop3集群搭建之——虚拟机安装 Hadoop3集群搭建之——安装hadoop,配置环境 Hadoop3集群搭建之——配置ntp服务 Hadoop3集群搭建之——hive安装 Hadoo ...
- 2018.11.08 NOIP模拟 水管(简单构造)
传送门 仔细读题会发现只要所有点点权之和等于0一定有解. 如何构造? 直接当做树来构造就行了,非树边都赋值成0就行. 代码
- 如何将本地代码通过git上传到码云
ps:同部署到GitHub上一样 http://www.cnblogs.com/pcx105/p/7777932.html
- poj--2299(树状数组+离散化)
一.离散化: https://www.cnblogs.com/2018zxy/p/10104393.html 二.逆序数 AC代码: #include<iostream> #include ...
- hdu-1042(大数+万进制)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1042 参考文章:https://blog.csdn.net/tigerisland45/article ...
- (17)Questioning the universe
https://www.ted.com/talks/stephen_hawking_asks_big_questions_about_the_universe/transcript00:13There ...
- boost-字符编码转换:使用conv
Windows下的字符集转换可以使用WideCharToMultiByte/ MultiByteToWideChar,Linux下字符集转换可以使用iconv()函数,下面为使用boost的conv来 ...
- 学以致用十三-----Centos7.2+python3+YouCompleteMe成功历程
历经几天的摸索,趟过几趟坑之后,终于完成YouCompleteMe的安装配置. 今天同样是个不能忘记的日子,国耻日,勿忘国耻.(9.18) 服务器安装好,基本配置配置好后,开始安装. ======== ...
- 适配android和iOS上position:absolute和input问题
//适配android上absolute和input的问题var oHeight = $(document).height(); //屏幕当前的高度$(window).resize(function( ...