FineDataLink实战案例分享【2024-08-27周】
1、FDL最佳实践
1.1 PI数据库API循环取数
1)什么是PI数据库
PI 数据库是由美国 OSIsoft 公司开发的一种适用于实时数据管理的系统。它提供了高性能的数据采集、存储和检索服务,通常用于工业自动化、过程控制、能源管理等领域。
2)取数方式
PI Web API 是 PI System 提供的基于 Web 的应用程序编程接口(API),允许开发人员通过网络请求的方式访问 PI 数据,并与 PI System 进行集成。
PI Web API 支持常见的网络协议,如 HTTP 和 HTTPS,可以使用各种编程语言和开发框架来发出请求并处理响应。使用 PI Web API 时,开发人员可以使用认证方式获得对 PI 系统的访问权限,并通过发送适当的 HTTP 请求来获取数据、执行操作或执行其他功能。
PI Web API 的返回结果通常以常见的数据格式,如 XML 或 JSON 格式进行表示,以便可以轻松地进行解析和处理。
3)取数思路
在 PI 系统中,每个装置都有对应的位号,位号不能直接取值,需要用位号获取对应的 web_id ,再用 web_id 通过 API 取数的方式,返回需要的值。
注:装置对应的位号与 WEBID 可能存在变化,所以每次取数前需要进行更新。
4)参考文档
详情请参见:PI数据库API循环取数
1.2 多个逗号分隔的字段按照分组顺序匹配
应用场景:
从接口取数后,数据保存格式为:{{主数据},{子数据1,子数据2}{子数据a,子数据b}};其中,子数据中包含多个字段,以逗号分割存储。如下图所示:
实际业务场景中,每个子数据相当于一个分组,希望所有子数据按照分组内的数据顺序进行匹配(上图相同颜色的在同行展示)。希望得到的数据如下图所示:
使用两个「字段拆行」算子分别拆分职务、分公司字段时,出现笛卡尔积。如下图所示:
黄色标记的字段非实际需要数据。
参考文档:
详情请参见:多个逗号分隔的字段按照分组顺序匹配
2、功能使用指导
2.1 FineDataLink与Kettle的区别
很多新手用户使用 FDL 前,想了解 FDL 与 Kettle 的区别,可参见文档:FineDataLink与Kettle的区别
2.2 「包含」和「属于」的区别
应用场景:
条件判断逻辑说明 文档中,简单介绍了属于、不属于、包含、不包含这四种条件判断逻辑;很多用户不清楚属于与包含、不属于与不包含的区别,本文将对此进行详细解释。
参考文档:
详情请参见:「包含」和「属于」的区别
2.3 不同写入方式效果说明
应用场景:
数据同步-写入方式 文档中,介绍了三种写入方式:直接将数据写入目标表、清空目标表,再写入数据、基于标识字段,新增/修改/删除数据。
本文为您展示这三种写入方式的实际效果。
参考文档:
详情请参见:不同写入方式效果说明