热门标签 | 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 的智能停车场管理平台


推荐阅读
  • 本文介绍了如何在 Spring Boot 项目中使用 spring-boot-starter-quartz 组件实现定时任务,并将 cron 表达式存储在数据库中,以便动态调整任务执行频率。 ... [详细]
  • 包含phppdoerrorcode的词条 ... [详细]
  • 在OpenShift上部署基于MongoDB和Node.js的多层应用程序
    本文档详细介绍了如何在OpenShift 4.x环境中部署一个包含MongoDB数据库和Node.js后端及前端的多层应用程序。通过逐步指导,读者可以轻松完成整个部署过程。 ... [详细]
  • 深入解析 Lifecycle 的实现原理
    本文将详细介绍 Android Jetpack 中 Lifecycle 组件的实现原理,帮助开发者更好地理解和使用 Lifecycle,避免常见的内存泄漏问题。 ... [详细]
  • Presto:高效即席查询引擎的深度解析与应用
    本文深入解析了Presto这一高效的即席查询引擎,详细探讨了其架构设计及其优缺点。Presto通过内存到内存的数据处理方式,显著提升了查询性能,相比传统的MapReduce查询,不仅减少了数据传输的延迟,还提高了查询的准确性和效率。然而,Presto在大规模数据处理和容错机制方面仍存在一定的局限性。本文还介绍了Presto在实际应用中的多种场景,展示了其在大数据分析领域的强大潜力。 ... [详细]
  • 本文探讨了 Kafka 集群的高效部署与优化策略。首先介绍了 Kafka 的下载与安装步骤,包括从官方网站获取最新版本的压缩包并进行解压。随后详细讨论了集群配置的最佳实践,涵盖节点选择、网络优化和性能调优等方面,旨在提升系统的稳定性和处理能力。此外,还提供了常见的故障排查方法和监控方案,帮助运维人员更好地管理和维护 Kafka 集群。 ... [详细]
  • 一、Tomcat安装后本身提供了一个server,端口配置默认是8080,对应目录为:..\Tomcat8.0\webapps二、Tomcat8.0配置多个端口,其实也就是给T ... [详细]
  • 检查 Kubernetes 系统命名空间中的 Pod 状态时,发现 Metric Server Pod 虽然处于运行状态,但存在异常:日志显示 'it doesn’t contain any IP SANs'。 ... [详细]
  • 为什么多数程序员难以成为架构师?
    探讨80%的程序员为何难以晋升为架构师,涉及技术深度、经验积累和综合能力等方面。本文将详细解析Tomcat的配置和服务组件,帮助读者理解其内部机制。 ... [详细]
  • LDAP服务器配置与管理
    本文介绍如何通过安装和配置SSSD服务来统一管理用户账户信息,并实现其他系统的登录调用。通过图形化交互界面配置LDAP服务器,确保用户账户信息的集中管理和安全访问。 ... [详细]
  • 本文详细介绍了如何在 Linux 系统上安装 JDK 1.8、MySQL 和 Redis,并提供了相应的环境配置和验证步骤。 ... [详细]
  • IOS Run loop详解
    为什么80%的码农都做不了架构师?转自http:blog.csdn.netztp800201articledetails9240913感谢作者分享Objecti ... [详细]
  • Apache Hadoop HDFS QJournalProtocol 中 getJournalCTime 方法的应用与代码实例分析 ... [详细]
  • 2012年9月12日优酷土豆校园招聘笔试题目解析与备考指南
    2012年9月12日,优酷土豆校园招聘笔试题目解析与备考指南。在选择题部分,有一道题目涉及中国人的血型分布情况,具体为A型30%、B型20%、O型40%、AB型10%。若需确保在随机选取的样本中,至少有一人为B型血的概率不低于90%,则需要选取的最少人数是多少?该问题不仅考察了概率统计的基本知识,还要求考生具备一定的逻辑推理能力。 ... [详细]
  • 投融资周报 | Circle 达成 4 亿美元融资协议,唯一艺术平台 A 轮融资超千万美元 ... [详细]
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社区 版权所有