Chystané změny pravidel zploštělování a úniku kódu JSON pro nová prostředí

Poznámka

Služba Time Series Insights (TSI) už nebude po březnu 2025 podporována. Zvažte migraci stávajících prostředí TSI na alternativní řešení co nejdříve. Další informace o vyřazení a migraci najdete v naší dokumentaci.

Důležité

Tyto změny se použijí jenom v nově vytvořených prostředích Microsoft Azure Time Series Insights Gen2. Změny se nevztahují na prostředí Gen1.

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 ingestování události použije Time Series Insights sadu pravidel pro datové části JSON a názvy vlastností. Změny způsobu zploštění a ukládání dat JSON se projevily v nových prostředích 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í ve vnořeném objektu.

Pokud vytvoříte nové prostředí a jeden nebo více z těchto případů se vztahuje na datovou část události, vaše data se zploštěnou a uloží jinak. Následující tabulka shrnuje změny:

Aktuální pravidlo Nové pravidlo Příklad JSON Předchozí název sloupce Nový název sloupce
Vnořený kód JSON se zploštěl pomocí podtržítka jako delineátoru. Vnořený kód JSON se zploštěl pomocí tečky jako delineátoru. {"series" : { "value" : 19.338 }} series_value_double series.value_double
Speciální znaky se neuniknou. Názvy vlastností JSON, které obsahují speciální znaky .[\ a ' jsou řídicí pomocí [' a ']. V [' rámci a ']dochází k dalšímu úniku jednoduchých uvozovek a zpětných lomítek. Jedna uvozovka se napíše 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ů se ukládají jako dynamický typ. "values": [154, 149, 147] values_string values_dynamic
Pole objektů jsou vždy zploštěná a vytvářejí více událostí. Pokud objekty v rámci pole nemají vlastnosti TS ID nebo časového razítka, pole objektů se uloží jako dynamický typ jako celek. "values": [{"foo" : 140}, {"bar" : 149}] values_foo_long | values_bar_long values_dynamic

Pokud je vaše vlastnost TS ID nebo časového razítka vnořená v objektu

Všechna nová nasazení musí odpovídat novým pravidlům příjmu dat. Pokud je telemetry_tagIdnapříklad VAŠE TS ID , musíte aktualizovat všechny šablony Azure Resource Manager nebo skripty automatizovaného nasazení, aby se nakonfigurovali telemetry.tagId 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 datová část obsahuje vnořené znaky 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 "value": {"tsx": "$event.series_value.Double"}časové řady na jednu z následujících možností:

  • "value": {"tsx": "$event.series.value.Double"}
  • "value": {"tsx": "$event['series']['value'].Double"}

Další kroky