Mapowanie danych telemetrycznych na ruch przychodzący do usługi IoT Central
Mapowanie danych umożliwia przekształcanie złożonych danych telemetrycznych urządzeń w dane ustrukturyzowane wewnątrz usługi IoT Central. Dla każdego urządzenia można zamapować konkretną ścieżkę JSON w komunikacie telemetrii urządzenia na alias. Alias to przyjazna nazwa elementu docelowego, do którego mapujesz. Usługa IoT Central używa mapowań do przekształcania danych telemetrycznych w drodze do usługi IoT Central. Zamapowane dane telemetryczne umożliwiają:
- Tworzenie szablonów urządzeń i środowisk zarządzania urządzeniami w usłudze IoT Central.
- Normalizacja danych telemetrycznych z różnych urządzeń przez mapowanie ścieżek JSON na wielu urządzeniach na wspólny alias.
- Eksportowanie do miejsc docelowych poza usługą IoT Central.
Napiwek
Jeśli chcesz automatycznie wygenerować szablon urządzenia z niemodelowanej telemetrii, zobacz Autogeneruj szablon urządzenia.
Poniższy film wideo przeprowadzi Cię przez proces mapowania danych:
Mapowanie telemetrii dla urządzenia
Mapowanie używa wyrażenia JSONPath do identyfikowania wartości w przychodzącym komunikacie telemetrii w celu mapowania na alias.
Wyrażenie JSONPath zaczyna się od $
znaku, który odwołuje się do elementu głównego komunikatu. Następuje $
sekwencja elementów podrzędnych oddzielonych nawiasami kwadratowymi. Na przykład:
$["messages"]["tmp"]
$["opcua"]["payload"][0]["value"]
$["Messages"]["Payload"]["nsu=http://microsoft.com/Opc/OpcPlc/;s=FastUInt1"]["Value"]
Usługa IoT Central używa podzestawu składni wyrażenia JSONPath:
- Każdy segment może być liczbą nieujemną lub ciągiem ujętą w podwójny cudzysłów.
- Segment nie może zawierać ukośnika odwrotnego, nawiasu kwadratowego ani podwójnych cudzysłowów.
- Ścieżka JSON nie może przekraczać 1000 znaków.
Aby utworzyć mapowanie w aplikacji usługi IoT Central, wybierz jedną z następujących opcji, aby przejść do panelu Mapowanie danych :
Na dowolnej stronie urządzenia wybierz pozycję Zarządzaj danymi mapy urządzenia>:
W widoku Nieprzetworzone dane dla urządzenia rozwiń dowolny komunikat telemetrii, umieść wskaźnik myszy na ścieżce i wybierz pozycję Dodaj alias. Zostanie otwarty panel Dane mapy z wyrażeniem JSONPath skopiowanymi do pola ścieżki JSON:
Po lewej stronie panelu Dane mapy jest wyświetlany najnowszy komunikat z urządzenia. Zatrzymaj wskaźnik myszy na dowolnej części danych i wybierz pozycję Dodaj alias. Wyrażenie JSONPath jest kopiowane do ścieżki JSON. Dodaj nazwę aliasu bez więcej niż 64 znaków. Nie można użyć aliasu do odwoływania się do pola w złożonym obiekcie zdefiniowanym w szablonie urządzenia.
Dodaj dowolną liczbę mapowań, a następnie wybierz pozycję Zapisz:
Dla danego urządzenia:
- Żadne dwa mapowania nie mogą mieć tej samej ścieżki JSON.
- Żadne dwa mapowania nie mogą mieć tego samego aliasu.
Napiwek
Może być konieczne odczekanie kilku minut, zanim urządzenie wyśle komunikat telemetrii do wyświetlenia w panelu po lewej stronie. Jeśli nadal nie ma danych w panelu po lewej stronie, możesz ręcznie wprowadzić wyrażenie JSONPath w polu ścieżki JSON.
Aby sprawdzić, czy usługa IoT Central mapuje dane telemetryczne, przejdź do widoku Nieprzetworzone dane dla urządzenia i sprawdź sekcję _mappeddata
:
Jeśli dane mapowane nie są widoczne po kilku chwilach odświeżania danych pierwotnych, sprawdź, czy używane wyrażenie JSONPath jest zgodne ze strukturą komunikatu telemetrii.
W przypadku urządzeń usługi IoT Edge mapowanie danych dotyczy danych telemetrycznych ze wszystkich modułów i centrum usługi IoT Edge. Nie można zastosować mapowań do określonego modułu usługi Azure IoT Edge.
W przypadku urządzeń przypisanych do szablonu urządzenia nie można mapować danych dla składników ani dziedziczone interfejsy. Można jednak mapować dowolne dane z urządzenia przed przypisaniem ich do szablonu urządzenia.
Zarządzanie mapowaniami
Aby wyświetlić, edytować lub usunąć mapowania, przejdź do strony Mapowane aliasy . Wybierz mapowanie, aby go edytować lub usunąć. Możesz wybrać wiele mapowań i usunąć je w tym samym czasie:
Domyślnie eksporty danych z usługi IoT Central obejmują zamapowane dane. Aby wykluczyć zamapowane dane, użyj przekształcenia danych w eksporcie danych.
Mapowanie niemodelowanej telemetrii
Niemodelowane dane telemetryczne można mapować, w tym dane telemetryczne z niemodelowanych składników. Na przykład biorąc pod uwagę workingSet
dane telemetryczne zdefiniowane w składniku głównym i temperature
telemetrię zdefiniowaną w składniku termostatu pokazanym w poniższym przykładzie:
{
"_unmodeleddata": {
"workingSet": 74
},
"_eventtype": "Telemetry",
"_timestamp": "2022-07-18T09:22:40.257Z"
}
{
"_unmodeleddata": {
"thermostat2": {
"__t": "c",
"temperature": 44
}
},
"_eventtype": "Telemetry",
"_timestamp": "2022-07-18T09:21:48.69Z"
}
Tę telemetrię można mapować przy użyciu następujących definicji mapowania:
$["workingSet"] ws
$["temperature"] temp
Uwaga
Nie dołączaj nazwy składnika do definicji mapowania.
Wyniki tych reguł mapowania wyglądają podobnie do następujących przykładów:
{
"telemetries": {
"workingSet": 84,
"_mappeddata": {
"ws": 84
}
}
}
{
"_unmodeleddata": {
"thermostat2": {
"__t": "c",
"temperature": 12
},
"_mappeddata": {
"thermostat2": {
"__t": "c",
"temp": 12
}
}
},
"_eventtype": "Telemetry",
"_timestamp": "2022-07-18T09:31:21.088Z"
}
Teraz możesz użyć zamapowanych aliasów do wyświetlania danych telemetrycznych na wykresie lub pulpicie nawigacyjnym. Podczas eksportowania danych telemetrycznych można również użyć zamapowanych aliasów.