データ管理

データ保持ルール

データ保持ルールにより、データを保持する期間を制御することができます。デフォルトとして、60日経過した履歴データはすべて削除されます(プラットフォーム管理者がシステム設定で設定可能)。例えば、メジャーメントは90日間保存するが、アラームは10日間で削除するという設定も可能です。

必要条件

ロールとアクセス権限:

  • 保持ルールを表示する: 「データ保持ルール」権限タイプの読み取り権限
  • 保持ルールを管理する(作成、更新、削除): 「データ保持ルール」権限タイプの管理者権限

上記の権限を使用して、堅牢なユーザー管理のためのロールを作成できます。すべての新しいテナントに、デフォルトで一般的なロールが指定されています。

  • テナントマネージャー: アプリケーション、テナントオプション、データ保持ルールなどのテナント全体の構成を管理する
備考
通常、データ保持ルールは、1日に1回実行されます。データ保持ルールを編集しても、管理アプリケーションのホーム画面の 使用状況 セクションにはすぐに反映されません。

データ保持ルールの表示

管理メニューの データ保持ルール をクリックすると、アカウントに設定されているデータ保持ルールの一覧が表示されます。

保持ルール

ルールごとに、ルール名、削除するデータの詳細(フラグメントタイプ、タイプ、ソースについては、以下を参照)および最大保持期間(日数)が表示されます。

アスタリスク(*)は、どの値のデータもクリーンアップされることを示します。

データタイプ

次のデータタイプが、データ保持ルールの対象となります。

  • アラーム
  • 監査
  • 一括操作
  • イベント
  • 計測値
  • 操作
備考
データ保持ルールは、ファイルリポジトリに保存されているファイルには適用されません。

データ保持ルールの追加

  1. トップメニューバーの ルールを追加 をクリックします。
  2. 表示されたダイアログボックスより、クリーンアップしたいデータタイプを選択します(アラーム、計測値、イベント、操作、一括操作、監査、またはすべて)。
  3. クリーンアップするデータをもっと細かく設定したい場合、フラグメントタイプを入力します。このルールに従ってすべての接続無効アラームをクリーンアップしたい場合、データタイプに「アラーム」を選択し、タイプ 欄に「c8y_UnavailabilityAlarm」と入力します。
  4. 特定のデバイスからのデータのみ削除したい場合、デバイスIDを ソース 欄に入力します。
  5. 最大保持期間(日) を日数単位で入力します(最大許容値は10年分の日数です)。
  6. 保存 ボタンをクリックして設定を保存します。

これで、データ保持ルールは一覧に追加されます。

備考
デフォルトとして 最大保持期間 を除く、すべての欄にはアスタリスク(*)が設定され、すべての値が含まれます。 アラームは、ステータスが「クリア済み」でないと削除できません。

データ保持ルールの編集

編集したいルールの行をクリックし、表示された「データ保持ルールを編集」画面より編集してください。

それぞれのフィールドの詳細については、データ保持ルールの追加を参照してください。

保持ルールの削除する

削除するルールが含まれる行にマウスを置き、右側に表示される削除アイコン をクリックします。

すべてのデータ保持ルールは、互いに独立して順番に実行されます。したがって、2つのデータ保持ルールがある場合、最大保持期間がより長い具体的なルールと、最大保持期間がより短い一般的なルールで定義されているドキュメントのサブセットを定義します。すると、より一般的な単一のルールがあるかのように効果的に機能します。

例えば、次の 2 つのルールがあるとします。

データタイプ フラグメントタイプ タイプ ソース 最大保持期間
メジャーメント * c8y_Temperature * 30日
メジャーメント * c8y_Temperature 12345 60日

ソースが 12345 に等しいものを含め、30日以上経過した c8y_Temperature タイプのすべてのメジャーメントが削除されます。

一方、次のデータ保持ルールが定義されている場合:

データタイプ フラグメントタイプ タイプ ソース 最大保持期間
メジャーメント * c8y_Temperature * 30日
メジャーメント * * * 60日

データ保持プロセスは、30日以上経過したタイプ c8y_Temperature のメジャーメントを削除します。他のすべてのメジャーメントは、60日以上経過すると削除されます。

備考
ソース パラメータはデバイスIDです。定義されている場合、データ保持プロセスでは、ソースによって表されるデバイスに直接関連するドキュメントのみが削除され、デバイスが属する子デバイスやグループは削除されません。

ファイルリポジトリ

ファイルリポジトリでは、アカウントに保存されているファイルの概要が表示されます。

必要条件

ロールとアクセス権限:

  • ファイルリポジトリ内のファイルを表示する: 「インベントリ」権限タイプの読み取り権限。この権限で所有ファイルを削除できますが、他のユーザーのファイルを削除することはできません
  • ファイルリポジトリにファイルをアップロードする: 「インベントリ」権限タイプの作成権限
  • ファイルリポジトリ内の全オーナーのファイルをアップロードおよび管理する: 「インベントリ」権限タイプの管理者権限

上記の権限を使用して、堅牢なユーザー管理のためのロールを作成できます。すべての新しいテナントには、デフォルトで指定された一般的なロールがあります。

  • グローバルマネージャー: すべてのデバイスから、すべてのデータを読み書きできる
  • グローバルリーダー: すべてのデバイスから、すべてのデータを閲覧できる

管理メニューのファイルリポジトリをクリックして、ファイルの一覧を表示します。

ここで表示されるファイルはさまざまなソースから取得されます。これらは、ソフトウェア画像、デバイスから取得した構成スナップショット、デバイスからのログファイル、すべてのアプリケーション画面からアップロードしたWebアプリケーションがあります。

