解析MySQL Historian格式

解析MySQL Historian格式,mysql,volttron,Mysql,Volttron,我们正在使用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','PT',

我们正在使用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','PT','type','float'},'pf

我们的目标是能够导出这些数据,以便在VOLTTRON中使用,也可以在VOLTTRON环境外部使用。在VOLTTRON之外,是否有直接从MySQL数据库解析这些数据的python脚本/库?例如,一个应用程序可能是使用Labview工具自定义要导出到csv的数据主题/时间范围(例如,给定日期的所有频率数据)。因为格式不是真正的JSON,所以我们不能使用JSON函数Reference()

或者,是否有一种方法可以让历史学家以更直接的列格式写入数据库


注意:我们使用的是VOLTTRON 2.0。这个功能在最近的版本中有没有改变?

MySQL historian直到VOLTTRON 3.0才出现。我甚至不知道你是如何做到这一点的,因为消息总线从2变为3。有一个兼容层,但它用于在V3上运行V2代理,而不是相反

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

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

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

我强烈建议升级到VOLTTRON 4。自2年以来,该平台有许多改进


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

如果单引号是双引号,我相当确定这将是有效的JSON,如果是JSON,那么几乎所有东西都有一种将其从本机数据结构转换为本机数据结构的方法Hanks Kyle。我们已经更新到VOLTTRON 4.1,这解决了我们的数据列问题。问题是基本VOLTTRON平台和我们从较新版本引入的一些代理之间的版本不匹配。。