2017-04-19 11 views
0

私たちはVOLTTRON MySQL Historianを使用して、メーターの読みをMySQLデータベースに保存しています。メーターの測定値は、JSONのような形式で、「値の文字列」に保存されます。MySQLのヒストリアン形式の解析

[{'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にエクスポートすることができます(たとえば、特定の日のすべてのフリークエンシーデータ)。フォーマットはtrue J​​SONではないので、JSON関数リファレンス(https://dev.mysql.com/doc/refman/5.7/en/json-function-reference.html)は使用できません。

また、ヒストリアンがより簡単な列形式でデータベースに書き込む方法がありますか?

注:VOLTTRON 2.0を使用しています。最近のバージョンでこの機能が変更されましたか?

+0

一重引用符を二重引用符で囲んだ場合は、有効なJSON – RiggsFolly

+0

が正しいと確信しています。それがJSONの場合は、すべてのものがネイティブデータ構造との変換方法を持っています – RiggsFolly

答えて

0

MySQLの歴史家は、VOLTTRON 3.0まで存在しませんでした。メッセージバスが2から3に大幅に変更されたので、この作業をどのようにして作ったのかはまだ分かりません。互換レイヤーがありますが、V3上でV2エージェントを実行しています。

あなたの質問のJSONは、実際にドライバによって「デバイス」の「すべて」のトピックに公開されているものです。最初の項目はトピック名に対するポイント名のマップで、2番目の項目はメタデータに対するポイント名のマップです。

3歳以上では、ヒストリアンがこれを選択し、ポイントの値をポイントの完全なトピックと一致させます。あなたがデータベースで見るべきことは、トピックと値のテーブルです。これらの値がどのように格納されるかは、特定のヒストリアンの実装(Mongo vs Crate vs SQLite)までですが、値に対するポイントトピックのマップになります。

新しいバージョンのVOLTTRONでは、デバイスからデータを収集する主な方法としてsMapを削除しました。すべてのデバイスの対話は、マスタードライバエージェントを介して行われます。デバイスの記述に使用されるCSVファイルはほとんど変更されていません。デバイスごとの設定は、デバイスフォーマットごとに1ファイルでJSONに保存されるようになりました。

私は強く2

EDIT以来のプラットフォームには多くの改善がありますVOLTTRON 4へのアップデートをお勧めします:私は、メッセージが取ることにフォームが2から3に変更し、それが混乱しているものはおそらくであることにも言及する必要があります歴史家。

+0

ありがとうございます。 VOLTTRON 4.1にアップデートしました。これによりデータ列の問題が解決されました。この問題は、基本VOLTTRONプラットフォームと、新しいバージョンから取り込んだエージェントのいくつかのバージョンの不一致でした。 –