ファイルごとに、ファイル名、所有者、ファイルタイプ(image/bmp、text/csvなど)、サイズ、および最終更新日が表示されます。 ファイルタイプがサポートされている場合は、ファイル名の横にある虫眼鏡アイコンをクリックしてプレビューできます。ファイル行にマウスを移動したときに表示されるアクションボタンをクリックすると、ファイルをダウンロードまたは削除できます。一部のファイル(アプリケーション アーカイブなど)は、このページから削除できないことに注意してください。

フィルターまたは検索入力を使用して、特定のファイルを検索できます。詳細については、検索とフィルター機能を参照してください。デフォルトでは、ファイルはファイル名で並べ替えられます。並べ替えを変更するには、デフォルトのフィルターを削除し、一覧をフィルターするための独自の基準を定義します。

ファイルリポジトリ

ファイルシステムからファイルをアップロードする

トップメニューバーで ファイルをアップロード をクリックします。表示されるダイアログボックスで、ファイルシステムを参照するか、ファイルをドロップしてアップロードするファイルを選択します。選択したファイルは表示リストに表示されるので、アップロード をクリックしてアップロードを確認します。

アカウントからファイルをダウンロードする

各行の右側にあるダウンロードアイコン をクリックします。

アカウントからファイルを削除する

削除したいファイルを含む行にマウスを移動し、右側にある削除アイコン をクリックします。

複数ファイルの削除

削除したい各ファイルの横にあるチェックボックスを選択するか、表の上部にあるチェックボックスをクリックして表示されているすべてのファイルを選択します。表のヘッダーには、選択したファイル数と利用可能なアクションが表示されます。削除をクリックし、削除を確認します。

備考
  • ファイルがアプリケーションアーカイブの場合、ファイルリポジトリから削除することはできません。代わりに、アプリケーションの詳細からファイルを削除する必要があります。
  • ファイルを一括削除するとき、選択したファイルに削除対象外のファイルが含まれている場合、削除できないファイルは無視されて削除が続行されます。

最新のメジャーメント値

機能プレビュー

このセクションでは、c8y_LatestMeasurements フラグメントに基づくメジャーメントの自動的に永続化するための構成の作成方法について説明します。

有効にする方法

テナントオプションを使用して、テナントオプションカテゴリ への PUT リクエストで measurement.series.latestvalue という名前のカテゴリを作成します。

例:

PUT /tenant/options/measurement.series.latestvalue
{
  "c8y_Humidity.H":"", // 単一シリーズ c8y_Humidity.H を有効にする
  "c8y_Temperature.*":"" // フラグメント c8y_Temperature に基づくシリーズを有効にする
  // または "*":"" ですべてを有効にする
}

ここで、キーは永続的な必要があるメジャーメントシリーズのフィルターであり、その値は常に空の文字列である必要があります(将来のユースケースのために残されます)。

仕組み

構成に一致するシリーズでメジャーメントが作成されると、デバイス管理オブジェクトは、プラットフォームに送信された最新のシリーズで更新されます。

例:

次のように送信した場合:

POST /measurement/measurements
{
  "source":"5413"
  "time":"2024-02-01T10:00:00Z"
  "c8y_Temperature":{
     "T": {
        "value": 15,
        "unit":"C"
     }
  }
  "c8y_Speed":{
    "S": {
      "value": 15,
      "unit":"m/s"
    }
  }
}

この場合、例の構成を考慮すると、c8y_Temperature.T のみがデバイスの一部として保存され、c8y_Speed.S は無視されます。 つまり、メジャーメントは以前と同じように保存され、状態の更新のみがスキップされます。 デバイスレベルで最新の値を読み取るには、Inventory API を使用して withLatestValues パラメータを明示的に指定する必要があります。詳細については、Things Cloud OpenAPI仕様 を参照してください。

単一デバイスを取得する場合:

GET /inventory/managedObjects/5413?withLatestValues=true
{
   ...
   "c8y_LatestMeasurements":{
        "c8y_Temperature":{
           "T":{
             "value":15,
             "time":"2024-02-01T10:00:00Z",
             "unit":"C"
           }
        }
   }
}

想定される基準に一致するデバイスの一覧を取得するには、例えば、報告された温度が 10 度以上のすべてのデバイスを取得します。

GET /inventory/managedObjects?withLatestValues=true&query=$filter=c8y_LatestMeasurements.c8y_Temperature.T.value+gt+10
{
  managedObjects: [
    {
        ...
        "c8y_LatestMeasurements":{
            "c8y_Temperature":{
                "T":{
                    "value":15,
                    "time":"2024-02-01T10:00:00Z",
                    "unit":"C"
                }
            }
        }
    }
  ]
}

影響と前提条件

この機能は、メジャーメント作成時に追加のオペレーションを導入します。

これにより、メジャーメントごとに保存されるシリーズ数に応じてパフォーマンスが低下し、メジャーメントごとに 1 つのシリーズの場合は 5%、50 シリーズの場合は 20% を超えます。このような欠点は、テキストインデックスが無効になっている場合に適用されます。他のケースでは、パフォーマンスの低下はさらに大きくなり、最大 100% を超える可能性があります。したがって、テキストインデックスを無効にすることが前提条件と見なされます。

制限事項

セキュリティ

最新のメジャーメントはマネージドオブジェクトの一部であり、メジャーメントのインベントリロールを尊重するのではなく、マネージドオブジェクトのインベントリロールの権限に従います。

データモデル

最新のメジャーメントでは、メジャーメントタイプを保存しません。この情報は、Measurements API を使用して取得できます。

最後の値

デバイスのマネージドオブジェクトに保存される値は、プラットフォームに送信された最後の値です。 プラットフォームへのメジャーメントの配信順序が、メジャーメントの作成時間と異なる場合、最新の値にも影響を与えることになります。