ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

TDengine PI 历史数据回填(PI backfill)实战指南:任务创建、并行优化与数据验证

TDengine PI 历史数据回填(PI backfill)实战指南:任务创建、并行优化与数据验证 数据库时序数据库物联网大数据实时分析云原生【免费下载链接】tdengineTDengine is an open source, high-performance, cloud native time-series database optimized for Internet of Things (IoT), Connected Cars, Industrial IoT and DevOps.项目地址https://gitcode.com/taosdata/tdengine点击查看免费下载PI backfill 任务用于按指定时间范围从 OSIsoft PI SystemPI Data Archive / AF Server提取历史数据并写入 TDengine是系统切换、数据补录和历史数据分析三类场景的核心工具。本文基于 taosX 的 PI 连接器完整讲解 backfill 任务的创建步骤、时间范围配置、批次大小与并行回填的性能优化策略、两种推荐迁移流程先回填后实时 / 先实时后回填以及回填完成后的数据量对比、抽样校验与时间戳对齐验证方法帮助你在生产环境安全、高效地完成 PI 历史数据迁移。概述PI backfill 任务与 PI 实时任务同属 taosX 的 PI 数据接入能力详见 PI 数据接入总览区别在于任务类型taosExplorer 中的名称行为实时任务PI持续订阅 PI 系统的实时数据变化写入 TDengine回填任务PI backfill按指定时间范围提取历史数据写入 TDengine完成后自动停止PI backfill 的典型使用场景系统切换从 PI 系统迁移到 TDengine需要将历史数据一并迁移保证新老系统数据连续数据补录因任务中断或其他原因导致的数据缺失需要回填一段时间的数据例如实时任务中断超过重启补偿时间窗口时超出部分需要用 backfill 补录见 实时数据同步数据分析将历史数据导入 TDengine 进行回顾性分析借助 TDengine 的时序查询能力做深度挖掘。开始之前请先确认 PI 系统环境满足 前置条件端口 5450/5457 放通、PI AF SDK 已安装、服务账户具备读取权限等并根据 部署架构 确认 taosX 或 taosX-Agent 的部署位置——PI 连接器依赖 PI AF SDK仅支持 Windows必须运行在可直连 PI 系统的 Windows 主机上。创建 PI backfill 任务基本步骤在 taosExplorer 的数据写入页面按以下步骤创建回填任务点击新增数据源在类型下拉列表中选择PI backfill配置连接信息——与实时任务相同支持两种连接方式详见 PI 与 连接配置与认证PI Data Archive Only仅填写 PI 服务名服务器地址通常使用主机名PI Data Archive AF Server额外填写 PI 系统AF Server名称与 AF 数据库名点击连通性检查验证数据源可用。建议使用主机名而非 IP以保证 Kerberos SPN 匹配配置数据模型单列/多列——一个 PI Point 映射一张子表单列或一个 PI AF 元素映射一张子表多列模型配置文件的完整格式见 模型配置参考如需按命名模式裁剪点位/元素范围可先填写 Dataset Filter 再下载默认配置语法见 Dataset Filter 配置配置回填时间范围见下节提交任务。配置回填时间范围PI backfill 任务必须配置以下两个参数参数说明开始时间回填数据的起始时间点结束时间回填数据的截止时间点:::note 回填任务在完成指定时间范围的数据迁移后会自动停止无需手动关闭。 :::需要注意时间输入框带有时区图标格式为YYYY-MM-DD HH:mm:ss。回填时间范围是否包含边界、时区如何换算直接决定数据完整性建议与 PI 侧的本地时间约定保持一致并在验证阶段重点核对。高级选项回填任务同样支持 PI 数据接入总览 中的通用高级选项其中与回填性能直接相关的是配置项默认值说明批次大小1000单次发送的最大消息数量直接影响写入吞吐与内存占用批次延时1 秒单次发送最大延时超时后即使不满足批次大小也立即发送连接器日志级别info可选error、warn、info、debug、trace排查问题时临时切到debug性能优化批次大小调优在高级选项中可以调整批次大小它决定每次向 TDengine 写入的数据量场景建议批次大小说明默认使用系统默认值适合大多数场景大量点位、数据密集适当增大提高吞吐量但占用更多内存内存受限适当减小降低内存占用但可能降低吞吐量调优思路批次大小与内存占用、单次写入耗时是相互制约的三角。数据密集场景下适当增大可摊薄网络与写入开销若同时运行多个并行回填任务应结合总内存预算反推单任务批次大小避免内存溢出。并行回填策略对于大量历史数据的迁移建议按时间段拆分为多个 backfill 任务并行执行策略说明按年/月拆分将整个回填时间范围按年或月拆分为多个任务按数据源拆分不同的模板或点位组使用独立的回填任务控制并发数注意 PI 系统和 TDengine 的负载避免过多并行任务示例回填 2020-01-01 至 2024-12-31 的数据可按年拆分为 5 个任务任务 1: 2020-01-01 ~ 2020-12-31 任务 2: 2021-01-01 ~ 2021-12-31 任务 3: 2022-01-01 ~ 2022-12-31 任务 4: 2023-01-01 ~ 2023-12-31 任务 5: 2024-01-01 ~ 2024-12-31按年/月拆分还有一个额外收益便于故障定位与续传。某个时间段的任务失败只需重跑该时间片段不必影响其他片段同时天然形成了可并行的任务粒度。:::tip 并行回填时请关注 PI Data Archive Server 的负载情况避免因过多并发读取影响 PI 系统的正常运行。建议分批启动任务例如先启动 2 个观察 PI 负载再逐步增加而不是一次性全部提交。 :::对 PI 系统的性能影响回填任务会从 PI Data Archive 大量读取历史数据可能对 PI 系统产生以下影响增加 PI Data Archive 的 CPU 和 I/O 负载增加网络带宽占用。缓解措施在 PI 系统负载较低的时段如夜间、周末执行回填控制并行任务数量通过批次大小参数控制读取速率。从源码与调度机制看见 高可用与故障转移PI backfill 任务同 PI 实时任务一样按单个 Job 调度到某个 Xnode 上运行任务本身从 PI Data Archive 拉取数据的速率越高对 PI 的冲击越大因此削峰填谷是回填调度的首要原则。推荐迁移流程先回填后实时推荐这是最常见的迁移流程适合大多数场景关键点步骤 4 中创建实时任务时配置适当的重启补偿时间覆盖回填完成到实时任务启动之间的时间间隔确保过渡期无数据丢失。重启补偿时间是实时任务的关键参数格式如2d、3h、4m任务中断或首次启动时会自动回填该窗口内的数据详见 实时数据同步步骤 5 建议对比 PI 和 TDengine 的数据量并抽样检查数据准确性方法见下文数据验证。该流程的优点是历史数据先落地实时任务启动后 TDengine 立即拥有完整的连续数据视图查询与分析可在迁移窗口内同步进行适合大多数场景。先实时后回填适用于需要尽快开始实时数据同步的场景关键点TDengine 对相同时间戳的数据会进行更新覆盖写入因此实时任务和回填任务写入的时间重叠部分不会产生重复数据这种方式的优势是实时数据不会有延迟缺点是回填期间的 PI 系统和 TDengine 负载会更高。需要说明的是同一 PI 任务在两个节点上同时运行的场景系统在调度与执行侧有防双跑机制worker 侧调度会拒绝同一(task_id, job_id)的重复启动因此回填与实时两个任务在时间重叠区的写入最终由 TDengine 的同时间戳覆盖写语义收敛为一份数据。数据验证回填完成后建议进行以下验证确保迁移数据可用数据量对比在 PI 和 TDengine 中分别查询同一时间范围的数据量确认一致-- TDengine查询某张表在回填时间范围内的数据量 SELECT COUNT(*) FROM table_name WHERE ts 2020-01-01 AND ts 2025-01-01;在 PI 侧可使用 PI DataLink 或 PI SQL 在相同时间范围内统计对应 Point/元素的数据条数与 TDengine 的结果对比。注意TDengine 侧使用ts start AND ts end的半开区间写法PI 侧统计时应采用完全一致的时间边界与时区避免边界差异造成数量不一致。数据准确性抽样选取若干个点位/元素对比 PI 和 TDengine 中特定时间点的数据值是否一致。建议在时间范围内均匀抽取多个时间点如每天取一个代表点对每个抽样点同时对比值value与质量状态码status——多列模型中xxx_status列对应 PI 的质量状态码单列模型中status列同理尤其关注数据修正过的时间点PI 中可能存在手动修改异常值的操作确认修正值已同步。时间戳对齐确认 TDengine 中的时间戳与 PI 中的原始时间戳一致特别关注时区问题。建议核对任务配置的时间范围所使用的时区与 PI Data Archive 内部存储的时区是否一致迁移后抽样查询若干行数据的ts列与 PI 侧导出结果逐条比对若 PI 与 TDengine 所在主机时区设置不同需确认连接器的时区换算行为是否符合预期。常见问题回填任务中断后如何续传PI backfill 任务支持断点续传。如果任务中断重新启动后会从上次中断的位置继续回填已写入的数据不会重复处理。若任务所在的 taosX 实例发生故障可结合 高可用与故障转移 中的调度机制让任务在其他 Xnode 上重新拉起后继续执行。大规模点位回填的分批策略如果需要回填上万个点位的数据建议按模板/点位组拆分为多个任务每个任务使用独立的模型配置文件CSV格式见 模型配置参考分批启动监控 PI 系统负载。拆分时注意多列模型可按 AF 模板Template行划分单列模型可按 UOM数据类型分出的超级表如volt_float32划分点位组保证每个任务的点位规模可控。回填速度慢如何排查检查网络带宽是否是瓶颈查看 PI Data Archive 的 CPU 和 I/O 负载检查 TDengine 写入是否成为瓶颈尝试调整批次大小参数将日志级别调整为debug查看详细信息在高级选项中将连接器日志级别从默认的info临时切到debug排查后恢复。另外如果 TDengine 侧写入成为瓶颈还应检查目标数据库的副本数、WAL 配置与磁盘 I/O如果 PI 侧成为瓶颈则应降低并发任务数而非单纯增大批次大小。相关文档PI 数据接入总览PI 数据接入前置条件PI 连接器部署架构PI 模型配置文件参考PI 实时数据同步指南PI 连接配置与认证PI 连接器高可用与故障转移赞分享数据库时序数据库物联网大数据实时分析云原生【免费下载链接】tdengineTDengine is an open source, high-performance, cloud native time-series database optimized for Internet of Things (IoT), Connected Cars, Industrial IoT and DevOps.项目地址https://gitcode.com/taosdata/tdengine点击查看免费下载相关推荐TDengine PI 历史数据回填Backfill完全指南任务创建、性能调优与数据校验TDengine PI 历史数据回填Backfill完全指南任务创建、性能调优与数据校验 本篇指南围绕 TDengine 通过 taosX 的 PI 连接数据库时序数据库大数据物联网云原生TDengine PI 历史数据回填PI Backfill实战指南任务创建、性能调优与迁移流程TDengine PI 历史数据回填PI Backfill实战指南任务创建、性能调优与迁移流程 本指南围绕 TDengine 的 taosX 数据接入体系数据库时序数据库物联网大数据实时分析云原生TDengine PI 历史数据回填实战从迁移流程、性能优化到数据验证TDengine PI 历史数据回填实战从迁移流程、性能优化到数据验证 本篇聚焦 TDenginetaosX中 PI backfill 任务的完整使用方法数据库时序数据库大数据物联网云原生上一篇Hermes与React Native深度集成实践下一篇数据处理实战Python数据容器与格式化技巧创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表