新しい環境での JSON フラット化とエスケープ規則に関する今後の変更
Note
Time Series Insights サービスは、2024 年 7 月 7 日に廃止されます。 できるだけ早く既存の環境を代替ソリューションに移行することを検討してください。 サポートの終了と移行の詳細については、こちらのドキュメントを参照してください。
重要
これらの変更は、"新しく作成された" Microsoft Azure Time Series Insights Gen2 環境にのみ該当します。 この変更は、Gen1 環境には該当しません。
Azure Time Series Insights Gen2 環境では、特定の一連の名前付け規則に従って、ストレージ列が動的に作成されます。 イベントが取り込まれると、Time Series Insights により JSON ペイロードとプロパティ名に一連の規則が適用されます。 JSON データのフラット化および格納方法の変更は、新しい Azure Time Series Insights Gen2 環境に、2020 年 7 月から適用されています。 この変更は、次のような場合に影響を及ぼします。
- お使いの JSON ペイロードに入れ子になったオブジェクトが含まれている。
- お使いの JSON ペイロードに配列が含まれている。
- JSON プロパティ名に、
[
\
.
'
の 4 つの特殊文字のいずれかが使用されている。 - 1 つ以上のお使いの Time Series (TS) ID プロパティが入れ子になったオブジェクト内にある。
新しい環境を作成し、お使いのイベント ペイロードに上記のケースが 1 つ以上該当する場合、お使いのデータは異なる方法でフラット化され、格納されます。 次の表に変更をまとめています。
現在の規則 | 新しい規則 | JSON の例 | 以前の列名 | 新しい列名 |
---|---|---|---|---|
入れ子になった JSON は、区切り文字にアンダースコアが使用されフラット化されます。 | 入れ子になった JSON は、区切り文字にピリオドが使用されフラット化されます。 | {"series" : { "value" : 19.338 }} |
series_value_double |
series.value_double |
特殊文字はエスケープされません。 | 特殊文字 . [ \ および ' を含む JSON プロパティ名は、[' と '] を使用してエスケープされます。 [' と '] の間には、単一引用符とバックスラッシュのエスケープが追加されます。 単一引用符は \' と記述され、バックスラッシュは \\ と記述されます。 |
"Foo's Law Value": "17.139999389648" |
Foo's Law Value_double |
['Foo\'s Law Value']_double |
プリミティブの配列は文字列として格納されます。 | プリミティブ型の配列は動的な型として格納されます。 | "values": [154, 149, 147] |
values_string |
values_dynamic |
オブジェクトの配列は常にフラット化され、複数のイベントを生成します。 | 配列内のオブジェクトに TS ID または timestamp プロパティのいずれも存在しない場合、オブジェクトの配列全体は動的な型として格納されます。 | "values": [{"foo" : 140}, {"bar" : 149}] |
values_foo_long | values_bar_long |
values_dynamic |
新しい環境で推奨される変更
TS ID または timestamp プロパティがオブジェクト内で入れ子になっている場合
新しいデプロイでは、新しい取り込み規則を使用する必要があります。 たとえば、お使いの TS ID が telemetry_tagId
である場合は、Azure Resource Manager テンプレートまたは自動展開スクリプトをすべて更新して、telemetry.tagId
を環境の TS ID として構成する必要があります。 入れ子になった JSON のイベント ソースのタイムスタンプでも、この変更を行う必要があります。
ペイロードに入れ子になった JSON または特殊文字が含まれており、時系列モデル変数式の作成が自動化されている場合:
新しい取り込み規則が使用されるよう、TypesBatchPut を実行するお使いのクライアント コードを更新します。 たとえば、前の "value": {"tsx": "$event.series_value.Double"}
のタイム シリーズ式を、次のいずれかのオプションに更新します。
"value": {"tsx": "$event.series.value.Double"}
"value": {"tsx": "$event['series']['value'].Double"}
次のステップ
Azure Time Series Insights Gen2 のストレージとイングレスに関するページをご覧ください。
タイム シリーズ クエリ API を使用してお使いのデータをクエリする方法をご覧ください。
新しいタイム シリーズ式の構文の詳細をご覧ください。