关于java使用TDengine数据库以及单体springboot同时搭载mysql和TDengine俩个数据源(上)

本文主要记录是我们自己javaweb项目中引用TDengine时序性数据库时锁踩过的坑。

TDengine的简介:TDengine是涛思数据推出的一款开源的专为物联网、车联网、工业互联网、IT运维等设计和优化的大数据平台。除核心的快10倍以上的时序数据库功能外,还提供缓存、数据订阅、流式计算等功能,最大程度减少研发和运维的复杂度。

具体的陶思大数据简介可以观看TDengine文档:https://www.taosdata.com/cn/
其他语言相关使用过程中的错误可以咨询陶思的论坛:https://github.com/taosdata/TDengine/issues

下面这些纯属个人理解:

1、数据库简介:

TDengine数据库是时序性数据库,主要运用于物联网采集的环境数据。数据库的操作没有可视化界面,但是和我们普遍运用的关系型数据库mysql的语言几乎是一样的,如一些聚合函数,一些常规查询和表和库的构建。

其中我主要介绍一些不同的地方(也是理解了好久,毕竟是小白哈哈!):

  1. 数据库的设计中对表数据是没有删除和修改操作的,毕竟是物联网数据库只负责数据采集和查询,如果测试时某些东西编写错误,或者是清楚测试数据只能直接删除表后再重新创建进行上线部署。

  2. 数据库分级对比mysql有点不一样(自我感觉,我对mysql了解也不是太深),这个TDengine是使用库–》超级表–》普通表的划分的。当然也可以直接跳过不建立超级表,使用库来管理子表,不过这样会感觉起不到物联网大数据查询的作用,当然子表名一定要取得有意义(一般使用每个传感器设备的唯一设备id方便以后查询)。超级表主要就是隶属某个库下面管理对应每一个传感器所建立的子表,每个子表会对应超级表简历相应个数的tags值,使得后期做数据分析时进行连表查询方便点。(插一句,TDengine是不支持各种联表查询的,若是要好多表在一起做数据分析就必须提前做好超级表进行管理)。

3.TDengine目前是不支持集群版的,日常使用的社区版的是不提供可视化界面的(对于cmd操作数据库也是个大挑战,对于俺们新手真是不友好啊)。但是如果仔细研究文档的话会发现,TDengine对于复杂的聚合性sql语句倒是提供了好多方法,例如使用INTERVAL(10M)对一些数据进行按照每十分钟一组进行聚合等等吧。

2、数据库安装:

废话不多说,直接看看我是怎么搭建TDengine的,还有各种踩的坑:

  1. 首先需要下载他们官方文档的安装包
    关于java使用TDengine数据库以及单体springboot同时搭载mysql和TDengine俩个数据源(上)_第1张图片
    下载俩个,第一个是服务器需要rpm包(是自己服务器的系统而定我的是centos7),第二个是本机使用的exe安装软件(直接下一步运行就行)。

  2. 在服务器和本机安装rpm和exe

    (1)、判断自己的服务器是否支持systemctl的命令(centos7以上都支持,没有的建议升级系统或者再装个其他的系统)。
    (2)、进入自己的目录进行安装rpm包:rpm -ivh tdengine-1.6.1.7-3.el7.x86_64.rpm。
    关于java使用TDengine数据库以及单体springboot同时搭载mysql和TDengine俩个数据源(上)_第2张图片
    (3)、然后直接使用systemctl start taosd进入taos数据库就可以简单的使用了,操作的一些命令直接看官方文档就行,跟mysql的建表建库是一样的,退出直接ctrl+d。
    (4)、exe文件直接在本机点击安装就行(不大,最好使用默认文件夹,配置文件好写)。

3、数据库使用:
  1. 用springboot连接TDengine的步骤:首先肯定是拉取依赖,但是taos的jdbcdriver在maven的公共仓库中是没有的,所有需要自己集成,在服务器端安装后会在/usr/local/taos/connector/生成所需的jar包。
    关于java使用TDengine数据库以及单体springboot同时搭载mysql和TDengine俩个数据源(上)_第3张图片
  2. 直接使用idea集成taos的jdbcdriverjar包。
    关于java使用TDengine数据库以及单体springboot同时搭载mysql和TDengine俩个数据源(上)_第4张图片
  3. 配置文件更改为如下:(&cfgdir=C:/TDengine/cfg&charset=UTF-8这俩个是跟以前mysql不一样的一个是指定你刚安装的exe文件中配置文件夹的位置,一个是可写可不写的只是看自己在TDengine数据库中是否存储字符串,一般是不需要的)。application.yml的配置文件
  4. 接下来就可以使用mybatis等持久化框架操作数据库了,然后就是单体项目搭载俩个不同的数据库。
主要也就是看网上没有对我这些小白操作的分享,所以把我的趟坑过程拿出来简单的分享一下,如有错误欢迎讨论。

你可能感兴趣的:(java)