タイム シリーズ ID の選択に関するベスト プラクティス
Note
Time Series Insights サービスは、2024 年 7 月 7 日に廃止されます。 できるだけ早く既存の環境を代替ソリューションに移行することを検討してください。 サポートの終了と移行の詳細については、こちらのドキュメントを参照してください。
この記事では、Azure Time Series Insights Gen2 環境での時系列 ID の重要性と、それを選択するためのベスト プラクティスをまとめています。
タイム シリーズ ID の選択
適切な時系列 ID を選択することが重要です。 タイム シリーズ ID の選択は、データベースでのパーティション キーの選択のようなものです。 これは、Azure Time Series Insights Gen2 環境を作成する場合に必要です。
時系列 ID の詳細な説明については、環境のプロビジョニングに関するチュートリアルをご覧ください。 2 つの異なる JSON テレメトリ ペイロードの例と、それぞれの適切な時系列 ID の選択を表示します。
重要
時系列 ID:
- "大文字と小文字の区別がある文字列" プロパティ: 大文字と小文字の区別は、検索、比較、更新、およびパーティション化で使用されます。
- 変更できません プロパティ: 一度作成した後は変更できません。
ヒント
イベント ソースが IoT ハブである場合、時系列 ID は iothub-connection-device-id になる可能性があります。IoT Plug and Play デバイス モデルを使用する予定がある場合、またはコンポーネントなしでそれらを使用している場合は、将来必要な場合に備え、複合キーの一部として dt-subject を含める必要があります。
従うべき主なベストプラクティスは、次のとおりです:
- 多数 (たとえば数百から数千) の個別の値を備えたパーティション キーを選択します。 多くの場合、これは JSON のデバイス ID、センサー ID、またはタグ ID である可能性があります。
- タイム シリーズ ID は、タイム シリーズ モデルのリーフ ノード レベルで一意である必要があります。
- 時系列 ID のプロパティ名文字列の文字制限は、128 です。 時系列 ID のプロパティ値の場合、文字数の制限は 1024 です。
- 時系列 ID の一意のプロパティ値がない場合は、null 値として扱われ、一意性制約と同じルールに従います。
- 時系列 ID が複雑な JSON オブジェクト内で入れ子になっている場合、プロパティ名を指定するとき、イングレス フラット化ルールに従います。 例 B を確認してください。
- 時系列 ID として最大 3 個のキー プロパティも選択できます。 これらの組み合わせは、時系列 ID を表す複合キーになります。
Note
3 個のキー プロパティは文字列である必要があります。 一度に 1 つのプロパティではなく、この複合キーに対してクエリを実行する必要があります。
複数のキープロパティを選択する
次のシナリオでは、時系列 ID として複数のキー プロパティを選択する場合について説明します。
例 1: 一意のキーを持つ時系列 ID
- 従来の保有機材の資産があります。 それぞれには一意のキーがあります。
- 1 つの車両は、プロパティ deviceId によって一意に識別されます。 別の車両では、一意のプロパティは objectId です。 どの車両にも、他の車両の一意プロパティは含まれません。 この例では、一意キーとして 2 つのキー deviceId と objectId を選択します。
- null 値が受け付けられ、イベント ペイロードにプロパティが存在しない場合は null 値としてカウントされます。 またこれは、2 つのイベント ソースにデータを送信し、各イベント ソースのデータが一意の時系列 ID を持っている場合の処理にも適した方法です。
例 2: 複合キーを持つ時系列 ID
- 資産の同じフリート内で複数のプロパティが一意である必要があります。
- あなたはスマート ビルディングのメーカーで、すべての部屋にセンサーをデプロイしています。 通常、各部屋の sensorId の値は同じです。 例として、sensor1、sensor2、および sensor3 となります。
- 建物には、プロパティ flrRm のサイト間で、重複しているフロア番号と部屋番号があります。 これらの数値には、1a、2b、3a などの値があります。
- プロパティ location には、Redmond、Barcelona、Tokyo などの値が含まれています。 一意性を作成するには、時系列 ID のキーとして、3 つのプロパティ sensorId、flrRm、location を指定します。
未加工イベントの例:
{
"sensorId": "sensor1",
"flrRm": "1a",
"location": "Redmond",
"temperature": 78
}
Azure portal では、次のようにして、複合キーを入力できます:
Note
Azure portal では、複数のプロパティ名をコンマで区切って 1 つのテキストボックスに入力しないでください。このように入力すると、コンマが含まれる単一のプロパティ名として処理されます。 各プロパティ名を独自のテキストボックスに入力してください。
次のステップ
JSON のフラット化とエスケープのルールを読み、イベントの格納方法を理解する。