0

我们正在使用 VOLTTRON MySQL Historian 将仪表读数保存到 MySQL 数据库中。仪表读数以类似于 JSON 的格式保存在“值字符串”中:

[{'W_primary': 19003.677734375, 'freq': 60.01973342895508, 'pf': -0.9935459494590759}, {'W_primary': {'units': 'W ', 'tz': 'PT', 'type': 'float'}, 'freq': {'units': 'Hz', 'tz': 'PT', 'type': 'float'}, 'pf': {'units': u'', 'tz': 'PT', 'type': 'float'}}]

我们的目标是能够导出这些数据以供在 VOLTTRON 和外部 VOLTTRON 环境中使用。在 VOLTTRON 之外,是否有用于直接从 MySQL 数据库解析这些数据的 python 脚本/库?例如,一个应用程序可能是使用 Labview 工具来自定义数据主题/时间范围以导出到 csv(例如,来自给定日期的所有频率数据)。因为格式不是真正的 JSON,我们不能使用 JSON 函数参考(https://dev.mysql.com/doc/refman/5.7/en/json-function-reference.html)。

或者,Historian 有没有办法以更直接的列格式写入数据库?

注意:我们使用的是 VOLTTRON 2.0。此功能在更新的版本中是否发生了变化?

4

1 回答 1

0

MySQL historian 直到 VOLTTRON 3.0 才存在。我什至不确定你是如何完成这项工作的,因为消息总线从 2 到 3 发生了显着变化。有一个兼容层,但它用于在 V3 上运行 V2 代理,而不是相反。

您问题中的 JSON 是驱动程序实际发布到设备“全部”主题的内容。第一项是点名称到主题的映射,第二项是点名称到元数据的映射。

在 3 及以后,历史学家将选择这一点并将点值与该点的完整主题相匹配。您应该在数据库中看到一个主题到值的表。这些值的存储方式取决于特定的历史实现(Mongo vs MySQL vs Crate vs SQLite),但它将是点主题到值的映射。

在较新版本的 VOLTTRON 中,我们放弃了 sMap 作为从设备收集数据的主要方式。所有设备交互现在都通过主驱动程序代理进行。用于描述设备的 CSV 文件大部分未更改。每个设备的配置现在以 JSON 格式存储在每个设备格式的一个文件中。

我强烈建议更新到 VOLTTRON 4。自 2 以来该平台有许多改进。

编辑:我还应该提到消息的形式从 2 变为 3,这可能是让历史学家感到困惑的原因。

于 2017-04-19T21:51:43.067 回答