跳到主要内容

PI 实时数据同步指南

本页介绍如何使用 PI 实时任务将 PI 系统的实时数据持续同步到 TDengine,涵盖任务配置、高级功能、最佳实践和常见问题排查。

1. 概述

PI 实时任务用于持续订阅 PI 系统的数据变化,将新产生的数据实时写入 TDengine。典型使用场景包括:

  • 实时监控:将 PI 实时数据同步到 TDengine,利用 TDengine 的高性能查询能力构建实时仪表板
  • 双写过渡:在从 PI 向 TDengine 迁移过程中,两套系统并行运行
  • 数据汇聚:将多个 PI 系统的实时数据汇聚到统一的 TDengine 集群

2. 创建 PI 实时任务

2.1 基本步骤

  1. 在 Explorer 的数据写入页面,点击 +新增数据源
  2. 类型 下拉列表中选择 PI
  3. 配置连接信息(详见 主文档
  4. 配置数据模型(单列/多列,详见 模型配置参考
  5. 配置重启补偿时间(见下节)
  6. 配置高级选项(见第 4 节)
  7. 提交任务

2.2 重启补偿时间

重启补偿时间 是 PI 实时任务的一个关键参数。当任务因故意外中断后重启时,taosX 会自动回填从中断时刻到当前时刻这段时间内的数据。

参数说明
重启补偿时间设置重启后自动回填的最大时间窗口

配置建议

  • 根据你能容忍的最大数据丢失时间来设置
  • 例如,设置为 1 小时,则如果任务中断了 30 分钟后重启,taosX 会回填这 30 分钟的数据
  • 如果中断时间超过了补偿时间的设置,超出部分的数据需要通过 PI backfill 任务手动补录

重启补偿时间配置

3. 数据同步行为

3.1 单列模型

  • 订阅每个 PI Point 的值变化
  • 当 PI Point 的值发生变化时,将新值写入对应的 TDengine 子表
  • 每个 PI Point 对应一张子表

3.2 多列模型

  • 订阅 AF 模板下所有元素的 PI Point 属性变化
  • 当某个元素的某个 PI Point 属性值发生变化时,更新对应子表的对应列
  • 每个 AF 元素对应一张子表

4. 多列模型高级功能

以下高级选项仅在使用多列模型的实时任务时可用。

4.1 同步新增元素

选项默认值说明
同步新增元素开启打开后,PI 连接器会监听模板下新增的元素,自动同步其数据

使用场景:当 PI 系统中持续有新设备/资产被添加到 AF 模板下时,无需手动重启任务或修改配置。

4.2 同步静态属性变化

选项默认值说明
同步静态属性变化开启打开后,所有非 PI Point 属性(静态属性)的值变化会同步到 TDengine TAG

使用场景:当 AF 元素的描述信息、分类、位置等静态属性可能被修改时,保持 TDengine TAG 与 PI AF 一致。

4.3 同步删除元素

选项默认值说明
同步删除元素开启打开后,PI 连接器监听模板下删除元素的事件,同步删除 TDengine 对应子表
注意

开启此选项后,PI 中删除元素将导致 TDengine 中对应子表被删除,数据不可恢复。请谨慎使用。

4.4 同步删除历史数据

选项默认值说明
同步删除历史数据开启打开后,PI 中某个时间点的数据被删除时,TDengine 对应时间对应列的数据会被置空

4.5 同步修改历史数据

选项默认值说明
同步修改历史数据开启打开后,PI 中历史数据被修改时,TDengine 对应时间的数据也会更新

使用场景:PI 系统中可能存在数据修正的操作(如手动修改异常值),开启此选项可以保持 TDengine 与 PI 数据一致。

5. 最佳实践

5.1 高可用部署

  • 建议使用 Agent 代理模式部署(参见 部署架构),将连接器与 taosX 分离
  • 配置合理的重启补偿时间,确保任务重启后不会丢失数据
  • 通过 Explorer 监控任务状态,及时发现异常

5.2 性能调优

调优项建议
批次大小根据数据密度调整,点位多且数据频率高时适当增大
单次读取最大延迟根据实时性要求调整
日志级别生产环境使用 infowarn,排查问题时临时切换到 debug

5.3 任务监控

通过 Explorer 的数据源列表页面可以查看:

  • 任务运行状态
  • 数据写入速率
  • 最近一次同步时间
  • 错误日志

建议定期检查任务状态,确保实时同步正常运行。

6. 常见问题

实时任务数据丢失如何补偿?

如果实时任务中断时间超过了重启补偿时间的设置,可以通过以下步骤补偿:

  1. 记录任务中断的时间段
  2. 创建一个 PI backfill 任务,时间范围覆盖中断时段
  3. 运行回填任务补录数据
  4. 回填完成后,实时任务继续正常运行

实时同步延迟过大如何排查?

  1. 网络延迟:检查 taosX/agent 到 PI 系统的网络延迟
  2. PI 系统负载:检查 PI Data Archive 的负载情况
  3. TDengine 写入瓶颈:检查 TDengine 集群的写入性能
  4. 批次大小过大:适当减小批次大小,降低单次处理延迟
  5. 日志排查:将日志级别调整为 debug,查看详细的处理耗时

新增点位后需要重启任务吗?

  • 多列模型:如果开启了 同步新增元素 选项,不需要重启
  • 单列模型:需要更新模型配置文件(添加新点位的映射),然后重启任务
  • 也可以在 PI 系统新增点位后,重新下载默认配置文件并上传

多列模型的 TAG 值不更新?

确认是否开启了 同步静态属性变化 选项。如果未开启,TAG 值只在子表创建时写入一次,后续不会更新。