TDengine 是一款专为物联网、工业互联网等场景设计并优化的大数据平台,其核心模块是高性能、集群开源、云原生、极简的时序数据库。它能安全高效地将大量设备、数据采集器每天产生的高达 TB 甚至 PB 级的数据进行汇聚、存储、分析和分发,对业务运行状态进行实时监测、预警,提供实时的商业洞察。
TDengine越来越受到时序数据库界人士的欢迎,许多技术小伙伴都跃跃欲试。目前,TDengine提供了社区版(开源,包括集群功能也开源)、企业版(高级功能,收费,可免费试用10天)、云服务版(官方公有云版本,可免费试用)。对于选择免费使用或者想先深入研究其技术细节的小伙伴而言,社区版绝对是一个很好的选择。笔者尝试在Windows平台(目前流行10或11)上,直接利用WSL(适用于 Linux 的 Windows 子系统),通过Docker Desktop来安装各种镜像和容器,最大化的减少额外开销,并以最快的速度搭建出一套令人惊艳的时序数据库演示环境。下面我们正式开始。
一、安装Docker Desktop
-
安装WSL:控制面板->启用或关闭Windows功能->勾选“适用于Linux的Windows子系统”和“虚拟机平台”;
-
下载Docker Desktop:https://www.docker.com/products/docker-desktop/
-
安装Docker Desktop
-
启动Docker引擎,如报“Unexpected WSL error”,则在命令行中更新WSL版本,即可解决:
wsl --update
-
镜像加速器
国内网络访问docker.com时可能很慢或者不通,可通过使用镜像加速器或者VPN解决。
二、安装EMQX
-
通过Docker拉取并启动容器。方法是在命令行中:
docker run -d --name emqx -p 1883:1883 -p 8083:8083 -p 8084:8084 -p 8883:8883 -p 18083:18083 emqx/emqx
-
启动成功后浏览器访问 http://localhost:18083 访问 EMQ X 管理控制台 Dashboard,使用默认用户名
admin
和默认密码public
完成初次登录。 -
下载和安装MQTT客户端工具MQTTX,并调试EMQX Broker是否可用。
https://www.emqx.com/zh/products/mqttx
三、安装TDengine
-
通过Docker拉取并启动容器。方法是在命令行中:
docker run -d --name tdengine -p 6030:6030 -p 6041:6041 -p 6043-6060:6043-6060 -p 6043-6060:6043-6060/udp tdengine/tdengine
-
启动成功后浏览器访问 http://localhost:6060 访问taos-explorer,初次使用需要使用手机号进行注册,注册后即可使用数据库中的用户名和密码登录。使用默认用户名
root
和默认密码taosdata
完成初次登录。 -
如果安装了TDengine客户端(TDengine CLI),在终端中执行如下以连接数据库然后进行相应操作:
taos.exe -E 'taos://root:taosdata@
localhost:6041
'
四、安装Grafana
-
通过Docker拉取并启动容器,并自动安装 TDengine 插件。方法是在命令行中:
docker run -d --name=grafana -p 3000:3000 -e "GF_INSTALL_PLUGINS=tdengine-datasource" grafana/grafana
-
启动成功后浏览器访问 http://localhost:3000 访问 Grafana 可视化面板,使用默认用户名
admin
密码admin
完成初次登录。
五、建表、收发数据、展示
1. 业务场景(模拟一个实际的工业场景)
质量检测分析-SMT产线回流焊焊锡空洞率检测分析。焊锡空洞率的因素对产品质量、寿命起着至关重要的作用,生产工艺上焊点在焊锡空洞会引起电流密集效应,降低焊点的机械强度。空洞率会受锡膏本身各成份的含量、钢网厚度和开口方式、炉温曲线等因素的影响。通过实时数据采集和离线分析,训练出影响空洞率的模型,进而准确的进行设备参数的调整以及钢网的更换等操作。
2. 配置方法
参照博客数据传输、存储、展现,EMQX + TDengine 搭建 MQTT 物联网数据可视化平台的方法,根据实际应用场景进行修改。
同时参考TDengine 3.0关于“第三方工具”的文档说明:
https://docs.taosdata.com/third-party/emq-broker/
https://docs.taosdata.com/third-party/grafana/
3. taosAdapter服务地址配置
因上述EMQX、TDengine、Grafana等容器是在同一个宿主机上运行,且默认的网络模式为bridge模式。在Linux系统中,可以使用特殊的IP地址172.17.0.1
来代表【宿主机】,这个IP地址通常用于Docker默认的网络桥接模式中。因此可以在配置EMQX和Grafana去访问TDengine时,可以采用此地址。
3.1 EMQX中资源(Resource)的“WebHook”类型的“请求 URL”为:http://172.17.0.1:6041/rest/sql
3.2 Grafana中TDengine Datasource中的Host为:http://172.17.0.1:6041
4. 运行mock.js的环境配置
4.1 从官网下载Node.js并安装:https://nodejs.org/en/download/
4.2 进入环境变量,检查【系统变量】中的【Path】变量是否包含Node.js的安装路径。
4.3 在项目中安装Mock.js,即在文件夹空白处右键“在终端中打开”(Windows PowerShell),运行:
npm install mqtt mockjs --save --registry=
https://registry.npm.taobao.org
如果使用registry
访问不了,则开启VPN,PowerShell中运行:
npm install mqtt mockjs --save
4.4 在PowerShell运行项目中编辑的mock.js脚本
node mock.js