跳至主要內容

Ignition-IoTDB Connector

...大约 6 分钟

Ignition-IoTDB Connector

一、产品概述

  1. Ignition简介

    Ignition 是一个基于WEB的监控和数据采集工具(SCADA)- 一个开放且可扩展的通用平台。Ignition可以让你更轻松地控制、跟踪、显示和分析企业的所有数据,提升业务能力。更多介绍详情请参考Ignition官网open in new window

  2. Ignition-IoTDB Connector介绍

    Ignition-IoTDB Connector分为两个模块:Ignition-IoTDB连接器、Ignition-IoTDB With JDBC。其中:

    • Ignition-IoTDB 连接器:提供了将 Ignition 采集到的数据存入 IoTDB 的能力,也支持在Components中进行数据读取,同时注入了 system.iotdb.insertsystem.iotdb.query脚本接口用于方便在Ignition编程使用
    • Ignition-IoTDB With JDBC:Ignition-IoTDB With JDBC 可以在 Transaction Groups 模块中使用,不适用于 Tag Historian模块,可以用于自定义写入和查询。

    两个模块与Ignition的具体关系与内容如下图所示。

二、安装要求

准备内容版本要求
IoTDB要求已安装V1.3.1及以上版本,安装请参考 IoTDB 部署指导open in new window
Ignition要求已安装 8.1.x版本(8.1.37及以上)的 8.1 版本,安装请参考 Ignition 官网安装指导open in new window(其他版本适配请联系商务了解)
Ignition-IoTDB连接器模块请联系商务获取
Ignition-IoTDB With JDBC模块下载地址:https://repo1.maven.org/maven2/org/apache/iotdb/iotdb-jdbc/open in new window

三、Ignition-IoTDB连接器使用说明

1、简介

Ignition-IoTDB连接器模块可以将数据存入与历史数据库提供程序关联的数据库连接中。数据根据其数据类型直接存储到 SQL 数据库中的表中,以及毫秒时间戳。根据每个标签上的值模式和死区设置,仅在更改时存储数据,从而避免重复和不必要的数据存储。

Ignition-IoTDB连接器提供了将 Ignition 采集到的数据存入 IoTDB 的能力。

2、安装步骤

步骤一:进入 Config - System- Modules 模块,点击最下方的Install or Upgrade a Module...

步骤二:选择获取到的 modl,选择文件并上传,点击 Install,信任相关证书。

步骤三:安装完成后可以看到如下内容

步骤四:进入 Config - Tags- History 模块,点击下方的Create new Historical Tag Provider...

步骤五:选择 IoTDB并填写配置信息

配置内容如下:

名称含义默认值备注
Main
Provider NameProvider 名称-
Enabledtrue为 true 时才能使用该 Provider
Description备注-
IoTDB Settings
Host Name目标IoTDB实例的地址-
Port Number目标IoTDB实例的端口6667
Username目标IoTDB的用户名-
Password目标IoTDB的密码-
Database Name要存储的数据库名称,以 root 开头,如 root.db-
Pool SizeSessionPool 的 Size50可以按需进行配置
Store and Forward Settings保持默认即可

3、使用说明

配置历史数据存储

  • 配置好 Provider 后就可以在 Designer 中使用 IoTDB Tag Historian 了,就跟使用其他的 Provider 一样,右键点击对应 Tag 选择 Edit tag(s),在 Tag Editor 中选择 History 分类

  • 设置 History Enabledtrue,并选择 Storage Provider 为上一步创建的 Provider,按需要配置其它参数,并点击 OK,然后保存项目。此时数据将会按照设置的内容持续的存入 IoTDB 实例中。

读取数据

  • 也可以在 Report 的 Data 标签下面直接选择存入 IoTDB 的 Tags

  • 在 Components 中也可以直接浏览相关数据

脚本模块:该功能能够与 IoTDB 进行交互

  1. system.iotdb.insert:
  • 脚本说明:将数据写入到 IoTDB 实例中

  • 脚本定义:

    system.iotdb.insert(historian, deviceId, timestamps, measurementNames, measurementValues)
    
  • 参数:

    • str historian:对应的 IoTDB Tag Historian Provider 的名称
    • str deviceId:写入的 deviceId,不含配置的 database,如 Sine
    • long[] timestamps:写入的数据点对于的时间戳列表
    • str[] measurementNames:写入的物理量的名称列表
    • str[][] measurementValues:写入的数据点数据,与时间戳列表和物理量名称列表对应
  • 返回值:无

  • 可用范围:Client, Designer, Gateway

  • 使用示例:

    system.iotdb.insert("IoTDB", "Sine", [system.date.now()],["measure1","measure2"],[["val1","val2"]])
    
  1. system.iotdb.query:
  • 脚本说明:查询写到 IoTDB 实例中的数据

  • 脚本定义:

 system.iotdb.query(historian, sql)
  • 参数:

    • str historian:对应的 IoTDB Tag Historian Provider 的名称
    • str sql:待查询的 sql 语句
  • 返回值:
    查询的结果:List<Map<String, Object>>

  • 可用范围:Client, Designer, Gateway

  • 使用示例:

system.iotdb.query("IoTDB", "select * from root.db.Sine where time > 1709563427247")

四、Ignition-IoTDB With JDBC

1、简介

Ignition-IoTDB With JDBC提供了一个 JDBC 驱动,允许用户使用标准的JDBC API 连接和查询 lgnition-loTDB 数据库

2、安装步骤

步骤一:进入 Config - Databases -Drivers 模块,创建 Translator

步骤二:进入 Config - Databases -Drivers 模块,创建 JDBC Driver,选择上一步配置的 Translator并上传下载的 IoTDB-JDBC,Classname 配置为 org.apache.iotdb.jdbc.IoTDBDriver

步骤三:进入 Config - Databases -Connections 模块,创建新的 ConnectionsJDBC Driver 选择上一步创建的 IoTDB Driver,配置相关信息后保存即可使用

3、使用说明

数据写入

Transaction Groups中的 Data Source选择之前创建的 Connection

  • Table name 需设置为 root 开始的完整的设备路径
  • 取消勾选 Automatically create table
  • Store timestame to 配置为 time

不选择其他项,设置好字段,并 Enabled 后 数据会安装设置存入对应的 IoTDB

数据查询

  • Database Query Browser 中选择Data Source选择之前创建的 Connection,即可编写 SQL 语句查询 IoTDB 中的数据

Copyright © 2024 The Apache Software Foundation.
Apache IoTDB, IoTDB, Apache, the Apache feather logo, and the Apache IoTDB project logo are either registered trademarks or trademarks of The Apache Software Foundation in all countries

Have a question? Connect with us on QQ, WeChat, or Slack. Join the community now.