![](https://habrastorage.org/files/409/036/b8c/409036b8c32c46b0a90f5ad8d5eb4794.jpg)
この記事では、AggreGateの実装の一部として対処される特定のタスクに関する一連の出版物を公開します。実際のプロジェクトで役立つことを願っています。
少し前に、基地局用の統合電源システムの製造とメンテナンスのパートナーにアフリカの携帯電話会社から連絡がありました。 このプロジェクトは、1000〜2000の基地局向けに設計されました。 このプロジェクトの一環として、AggreGateはレポートの監視、管理、視覚化、構築に使用されました。 システムの操作中にレポートが必要であり、レポートを使用して、機器の主要なパラメータをすばやく確認できます。 これらのレポートは、後で電源システムのKPIを策定し、最適なパラメーターを選択し、メンテナンススケジュールを決定し、エンジニアリングチームのルートを構築するために使用されました。
AggreGateの柔軟なツールを作成しました。これにより、履歴データと統計データの両方を使用してこのテーブルを簡単に作成できます。 関数の概要() この記事では、履歴値によってデータのテーブルを取得する方法を見ていきます。
この例では、サイトで使用される周囲温度とSOC温度のデータを使用してエネルギー源を管理することを提案します。
ステップ1:必要な変数のフィールドを選択します。
最も便利な方法は、デバイスのスナップショットを調べて、関心のあるフィールドの名前を決定することです。
![](https://habrastorage.org/files/675/701/a05/675701a0506040fd9234f251186d63eb.jpg)
ステップ2:データを取得し、関数のパラメーターを理解する式を作成します。
![](https://habrastorage.org/files/2b7/9b7/af2/2b79b7af2d5949d3a6613601ed8b84df.jpg)
ユーティリティのコンテキストにあるsummary()関数を呼び出すには、 callFunction()関数を使用しました 。これにより、任意のコンテキストの関数を呼び出し、この関数のパラメーターを渡すことができます。
サブテーブル(callFunction( "utilities"、 "summary"、 "systemCPUTemperature"、 "System CPU Temperature"、date(2015、05、10、0、0、0)、date(2015、05、19、0、0、0 )、「Users.d3.devices.TH3DGM」、「device_data」、1、「{system_cpu_temperature}」、null、4、2、0、0、null、null、null、true、false、0)、「periodName」 、「コンテキスト」、「systemCPUTemperature」)
どこで:
1)結果のテーブルの「systemCPUTemperature」フィールドID(スペースなし)。
2) 「システムCPU温度」結果のテーブルのフィールドの説明。
3) 日付(2015、05、10、0、0、0)開始日
4) 日付(2015、05、19、0、0、0)終了日
5) "users.d3.devices.TH3DGM"デバイスコンテキストまたはマスクへのパス。
6) 「device_data」関数が機能する変数のID。
7) 1つのデータ型、この場合-変数。イベントを操作することもできます。
8) "{system_cpu_temperature}"結果のテーブルのフィールド値を計算するための式。 私たちの場合、これはsystem_cpu_temperatureフィールドの値です
9)日付を計算するnull式。 (デフォルトでは、異なる日付を使用する必要がある場合、データベースからタイムスタンプが取得されます。同じ変数のフィールドが日付と見なされるように式を記述できます)
10) 4データ集計期間。
11) 2集計のタイプ(この例では最大)
12) 0値の変更のタイプ(生データがあります)
13) 0データの正規化(この例ではこのようなデータを無視します)
14) nullシリーズ入力の最小許容値
15) nullシリーズ入力の最大許容値
16) nullソースデータのタイムゾーン(サーバーのタイムゾーンを使用)
17) true各集計期間の結果を表示するかどうか。
18) falseソースデータの選択した期間全体の合計結果を表示するかどうか。
19) 0時間またはデバイスで並べ替えます(時間で使用します)
次の表を取得します。
![](https://habrastorage.org/files/0fd/497/b44/0fd497b444164ab19d7277b02d38e06c.jpg)
STEP3:余分なフィールドを削除し、結果を楽しみます。
![](https://habrastorage.org/files/e2b/0d0/d3f/e2b0d0d3f792472d89532237aa1131f4.jpg)
subtable()関数を使用して、テーブルにフィードする最初のパラメーターを指定し、次に残したいフィールドをリストします。
![](https://habrastorage.org/files/7e7/399/80e/7e739980ec9049a1be980abb916f043e.jpg)
次の出版物では、組み込みのAggreGateツールでイベントを使用する方法と、クエリとレポートをより柔軟で汎用的にするためにパラメータ化する方法を検討します。
次の記事で説明する内容や個人的な経験、特定の問題の解決策についての提案を歓迎します。