Udostępnij za pośrednictwem


Nadchodzące zmiany w spłaszczaniu i usuwaniu reguł JSON dla nowych środowisk

Uwaga

Usługa Time Series Insights (TSI) nie będzie już obsługiwana po marcu 2025 r. Rozważ migrację istniejących środowisk TSI do alternatywnych rozwiązań tak szybko, jak to możliwe. Aby uzyskać więcej informacji na temat wycofywania i migracji, odwiedź naszą dokumentację.

Ważne

Te zmiany zostaną zastosowane tylko do nowo utworzonych środowisk usługi Microsoft Azure Time Series Insights Gen2. Zmiany nie mają zastosowania do środowisk Gen1.

Środowisko Azure Time Series Insights Gen2 dynamicznie tworzy kolumny magazynu zgodnie z określonym zestawem konwencji nazewnictwa. Po pozyskiwaniu zdarzenia usługa Time Series Insights stosuje zestaw reguł do ładunku JSON i nazw właściwości. Zmiany sposobu spłaszczania i przechowywania danych JSON zostały wprowadzone w nowych środowiskach Azure Time Series Insights Gen2 w lipcu 2020 r. Ta zmiana ma wpływ na następujące przypadki:

  • Ładunek JSON zawiera zagnieżdżone obiekty.
  • Ładunek JSON zawiera tablice.
  • W nazwie właściwości JSON należy użyć dowolnego z następujących czterech znaków specjalnych: [\.'
  • Co najmniej jedna z właściwości identyfikatora szeregów czasowych (TS) znajduje się w zagnieżdżonym obiekcie.

Jeśli tworzysz nowe środowisko i co najmniej jeden z tych przypadków dotyczy ładunku zdarzenia, dane będą spłaszczane i przechowywane w inny sposób. Poniższa tabela zawiera podsumowanie zmian:

Bieżąca reguła Nowa reguła Przykładowy kod JSON Poprzednia nazwa kolumny Nazwa nowej kolumny
Zagnieżdżony kod JSON jest spłaszczany przy użyciu podkreślenia jako delineatora. Zagnieżdżony kod JSON jest spłaszczany przy użyciu kropki jako delineatora. {"series" : { "value" : 19.338 }} series_value_double series.value_double
Znaki specjalne nie są znakami ucieczki. Nazwy właściwości JSON, które zawierają znaki .[\ specjalne i ' są używane przy użyciu znaków [' i ']. W systemach [' i ']istnieje dodatkowa ucieczka pojedynczych cudzysłowów i ukośników odwrotnych. Pojedynczy cudzysłów zostanie zapisany jako \' ukośnik odwrotny jako \\. "Foo's Law Value": "17.139999389648" Foo's Law Value_double ['Foo\'s Law Value']_double
Tablice typów pierwotnych są przechowywane jako ciąg. Tablice typów pierwotnych są przechowywane jako typ dynamiczny. "values": [154, 149, 147] values_string values_dynamic
Tablice obiektów są zawsze spłaszczane, generując wiele zdarzeń. Jeśli obiekty w tablicy nie mają właściwości identyfikatora TS lub znacznika czasu, tablica obiektów jest przechowywana w całości jako typ dynamiczny. "values": [{"foo" : 140}, {"bar" : 149}] values_foo_long | values_bar_long values_dynamic

Jeśli właściwość identyfikatora TS i/lub znacznika czasu jest zagnieżdżona w obiekcie

Wszystkie nowe wdrożenia muszą być zgodne z nowymi regułami pozyskiwania. Jeśli na przykład identyfikator TS to telemetry_tagId, należy zaktualizować wszystkie szablony usługi Azure Resource Manager lub skrypty automatycznego wdrażania w celu skonfigurowania telemetry.tagId go jako identyfikatora TS środowiska. Ta zmiana jest również potrzebna dla sygnatur czasowych źródła zdarzeń w zagnieżdżonym formacie JSON.

Jeśli ładunek zawiera zagnieżdżone znaki JSON lub znaki specjalne, a ty automatyzujesz tworzenie wyrażeń zmiennych modelu szeregów czasowych

Zaktualizuj kod klienta, który wykonuje polecenie TypesBatchPut , aby był zgodny z nowymi regułami pozyskiwania. Na przykład należy zaktualizować poprzednie wyrażenie szeregów"value": {"tsx": "$event.series_value.Double"} czasowych do jednej z następujących opcji:

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

Następne kroki