ThingWorx モデルとデータの最良事例 > データ管理 > ランタイムデータのパージ
ランタイムデータのパージ
概要
生産システムで生成および保管されるデータの量は少なく見積もられがちです。保管するデータの量は用途によってまったく異なるので、PTC はこれに関する公式の推奨値を示していませんが、どの生産システムでも、パフォーマンス上の理由から、古いデータのパージについて計画しておくことをお勧めします。データのパージを計画する際には、以下について検討する必要があります。
ログに記録するプロパティの数
プロパティをログに記録する Thing の数
これらのプロパティをログに記録する頻度
データをレコードとしてアーカイブするかどうか ランタイムデータのセクションを参照してください。
非常に大雑把に言って、数分おきに数百の Edge デバイスの数個のプロパティについてデータが記録される場合、データを数カ月から 1 年間保管できます。1 分間に数回、千個の Thing の 100 個のプロパティについてデータが記録される場合、数週間分の古いデータをパージする必要が生じることがあります。小さなチャンクのデータを継続的にクエリーおよびパージすることをお勧めします。より高い頻度で (週に 1 回ではなく 1 日 1 回) スケジュールされたパージを作成するとパフォーマンスが向上します。
1 年以上データを保管しなければならない場合、保管に外部データベースを使用することをお勧めします。
データのパージ方法
データをパージする JavaScript はシナリオによって異なりますが、以下の一般的な手順は同じです。
1. 新規 Thing を作成し、その「ベース Thing Template」「スケジューラ」に設定します。
2. 「コンフィギュレーション」セクションを開き、runAsUser および schedule プロパティを設定します。
schedule プロパティの適切なフォーマットについては、 https://docs.oracle.com/cd/E12058_01/doc/doc.1014/e12030/cron_expressions.htm を参照してください。
パージによっては、ジョブ中に JVM の使用率が上がることが予想されます。したがって、大きなジョブはピークでない時間に実行される小さなジョブに分割するのが最適です。
3. 「購読」を選択し、「追加」ボタンをクリックします。
4. 「購読情報」セクションで、「自分」を選択し、「有効」をオンにします。
5. 「入力」をクリックします。
6. 「イベント」フィールドで、ScheduledEvent を選択します。
7. パージジョブの JavaScript の詳細を追加します。
* 
値ストリームサービスおよびストリームサービスでは、開始日が指定されていない場合、エポックから開始して、すべての値がパージされます。終了日が指定されていない場合、サービスが実行された時刻までのすべてのプロパティがパージされます。
スケジューラの最良事例
Thing Template レベルでタイマー/スケジューライベントを購読しないでください。代わりに、Thing で購読します。
頻繁に発生するタイマーで大量のデータをクエリーしないでください。その他の情報については、PTC コミュニティの このアーティクルを参照してください。
可能な場合は必ず、購読内の同じデータソースをクエリーした後で更新しないでください。代わりに、各購読でデータテーブルのストリームを 1 回クエリーし、必要な場合にはスケジューラジョブの最後に再び (バッチ更新文を使用して) クエリーします。
値ストリーム、ストリーム、ファイルリポジトリのパージ
データのパージの詳細については、 「Best Practice for Purging Value Streams, Streams, and Old File Repository Files in ThingWorx」を参照してください。