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 |
Zalecane zmiany dla nowych środowisk
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
Dowiedz się więcej o magazynie i ruchu przychodzącego Azure Time Series Insights Gen2.
Dowiedz się, jak wykonywać zapytania dotyczące danych przy użyciu interfejsów API zapytań szeregów czasowych.
Przeczytaj więcej na temat nowej składni wyrażenia szeregów czasowych.