ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

TDengine PI Data Ingestion CSV Model Configuration File Reference

TDengine PI Data Ingestion CSV Model Configuration File Reference TDengine PI Data Ingestion CSV Model Configuration File Reference【免费下载链接】TDengineHigh-performance, scalable time-series database designed for Industrial IoT (IIoT) scenarios项目地址: https://gitcode.com/GitHub_Trending/tde/TDengine本文是 TDengine 零代码数据接入体系中PIAVEVA PI System原 OSIsoft PI数据源模型配置文件CSV 格式的完整参考。它定义了从 PI 系统到 TDengine 的数据映射规则超级表对应关系、列与 TAG 映射、过滤条件与转换表达式适用于在 taosExplorer 中创建 PI 实时任务与 PI 历史回填任务时的模型配置。读完本文你将掌握多列模型与单列模型两类配置文件的完整格式、占位符与内联表达式语法并能自行编写、校验和优化 PI 接入的模型配置文件。概述模型配置文件在 PI 数据接入中的角色在 PI 数据接入 流程中taosX 通过 PI connector 插件从 PI 系统抽取实时或历史数据写入 TDengine。而「PI 数据如何映射到 TDengine 的表结构」这一核心规则正是由一个CSV 格式的模型配置文件来定义的它至少包含四类信息PI 数据源与 TDengine 超级表的对应关系PI Point单列模型或 AF 元素模板多列模型分别归入哪个超级表PI 属性与 TDengine 列的映射哪些属性进 Metric 列COLUMN、哪些进标签列TAG数据过滤条件可选仅同步满足条件的元素/点位数据转换表达式对源字段做清洗、拼接、替换等变换后再落库。在 taosExplorer 中创建 PI 任务时数据模型配置区域提供「下载默认配置」按钮可自动生成一份默认模型配置文件到本地你可以直接使用也可以编辑后上传覆盖默认配置。该文件是 PI 接入任务可落地的关键一环其正确性直接决定目标超级表结构与数据质量。前置背景任务类型、数据模型与数据源类型理解配置文件之前需要先明确 PI 接入任务的三个维度详见 PI 接入索引按数据时效性划分的任务类型任务类型taosExplorer 中的名称说明实时任务PI持续订阅 PI 系统中的实时数据变化并写入 TDengine回填任务PI backfill抽取指定时间范围内的历史数据写入 TDengine按数据模型划分对应两种配置文件数据模型映射规则适用场景单列模型Single-column Model一个 PI Point → 一张 TDengine 子表点位为中心的数据采集多列模型Multi-column Model一个 PI AF Element → 一张 TDengine 子表设备/资产为中心的数据采集按接入数据源类型划分数据源类型支持的数据模型说明仅 PI Data Archive仅单列模型直接连接 PI Data Archive ServerPI Data Archive AF Server单列与多列模型通过 PI AF SDK 连接支持完整资产框架其中多列模型依赖 AF 资产框架因此只在 AF Server 模式下可用而仅连接 PI Data Archive 时只能使用单列模型与point过滤单元详见 Dataset Filter 配置。多列模型配置文件多列模型将一个 PI AF 元素映射为 TDengine 的一张子表同一个元素模板Template下的所有元素共享同一个超级表结构。此类配置文件通常在「PI Data Archive AF Server」模式下配合多列模型使用。文件结构多列模型配置文件由一个或多个超级表定义块组成块之间以空行分隔。每个超级表定义块包含以下行行格式说明超级表名SuperTable,名称TDengine 超级表名称子表名规则SubTable,模板支持占位符如${element_name}_${element_id}元素模板Template,模板名对应 PI AF 中的元素模板名称过滤条件Filter,条件可选用于过滤元素列定义列名,KEY\|COLUMN\|TAG,数据类型,映射规则定义每一列的映射列定义说明每行列定义由四个字段组成其中第二个字段为列类型关键字列类型关键字说明时间戳列KEY必须有且仅有一个数据类型为TIMESTAMP数据列COLUMN对应 PI Point 属性的值Metric 列标签列TAG对应元素的静态属性或元数据完整示例以下配置文件定义了两个超级表metertemplate来自MeterTemplate模板和farm来自Farm模板SuperTable,metertemplate SubTable,${element_name}_${element_id} Template,MeterTemplate Filter, ts,KEY,TIMESTAMP,$ts voltage,COLUMN,DOUBLE,$voltage voltage_status,COLUMN,INT,$voltage_status current,COLUMN,DOUBLE,$current current_status,COLUMN,INT,$current_status element_id,TAG,VARCHAR(100),$element_id element_name,TAG,VARCHAR(100),$element_name path,TAG,VARCHAR(100),$path categories,TAG,VARCHAR(100),$categories SuperTable,farm SubTable,${element_name}_${element_id} Template,Farm Filter, ts,KEY,TIMESTAMP,$ts wind_speed,COLUMN,FLOAT,$wind_speed wind_speed_status,COLUMN,INT,$wind_speed_status power_production,COLUMN,FLOAT,$power_production power_production_status,COLUMN,INT,$power_production_status lost_power,COLUMN,FLOAT,$lost_power lost_power_status,COLUMN,INT,$lost_power_status farm_lifetime_production__weekly_,COLUMN,FLOAT,$farm_lifetime_production__weekly_ farm_lifetime_production__weekly__status,COLUMN,INT,$farm_lifetime_production__weekly__status farm_lifetime_production__hourly_,COLUMN,FLOAT,$farm_lifetime_production__hourly_ farm_lifetime_production__hourly__status,COLUMN,INT,$farm_lifetime_production__hourly__status element_id,TAG,VARCHAR(100),$element_id element_name,TAG,VARCHAR(100),$element_name path,TAG,VARCHAR(100),$path categories,TAG,VARCHAR(100),$categories逐行解读以第一个超级表metertemplate为例逐行说明SuperTable,metertemplate定义超级表名为metertemplateSubTable,${element_name}_${element_id}子表名由元素名和元素 ID 拼接而成例如Meter001_12345Template,MeterTemplate数据来自 PI AF 中名为MeterTemplate的元素模板Filter,不设置过滤同步该模板下的全部元素ts,KEY,TIMESTAMP,$ts时间戳列取 PI 数据的时间戳voltage,COLUMN,DOUBLE,$voltage数据列取元素的voltage属性值voltage_status,COLUMN,INT,$voltage_status数据列取voltage的质量状态码element_id,TAG,VARCHAR(100),$element_id标签列取元素的唯一 IDpath,TAG,VARCHAR(100),$path标签列取元素在 AF 层级中的路径。从示例可见一个典型的多列模型设计模式每个 PI Point 属性带一个_status质量状态码列用于保存 PI 数据的质量信息同时将element_id、element_name、path、categories等资产元数据沉淀为 TAG便于后续按资产维度做聚合与检索。默认映射规则对于使用 AF Server 的多列模型任务taosX 的默认映射规则为taosX 默认将PI Point 属性映射为 TDengineCOLUMNMetric 列taosX 默认将其他属性静态属性映射为 TDengineTAG列。该默认规则决定了「下载默认配置」生成的列定义走向动态变化的过程量PI Point 属性进数据列静态的资产描述信息进标签列。若默认规则不满足需求可在下载后手动调整列定义行的第二个字段。单列模型配置文件单列模型将一个 PI Point 映射为 TDengine 的一张子表。该模型在「仅 PI Data Archive」与「PI Data Archive AF Server」两种模式下均可用后者借助 AF 上下文补充 UOM、元素归属等元数据。文件结构单列模型配置文件由两部分组成超级表定义部分定义若干个超级表的列结构写法与多列模型的超级表定义块类似。默认生成的配置会按UOM工程单位 数据类型将点位自动分组到不同的超级表。点位映射部分格式为Point名称,POINT,超级表名逐行定义每个 PI Point 归属于哪个超级表。完整示例SuperTable,volt_float32 SubTable,${point_name} Filter, ts,KEY,TIMESTAMP,$ts value,COLUMN,FLOAT,$value status,COLUMN,INT,$status path,TAG,VARCHAR(200),$path point_name,TAG,VARCHAR(100),$point_name ptclassname,TAG,VARCHAR(100),$ptclassname sourcetag,TAG,VARCHAR(100),$sourcetag tag,TAG,VARCHAR(100),$tag descriptor,TAG,VARCHAR(100),$descriptor exdesc,TAG,VARCHAR(100),$exdesc engunits,TAG,VARCHAR(100),$engunits pointsource,TAG,VARCHAR(100),$pointsource step,TAG,VARCHAR(100),$step future,TAG,VARCHAR(100),$future element_paths,TAG,VARCHAR(512),$element_paths.replace(\\, .) SuperTable,milliampere_float32 SubTable,${point_name} Filter, ts,KEY,TIMESTAMP,$ts value,COLUMN,FLOAT,$value status,COLUMN,INT,$status path,TAG,VARCHAR(200),$path point_name,TAG,VARCHAR(100),$point_name ptclassname,TAG,VARCHAR(100),$ptclassname sourcetag,TAG,VARCHAR(100),$sourcetag tag,TAG,VARCHAR(100),$tag descriptor,TAG,VARCHAR(100),$descriptor exdesc,TAG,VARCHAR(100),$exdesc engunits,TAG,VARCHAR(100),$engunits pointsource,TAG,VARCHAR(100),$pointsource step,TAG,VARCHAR(100),$step future,TAG,VARCHAR(100),$future element_paths,TAG,VARCHAR(512),$element_paths.replace(\\, .) Meter_1000004_Voltage,POINT,volt_float32 Meter_1000004_Current,POINT,milliampere_float32 Meter_1000001_Voltage,POINT,volt_float32 Meter_1000001_Current,POINT,milliampere_float32 Meter_1000474_Voltage,POINT,volt_float32 Meter_1000474_Current,POINT,milliampere_float32逐行解读超级表定义部分以volt_float32为例SuperTable,volt_float32超级表名为volt_float32电压类 Float32 点位SubTable,${point_name}子表名直接使用点位名value,COLUMN,FLOAT,$value数据列存储点位的值status,COLUMN,INT,$status数据列存储质量状态码point_name,TAG,VARCHAR(100),$point_name标签列存储点位名称engunits,TAG,VARCHAR(100),$engunits标签列存储工程单位element_paths,TAG,VARCHAR(512),$element_paths.replace(\\, .)标签列使用内联表达式将路径分隔符从\替换为.。单列模型的超级表列结构高度模板化除value/status两个数据列外其余均为描述性 TAG涵盖path、point_name、ptclassname点位类别名、sourcetag源标签、tag、descriptor描述、exdesc扩展描述、engunits工程单位、pointsource点位来源、step步长、future以及element_paths点位关联的元素路径。这套 TAG 集合保留了 PI Point 的完整元数据便于在 TDengine 侧按任意维度检索。点位映射部分Meter_1000004_Voltage,POINT,volt_float32点位Meter_1000004_Voltage归属于超级表volt_float32Meter_1000004_Current,POINT,milliampere_float32点位Meter_1000004_Current归属于超级表milliampere_float32。注意示例中的分组逻辑Voltage点位单位 Volt全部归入volt_float32Current点位单位毫安全部归入milliampere_float32这正是「按 UOM 数据类型分组」这一默认策略的直接体现。映射规则与表达式常用占位符以下占位符可在列定义的映射规则中使用占位符说明适用范围$ts数据时间戳单列/多列$value点位值单列模型$status质量状态码单列/多列$point_namePI Point 名称单列模型$element_nameAF 元素名称多列模型$element_idAF 元素唯一 ID多列模型$path元素/点位路径单列/多列$categoriesAF 元素分类多列模型$element_paths点位关联的元素路径单列模型$属性名PI Point 属性或 AF 元素属性按实际属性名引用$属性名是通用形式的占位符例如示例中的$voltage、$wind_speed、$power_production等都按 PI Point / AF 元素的实际属性名引用。$ts、$status等内置占位符则对应数据管道注入的标准字段。内联表达式对于需要数据转换的场景可以用反引号包裹内联表达式例如将路径分隔符统一转换为.element_paths,TAG,VARCHAR(512),$element_paths.replace(\\, .)该表达式的含义是取$element_paths字段值调用字符串replace方法将\替换为.转换结果写入element_paths标签列。内联表达式与 零代码数据写入 中「数据提取、过滤和转换」部分描述的表达式体系一致支持的变换能力包括字符串处理pad(len, pad_chars)填充、trim去空白、sub_string(start_pos, len)截取、replace(substring, replacement)替换等类型转换parse_int(56)字符串转整型、parse_float(12.3)字符串转浮点数值运算expr四则运算 - * /及sin/cos/sqrt/exp/ln/floor/round等数学函数条件过滤比较运算符与is_empty、contains、starts_with、ends_with、len等字符串判断函数并用、||、!组合。子表名占位符SubTable行的模板支持以下占位符占位符说明${point_name}PI Point 名称单列模型${element_name}AF 元素名称多列模型${element_id}AF 元素唯一 ID多列模型占位符可以组合使用例如${element_name}_${element_id}将生成Meter001_12345形式的子表名。子表名本质上是字符串也可参照 零代码数据写入 中的format字符串格式化表达式按需构造。常见模式与最佳实践按 UOM 分超级表默认生成的单列模型配置会按UOM工程单位 数据类型自动分组例如所有单位为Volt且数据类型为Float32的点位归入同一个超级表volt_float32所有单位为milliampere的 Float32 点位归入milliampere_float32。这是推荐的默认做法因为同一超级表下所有子表必须具有完全一致的列结构按 UOM 分组天然保证同组点位的量纲与精度一致列结构自然对齐。过滤特定点位或模板在 taosExplorer 中填写 Dataset Filter 条件后再点击下载默认配置可以只生成匹配过滤条件的点位/模板的配置。Dataset Filter 支持point、element、template三个过滤单元通配符语法为*匹配 0 或多个字符与?匹配恰好 1 个字符其中element单元还支持路径匹配具体语法与注意事项参见 Dataset Filter 配置。需要注意的是Dataset Filter 只影响「下载默认配置」时生成的点位/元素范围生成之后还可以手动编辑 CSV 进一步裁剪多列模型修改Filter行例如填入元素过滤条件或直接增删超级表定义块单列模型在点位映射部分删除不需要的点位行Point名称,POINT,超级表名。自定义超级表名如果默认按 UOM 分组的命名不满足业务需求可以直接修改SuperTable行的值并同步调整点位映射部分中的超级表引用。例如将电压点位从volt_float32重命名为plant1_voltage则所有Meter_*_Voltage点位行中的第三个字段都要一并改为plant1_voltage。重命名时需保持整份文件中的引用一致否则点位会落入不存在的超级表定义导致任务配置校验失败。延伸阅读模型配置文件是 PI 接入任务的一个环节完整落地 PI 数据接入还涉及以下配套文档PI 数据接入索引任务创建流程、连接配置、高级选项如多列模型实时任务的动态元素同步开关总览部署架构taosX 与 taosX-Agent 的部署形态连接配置与认证PI Server / AF Server 连接字段、Windows 集成认证与 PI 侧权限配置Mapping 与 ACL历史数据回填指南 与 实时数据同步指南两种任务类型的参数与最佳实践高可用与故障转移多 taosX 实例冗余采集零代码数据写入数据提取、过滤与转换的完整表达式语法。【免费下载链接】TDengineHigh-performance, scalable time-series database designed for Industrial IoT (IIoT) scenarios项目地址: https://gitcode.com/GitHub_Trending/tde/TDengine创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表