热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

SpringBoot2.x开发案例之整合国产数据库IoTDB

简介IoTDB是清华大学主导的Apache孵化项目,是一款专为物联

简介

IoTDB 是清华大学主导的 Apache 孵化项目,是一款专为物联网时序数据打造的数据库,提供数据采集、存储、分析的功能。IoTDB 提供端云一体化的解决方案,在云端,提供高性能的数据读写以及丰富的查询能力,针对物联网场景定制高效的目录组织结构,并与 Apache Hadoop、Spark、Flink 等大数据系统无缝打通;在边缘端,提供轻量化的 TsFile 管理能力,端上的数据写到本地 TsFile,并提供一定的基础查询能力,同时支持将 TsFile 数据同步到云端。

架构图

安装

## 下载
wget https://apache.website-solution.net/iotdb/0.12.1/apache-iotdb-0.12.1-server-bin.zip
## 解压
unzip apache-iotdb-0.12.1-server-bin.zip

软件目录结构

  • sbin 启动和停止脚本目录

  • conf 配置文件目录

  • tools 系统工具目录

  • lib 依赖包目录

启动

> nohup sbin/start-server.sh >/dev/null 2>&1 &
or
> nohup sbin/start-server.sh -c -rpc_port >/dev/null 2>&1 &

  • “-c” and “-rpc_port” 都是可选的。

  • 选项 “-c” 指定了配置文件所在的文件夹。

  • 选项 “-rpc_port” 指定了启动的 rpc port。

  • 如果两个选项同时指定,那么rpc_port将会覆盖conf_path下面的配置。

进入客户端控制台:

sbin/start-cli.sh -h 127.0.0.1 -p 6667 -u root -pw root

配置 MQTT

修改配置文件 conf/otdb-engine.properties

####################
### MQTT Broker Configuration
####################
enable_mqtt_service=true
mqtt_port=1883
mqtt_handler_pool_size=1
mqtt_payload_formatter=json
mqtt_max_message_size=1048576

整合

新增配置类 IotDBSessionConfig:

/**
* @author 小柒2012
* @version 1.0
* @description: IoTDB配置
* @date 2021/8/5 22:49
*/

@Configuration
public class IotDBSessionConfig {

@Value("${spring.iotdb.username:root}")
private String username;

@Value("${spring.iotdb.password:root}")
private String password;

@Value("${spring.iotdb.ip:127.0.0.1}")
private String ip;

@Value("${spring.iotdb.port:6667}")
private int port;

@Value("${spring.iotdb.maxSize:10}")
private int maxSize;

@Bean
public SessionPool getSessionPool() {
return new SessionPool(ip, port, username, password, maxSize);
}
}

模拟测试数据:

public static void main(String[] args) {
try {
MQTT mqtt = new MQTT();
mqtt.setHost("127.0.0.1", 1883);
mqtt.setUserName("root");
mqtt.setPassword("root");
BlockingConnection cOnnection= mqtt.blockingConnection();
connection.connect();
Random random = new Random();
for (int i = 0; i <10; i++) {
String payload = String.format("{\n" +
"\"device\":\"root.DNC002\",\n" +
"\"timestamp\":%d,\n" +
"\"measurements\":[\"speed\"],\n" +
"\"values\":[%f]\n" +
"}", System.currentTimeMillis(), random.nextDouble());
System.out.println(payload);
connection.publish("root.DNC002", payload.getBytes(), QoS.AT_LEAST_ONCE, false);
}
connection.disconnect();
} catch (URISyntaxException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}

进入控制台查询数据:

[root@localhost iotdb-0.12.1-server]# sbin/start-cli.sh -h 127.0.0.1 -p 6667 -u root -pw root
---------------------
Starting IoTDB Cli
---------------------
_____ _________ ______ ______
|_ _| | _ _ ||_ _ `.|_ _ \
| | .--.|_/ | | \_| | | `. \ | |_) |
| | .'`
\ \ | | | | | | | __'.
_|
|_| \__. | _| |_ _| |_.' _| |__) |
|_____|'.__.' |_____| |______.'|_______/ version 0.12.1


