TDengine数据库的可视化工具在rainbond的部署以及应用

TDengine数据库的可视化工具在rainbond的部署以及应用

1.简介

TDengine 是涛思数据面对高速增长的物联网大数据市场和技术挑战推出的创新性的大数据处理产品,它不依赖任何第三方软件,也不是优化或包装了一个开源的数据库或流式计算产品,而是在吸取众多传统关系型数据库、NoSQL 数据库、流式计算引擎、消息队列等软件的优点之后自主开发的产品,TDengine 在时序空间大数据处理上,有着自己独到的优势,采用 TDengine,可将典型的物联网、车联网、工业互联网大数据平台的总拥有成本大幅降低。但需要指出的是,因充分利用了物联网时序数据的特点,它无法用来处理网络爬虫、微博、微信、电商、ERP、CRM 等通用型数据。

​ 下图为TDengine技术生态图

2.一键安装可视化TDengine数据库

1.目前我们已经将最新版本的TDengine数据库(2.2.0.7)发布到了开源应用市场,可以根据需求进行一键安装:

3.TDengine数据库在rainbond平台上的应用制作过程

1.首先在rainbond控制台找到要创建应用的团队,如果没有可以进行创建,然后点击新建应用或者点击目前有的应用进入后,点击添加组件,然后指定镜像或者指定docker run 命令进行构建都可以的

2.咱们分别举例,首先是docker run 命令构建的话代码如下:

docker run -d --name tdengine tdengine/tdengine

”注意以上执行的命令可以自己根据需求进行定义,比如挂载卷组等,版本也是根据需求进行定义,如果不写默认最新版“

3.指定镜像实现具体如下图:

组件名称自己定义,镜像地址直接填镜像名字以及版本号,不写版本号默认为最新版,然后点击新建组件然后成功后直接创建就可以了

4.这样咱们的数据库就安装完成了,等到实例图标变成绿色以后,点击图标然,后点击弹出对话框的实例名字即可进入,然后点击一下其他设置定义一下组件部署类型,配置一下开放的端口信息以及依赖关系即可,具体如下图:

4.grafana可视化工具在rainbond平台的部署应用制作过程

1.首先TDengine 仅支持 Grafana 6.2 以上的版本,而且插件默认不存在,而且为了实现数据可持久化,都需要我们人为进行拷贝相应文件进行操作一下,所以在构建镜像的时候我们之能通过docekrfile进行灵活构建保证可用性。

2.我们先把需要用到的文件统一整理到宿主机同一路径下具体代码流程如下图:

因为默认的容器名通过平台构建后会自己进行重新定义名字,因此我们可以通过上面的命令查询到容器的信息,点击web终端进入容器后,打包对应的文件目录成tar格式命令为下

cd /usr/local/taos/connector/(插件默认路径)
tar -acvf grafanaplugin.tar  grafanaplugin (打包指定目录)
docker cp (容器ID)://usr/local/connector/grafanaplugin.tar /opt

3.通过在rainbond平台上指定镜像构建一个grafana容器 然后把我们要用到的grafana.ini文件进行拷贝到统一路径/opt下,具体代码实现如下:

docker cp (容器ID)://etc/grafana/grafana.ini /opt/
注意/etc/grafana/grafana.ini 为默认的存放路径

echo "[plugins]" >> /opt/grafana.ini
echo "enable_alpha = true" >> /opt/grafana.ini
echo "allow_loading_unsigned_plugins = taosdata-tdengine-datasource" >> /opt/grafana.ini

因为Grafana 8.x 版本会对插件进行签名检查,因此还需要在 grafana.ini 文件中增加签名信息,才能正确使用插件以上命令:

4.所需要的条件我们就是实现了接下里就是编写dockerfile然后进行构建就行了 代码如下:

## 镜像来源
FROM grafana/grafana-enterprise:7.5.11-ubuntu
## 制作者信息
MAINTAINER zheng
VOLUME [ "/var/lib/grafana" ]
## 拷贝插件目录
COPY grafanaplugin.tar /opt
## 拷贝数据文件
COPY --chown=grafana:root grafana.db /opt
## 增加插件签名检察信息
COPY grafana.ini /etc/grafana/
## 映射端口
EXPOSE 3000
COPY run.sh /run.sh
ENTRYPOINT ["bash","/run.sh"]

5.我们在构建时直接点击自定义代码构建就行了 注意填写好仓库地址以及分支。

创建成功后注意更改协议为http 开启端口保证可以访问如下图:

下图就是我们创建成功后的显示信息,注意编辑模式直接点击图标小点连接所需实例即可,接下来我们点击grafana的访问地址直接访问就可了

下图为访问的grafana的首页配置一下即可登录

下图为需要连接的数据库 添加测试一下

下图为测试数据库连接时需要填写的信息,注意一定要填写正确地址和用户名 密码“!

6.我们添加完所有信息以后还需要添加一下可视化界面的json文件就可正常访问了流程代码如下:

添加流程:

源代码:

tdengine-grafana.json

7.最终展示界面如下面就代表已经成功了:

5 grafana的数据持久化实现原理

1.首先盘点一下实现持久化过程中的可能遇到的问题:

第一点:进行定义volume卷组的时候,会直接清空持久化目录的数据无法实现插件的使用。

第二点:容器因为某种原因重启后,用户使用过程中的数据是否保存,容器重启后会不会覆盖原来用户使用的数据。

第三点:通过修改run.sh文件的形式可能出现无法修改以及无法覆盖源文件的情况。

2.针对于以上问题的解决方案以及思路:

第一点:定义持久化目录时,我们直接定义把要用到的文件先分发到其他目录,避免持久化的时候被清空。

第二点:通过在run.sh文件里面添加判断语句,保证存在原来的文件重新启动容器时,不会被覆盖。

第三点:把run.sh文件先拷贝出来进行修改,加执行权限,然后使用dockerfile里面的ENTRYPOINT指令进行覆盖源文件。

3.需要用到的dockerfile以及在run.sh文件中添加的判断脚本

## 镜像来源
FROM grafana/grafana-enterprise:7.5.11-ubuntu
## 制作者信息
MAINTAINER zheng
VOLUME [ "/var/lib/grafana" ]
## 拷贝插件目录
COPY grafanaplugin.tar /opt
## 拷贝数据文件
COPY --chown=grafana:root grafana.db /opt
## 增加插件签名检察信息
COPY grafana.ini /etc/grafana/
## 映射端口
EXPOSE 3000
COPY run.sh /run.sh
ENTRYPOINT ["bash","/run.sh"]


if [ ! -f "/var/lib/grafana/grafana.db" ]; then
   cp /opt/grafana.db /var/lib/grafana											
fi																				
if [ ! -d "/var/lib/grafana/plugins/tdengine" ]; then
   mkdir -p /var/lib/grafana/plugins/tdengine
   tar -xvf /opt/grafanaplugin.tar -C /var/lib/grafana/plugins/tdengine
fi

6.文章小结

1.本文档详细记录了TDengine数据库在rainbond平台上实现一键可视化安装应用的制作全过程。

2.本文中有些指出的踩坑点,大家一定要仔细思考一下为什么以及解决方法搞清楚原理很重要的。

3.大家有任何疑问或者不明白的都可以加入rainbond技术交流群进行探讨交流。