Sdílet prostřednictvím


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

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