从KEPServerEX6到IoTDB的心路历程

写在前面:文章内容为本人的学习过程,路过大神不喜勿喷!

一、准备条件

  • KEPServerEX 6 : 连接设备侧软件
  • IoTDB:数据存储侧软件
  • EMQX 或 Mosquitto:中间转发MQTT消息的服务端
  • Java8 x64 和 x86:64位为运行环境,x86为KEP6的MQTT客户端运行环境
  • MQTTX:客户端连接工具
  • WorkBench:数据库操作工具

二、安装KEPServerEX6

  • 大家自行网络遨游寻找KEPServerEX 6 下载,下载安装以后还需要进行破解(破解版仅学习使用吧,如果大家商用请支持正版),由于需要使用KEPServerEX的Iot GetWay组件,如果不破解有可能会提示到期时间的警告。
  • 当安装好KEPServerEX 6后需要配置下32位的jre环境
  • 在开始菜单中启动
    在这里插入图片描述
  • 在桌面右下角,右键KEPServerEX选择设置,配置32位jre的根目录位置。
    在这里插入图片描述
    在这里插入图片描述

至此,KEPServerEX6基础已经安装好。

三、安装IoTDB

  • IoTDB为Apache的开源项目,所以直接去官网或者Git上下载即可

在这里插入图片描述
在这里插入图片描述

选择Http下载压缩包,解压缩到本地即可使用。

四、整体数据流转方式

方式一
方式二

  • 个人认为,根据实际数据量、设备数量、点位数量选择不同的数据流转方式吧。

IoTDB的官方示例:1000设备,每个设备100 测点,共 100000 序列,INT32类型。采样频率1Hz(每秒一次),存储1年,3副本。
完整计算公式:1000设备 * 100测点 * 12字节每数据点 * 86400秒每天 * 365天每年 * 3副本/10压缩比=11T
简版计算公式:1000 * 100 * 12 * 86400 * 365 * 3 / 10 = 11T

  • 方式二对比方式一来看,多了一个独立的MQTT服务端,以至于更好的可以对外提供服务,但是需要多布置一台MQTT服务端,增加维护和部署的难度。
  • 此处,我使用第一种方式进行学习和试验。

五、配置KEPServer点位

此处,遵循一下IoTDB的存储形式,来增加KEPServer的设备点位。以下是官网的一段描述:

  • 我们以风电场物联网场景为例,说明如何在 IoTDB 中创建一个正确的数据模型。
  • 根据企业组织结构和设备实体层次结构,我们将其物联网数据模型表示为如下图所示的属性层级组织结构,即电力集团层-风电场层-实体层-物理量层。其中 ROOT 为根节点,物理量层的每一个节点为叶子节点。IoTDB 采用树形结构定义数据模式,以从 ROOT 节点到叶子节点的路径来命名一个时间序列,层次间以“.”连接。例如,下图最左侧路径对应的时间序列名称为ROOT.ln.wf01.wt01.status

在这里插入图片描述

  • 在KEPServer中添加测试点位
    在这里插入图片描述
  • 右键连接性新建通道 —> 右键通道新建设备 —> 右键设备新建分组 —> 右键分组新建标记
    在这里插入图片描述
  • 使用KEPServer的IoT Getway组件,右键IoT Getway选择New Agent。
    在这里插入图片描述
  • 配置MQTT的URL和Topic,其他选项根据需要修改吧。
    在这里插入图片描述
  • 根据MQTT服务端的需要,配置ClientID、用户名和密码。注意要确保ClientID不在整个流程中重复。用户名和密码如果MQTT服务端需要身份验证,则需要填写,如何没有配置身份验证空着即可。
    在这里插入图片描述
  • 选择完成后,双击打开编辑器,选择Message,选择Message Fomat类型为Advanced Template,修改Template格式。此处要考虑到后面IoTDb的一些格式化问题。MQTT的消息有效载荷可以由 Java SPI 加载的PayloadFormatter格式化为事件,默认实现为JSONPayloadFormatter,此处格式与后面自定义格式化的Java类所处理的格式对应,根据实际情况修改。为方便处理,我将默认格式修改成了一下格式:
[
   |#each VALUES|
    {
   
   "device": "|TAGNAME|", "values": |VALUE|,  "timestamp": |TIMESTAMP| } |#unless @last|,|/unless|
   |/each|
]

在这里插入图片描述

六、配置IoTDB

  • 修改${IOTDB_HOME}/conf/iotdb-datanode.properties , 根据需要修改IP和Port即可,其他就默认。
####################
### Data Node RPC Configuration
####################

# Used for connection of IoTDB native clients(Session)
# Could set 127.0.0.1(for local test) or ipv4 address
# Datatype: String
dn_rpc_address=192.168.20.131

# Used for connection of IoTDB native clients(Session)
# Bind with dn_rpc_address
# Datatype: int
dn_rpc_port=8007

# Used for communication inside cluster.
# could set 127.0.0.1(for local test) or ipv4 address.
# Datatype: String
dn_internal_address=192.168.20.131

# Used for communication inside cluster.
# Bind with dn_internal_address
# Datatype: int
dn_internal_port=10730

# Port for data exchange among DataNodes inside cluster
# Bind with dn_internal_address
# Datatype: int
dn_mpp_data_exchange_port=10740

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值