IoTDB> login successfully
IoTDB>
IoTDB> select * from root.DNC002
+-----------------------------+-----------------+
| Time|root.DNC002.speed|
+-----------------------------+-----------------+
|
2021-08-10T22:58:48.854+08:00| 0.798263|
|2021-08-10T22:58:48.914+08:00| 0.589887|
|
2021-08-10T22:58:48.922+08:00| 0.097675|
|2021-08-10T22:58:48.936+08:00| 0.92061|
|
2021-08-10T22:58:48.947+08:00| 0.9796|
|2021-08-10T22:58:48.955+08:00| 0.873128|
|
2021-08-10T22:58:48.964+08:00| 0.627699|
|2021-08-10T22:58:48.976+08:00| 0.506671|
|
2021-08-10T22:58:48.983+08:00| 0.550821|
|2021-08-10T22:58:48.993+08:00| 0.840226|
+-----------------------------+-----------------+
Total line number = 30
It costs 0.335s

地址:https://iotdb.apache.org/zh
推荐一个超级简单 Java 图形验证码模块
分享一个支付大屏实时监控数据平台
推荐一款清爽的实时监控大屏附安装教程
大屏监控 Metabase 集成到 Java 项目
一个超牛逼的 Java 文件在线预览项目
如何保障消息100%投递成功、消息幂等性
技术人,做的越多你才能走的更远
传统功夫,点到为止,这次不搞偷袭!
小清新前后端分离后台管理系统
一个开源免费的车牌识别训练实战项目
霸气分享 74 款绚丽的监控大屏
一个基于 Vue3.x 的数据可视化大屏项目
推荐一款基于 Vue 的电商级海报生成器
SpringBoot 的接口快速开发框架
基于 SpringBoot + Vue 的智能停车场管理平台


推荐阅读
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • r2dbc配置多数据源
    R2dbc配置多数据源问题根据官网配置r2dbc连接mysql多数据源所遇到的问题pom配置可以参考官网,不过我这样配置会报错我并没有这样配置将以下内容添加到pom.xml文件d ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • Skywalking系列博客1安装单机版 Skywalking的快速安装方法
    本文介绍了如何快速安装单机版的Skywalking,包括下载、环境需求和端口检查等步骤。同时提供了百度盘下载地址和查询端口是否被占用的命令。 ... [详细]
  • 安装mysqlclient失败解决办法
    本文介绍了在MAC系统中,使用django使用mysql数据库报错的解决办法。通过源码安装mysqlclient或将mysql_config添加到系统环境变量中,可以解决安装mysqlclient失败的问题。同时,还介绍了查看mysql安装路径和使配置文件生效的方法。 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 原文地址:https:www.cnblogs.combaoyipSpringBoot_YML.html1.在springboot中,有两种配置文件,一种 ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 在重复造轮子的情况下用ProxyServlet反向代理来减少工作量
    像不少公司内部不同团队都会自己研发自己工具产品,当各个产品逐渐成熟,到达了一定的发展瓶颈,同时每个产品都有着自己的入口,用户 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • 本文介绍了Windows操作系统的版本及其特点,包括Windows 7系统的6个版本:Starter、Home Basic、Home Premium、Professional、Enterprise、Ultimate。Windows操作系统是微软公司研发的一套操作系统,具有人机操作性优异、支持的应用软件较多、对硬件支持良好等优点。Windows 7 Starter是功能最少的版本,缺乏Aero特效功能,没有64位支持,最初设计不能同时运行三个以上应用程序。 ... [详细]
  • Imtryingtofigureoutawaytogeneratetorrentfilesfromabucket,usingtheAWSSDKforGo.我正 ... [详细]
  • 本文介绍了在Linux下安装和配置Kafka的方法,包括安装JDK、下载和解压Kafka、配置Kafka的参数,以及配置Kafka的日志目录、服务器IP和日志存放路径等。同时还提供了单机配置部署的方法和zookeeper地址和端口的配置。通过实操成功的案例,帮助读者快速完成Kafka的安装和配置。 ... [详细]
author-avatar
牧高风_457
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有