Nadcházející změny pravidel pro zplošťování a escapování JSON v nových prostředích
Poznámka
Služba Time Series Insights bude vyřazena 7. července 2024. Zvažte migraci stávajících prostředí na alternativní řešení co nejdříve. Více informací o vyřazení a migraci najdete v naší dokumentaci .
Důležitý
Tyto změny se použijí jenom u nově vytvořených prostředí prostředí Microsoft Azure Time Series Insights Gen2. Změny se nevztahují na prostředí Gen1.
Vaše prostředí Azure Time Series Insights Gen2 dynamicky vytváří sloupce úložiště podle konkrétní sady zásad vytváření názvů. Při zpracování události uplatní Time Series Insights sadu pravidel na datovou část JSON a názvy atributů. Změny toho, jak se data JSON zplošťují a ukládají, vstoupily v platnost pro nová prostředí Azure Time Series Insights Gen2 v červenci 2020. Tato změna se vás týká v následujících případech:
- Datová část JSON obsahuje vnořené objekty.
- Datová část JSON obsahuje pole.
- V názvu vlastnosti JSON použijete některý z následujících čtyř speciálních znaků:
[
\
.
'
- Jedna nebo více vlastností ID časové řady (TS) se nachází uvnitř vnořeného objektu.
Pokud budete tvořit nové prostředí a jeden nebo více z těchto případů platí pro payload události, vaše data budou zploštěna a uložena jinak. Následující tabulka shrnuje změny:
Aktuální pravidlo | Nové pravidlo | Příklad JSON | Název předchozího sloupce | Název nového sloupce |
---|---|---|---|---|
Vnořený JSON je zploštěn pomocí podtržítka jako oddělovače. | Vnořený JSON je zploštěný pomocí tečky jako oddělovače. | {"series" : { "value" : 19.338 }} |
series_value_double |
series.value_double |
Speciální znaky nejsou escapovány. | Názvy vlastností JSON, které obsahují speciální znaky . ,[ ,\ a ' , jsou escapeovány pomocí [' a '] . V rámci [' a '] se provádí další escapování jednoduchých uvozovek a zpětných lomítek. Jedna uvozovka bude napsána jako \' a zpětné lomítko jako \\ . |
"Foo's Law Value": "17.139999389648" |
Foo's Law Value_double |
['Foo\'s Law Value']_double |
Pole primitiv jsou uložena jako řetězec. | Pole primitivních typů jsou uložena jako dynamický typ. | "values": [154, 149, 147] |
values_string |
values_dynamic |
Pole objektů jsou vždy zploštěna a vytvářejí více událostí. | Pokud objekty v poli nemají buď ID TS, nebo vlastnosti časového razítka, pole objektů je uloženo jako dynamický typ. | "values": [{"foo" : 140}, {"bar" : 149}] |
values_foo_long | values_bar_long |
values_dynamic |
Doporučené změny pro nová prostředí
Pokud je vaše ID a/nebo vlastnost časového razítka vnořená do objektu
Všechna nová nasazení musí odpovídat novým pravidlům příjmu dat. Pokud je vaše ID TS například telemetry_tagId
, musíte aktualizovat všechny šablony Azure Resource Manager a automatizované skripty pro nasazení tak, aby bylo telemetry.tagId
nakonfigurováno jako ID TS prostředí. Tuto změnu potřebujete také pro časové razítka zdroje událostí ve vnořeném formátu JSON.
Pokud vaše datová část obsahuje vnořený JSON nebo speciální znaky a automatizujete vytváření výrazů proměnných modelu časových řad .
Aktualizujte kód klienta, který spouští TypesBatchPut tak, aby odpovídal novým pravidlům příjmu dat. Měli byste například aktualizovat předchozí výraz časové řady"value": {"tsx": "$event.series_value.Double"}
na jednu z následujících možností:
"value": {"tsx": "$event.series.value.Double"}
"value": {"tsx": "$event['series']['value'].Double"}
Další kroky
Přečtěte si o úložišti a příjmu dat služby Azure Time Series Insights Gen2 .
Naučte se dotazovat data pomocí rozhraní API dotazů časové řady.
Přečtěte si další informace o nové syntaxi výrazů časové řady.