使用 InfluxDB 作为现代过程历史数据库

导航至

在工业物联网 (IIoT) 环境中促进互联互通可能很困难,尤其考虑到业务和 IT 的不同需求。OPC 或开放平台通信,允许跨设备的数据连接和监控。实施 OPC 可以解决重大的物联网互联互通挑战;然而,弥合 OPC 的 OT 端与企业业务和 IT 端之间的差距并不总是容易或直接的,特别是当您没有兴趣、时间、人力资源或预算来实施传统的过程历史数据库及其业务应用程序集成时。

解决方案

ThingWorx Kepware 是领先的 OPC 服务器和网关应用程序,可将旧式工业资产与应用程序、数据库和云服务连接起来。ThingWorx Kepware 是 PTC 的产品,PTC 自 2018 年以来一直是 InfluxData 的值得信赖的合作伙伴,它允许您将 OPC 标签数据直接流式传输到 InfluxDB 中。您的过程历史数据库过时的架构和用户界面的时代已经一去不复返了。通过 ThingWorx Kepware 和 InfluxDB 大规模收集和存储标签数据变得轻松、快速且经济实惠。

实施

现代工业物联网 (IIoT) 和工业 4.0 应用程序通常围绕一个或多个消息传递或数据交换平台构建。以下是三种最常见类型的快速摘要

  • OPC: OPC 包括 OPC-DA、OPC-UA,有时还包括 OPC-AE。这些在工厂车间和工业组织的数据中心中最常见。
  • MQTT: MQTT 不像 OPC 那样特定于 OT,但它提供了低延迟的方法来在资产和应用程序之间传递数据,非常适合混合资产/应用程序网络。
  • RESTful API: RESTful API 是一种面向 Web 的技术,专为应用程序到应用程序或客户端-服务器交互而设计。RESTful API 非常适合边缘到云架构或由 IT 或 Web 开发者构建和管理的架构。

幸运的是,ThingWorx Kepware 和 InfluxDB 都支持所有这些方法,为您选择的集成提供灵活性和支持。

要不要使用 Telegraf?

Telegraf 是一个插件驱动的代理,用于收集、处理、聚合和写入指标。它支持四类插件,包括输入、输出、聚合器和处理器。它由 InfluxData 团队和社区构建,可作为开源使用,并且可以帮助简化您的集成过程。

在构建数据管道以在 InfluxDB 中存储指标时,首要考虑因素之一是消息内容是结构化、半结构化还是非结构化的。对于那些不熟悉这些术语的人

结构化: 依赖于数据模型,结构化数据通常表示为表格和行,其中每行和每列表示已知的语义和格式。一个很好的例子是 csv,其中每列都有 ISO 8601 时间戳,另一列用于每个标准化的 OPC 标签名称,还有一列用于表示该时间点标签的数值。

半结构化: 这是无法始终以表格格式表示的结构化数据,并且可能以分层方式表示关系。考虑 JSON 或 XML - 结构和内容是灵活的,但解释信息的规则通常编码在格式中 - 字段名称、节组等。OPC 数据的半结构化表示可以包括 JSON 文档,该文档将标签名称和值分组在单个时间戳和服务器名称下。

非结构化: 虽然此类别也包含图像、pdf 文档等数据类型,但就我们的目的而言,非结构化数据只是格式和内容未预定义的数据。MQTT 消息 (msg) 主体的内容不受限制,因此可以携带任何格式的文本或二进制信息。非结构化数据需要模式建模 - 在存储之前(从而将其转换为结构化)或在存储之后通过解析 - 例如正则表达式字段提取。

最终,在将 PTC Kepware 标签插入 InfluxDB 之前,您需要将数据转换为 Line Protocol (LP)。Line Protocol 是一种高效的文本格式,很像 CSV,它针对 InfluxDB 中进行的数据解析进行了优化。您需要了解的关于 Line Protocol 的所有内容都在我们的文档中: https://docs.influxdb.org.cn/influxdb/v1.8/write_protocols/line_protocol_tutorial/

如何以及在何处转换为 Line Protocol 是一个架构决策。在 PTC Kepware 中或在外部解决方案(如 Flow DirectorHighByte)中格式化非结构化 MQTT 或半结构化 OPC 存在机会,但强烈建议您考虑实施 Telegraf 网关,因为它提供了一种集中数据收集、处理、重新格式化的方法,甚至可以提供写入其他服务或返回到 MQTT Broker 等应用程序的途径。Influxdb_v2 输出插件 在 Telegraf 中将处理许多与 InfluxDB Cloud 和 InfluxDB 2 的连接配置,这在管理 HTTPS 连接时可能是一个很大的优势。Telegraf 几乎总是可以在与您的 PTC Kepware Kepserver 或您的 MQTT Broker 相同的机器上运行,或者在许多工业软件和硬件供应商提供的边缘网关产品上运行。

无论您是否使用 Telegraf(再次强调,我们真的建议您使用),PTC Kepware 用户都可以使用以下方法在 InfluxDB 中存储标签历史记录,并使这些历史记录可供用户和应用程序使用

MQTT 客户端

使用 Kepware IoT Gateway Advanced Plugin 将工业数据直接流式传输到您选择的 MQTT Broker 或来自 InfluxData 合作伙伴(如 HiveMQ 或 Flow Director)的 Broker。 Telegraf MQTT 消费者插件 将监控您的 MQTT 主题,并自动存储 Kepware 发送到这些主题的数据。通过使用 InfluxDB 任务处理该数据并将其写回 Broker,以便 Kepware 与其他下游操作应用程序集成,您可以使其更加强大。

REST 客户端

使用 Kepware IoT Gateway Advanced Plugin,您可以将标签数据转换为 Line Protocol,并按更改、轮询间隔或每个标签侧逻辑发送到 InfluxDB 的写入端点。这种方法还允许您使用 InfluxDB 标签和字段丰富标签数据,这将使 InfluxDB 中所有未来的分析和可视化变得超级强大。注意 - 使用 PTC Kepware REST 客户端直接向 InfluxData 写入端点发送数据是实验性的,特别是当从本地 KepserverEX 实例发送到 InfluxDB Cloud 时。这是 Telegraf 真正发挥作用的场景之一 - 您可以直接写入 InfluxDB V2 Listener 输入插件,并通过额外的可靠性、可扩展性和安全性中继到 InfluxDB Cloud。

Kepware OPC 服务器

您还可以选择使用 Telegraf OPC UA 客户端输入插件 直接连接到 Kepware 的 OPC 服务器。对于需要利用 InfluxDB 中的 OPC 命名空间并且愿意花费额外时间在 Telegraf 中配置和管理 OPC 连接的特定高级用户来说,这是最佳选择。

您准备好了吗?

如果您已经是 PTC Kepware 用户,您可以 下载 Telegraf,将其安装在可以安全访问 KepserverEX 应用程序的位置,并使用上面链接的文档来配置您首选的集成途径。我们还创建了一个 InfluxDB 社区 Slack 频道,以讨论技巧、窍门并向 InfluxDB IoT 团队和我们出色的 Influxer 社区提问。期待在那里见到您!