Przekształcanie danych w potoku procesora danych
Ważne
Usługa Azure IoT Operations Preview — włączona przez usługę Azure Arc jest obecnie dostępna w wersji zapoznawczej. Nie należy używać tego oprogramowania w wersji zapoznawczej w środowiskach produkcyjnych.
Po udostępnieniu ogólnie dostępnej wersji należy wdrożyć nową instalację operacji usługi Azure IoT. Nie będzie można uaktualnić instalacji w wersji zapoznawczej.
Zobacz Dodatkowe warunki użytkowania wersji zapoznawczych platformy Microsoft Azure, aby zapoznać się z postanowieniami prawnymi dotyczącymi funkcji platformy Azure, które są w wersji beta lub wersji zapoznawczej albo w inny sposób nie zostały jeszcze wydane jako ogólnie dostępne.
Etap przekształcania umożliwia przeprowadzanie przekształceń strukturalnych komunikatów w potoku, takich jak:
- Zmienianie nazw tagów i właściwości
- Usuwanie danych
- Dodawanie nowych właściwości
- Dodawanie wartości obliczeniowych
Etap przekształcania używa narzędzia jq do obsługi przekształcania danych:
- Każda partycja potoku przekształca komunikaty niezależnie od siebie.
- Etap generuje przekształcony komunikat na podstawie podanego wyrażenia jq.
- Utwórz wyrażenie jq, aby przekształcić komunikat na podstawie struktury przychodzącego komunikatu na etapie.
Wymagania wstępne
Aby skonfigurować i użyć etapu potoku przekształcania, potrzebne są następujące elementy:
- Wdrożone wystąpienie procesora danych, które zawiera opcjonalny składnik procesora danych.
- Zrozumienie wyrażeń jq.
Konfigurowanie etapu
Konfiguracja JSON etapu transformacji definiuje szczegóły etapu. Aby utworzyć etap, możesz wchodzić w interakcje z interfejsem użytkownika opartym na formularzach lub podać konfigurację JSON na karcie Zaawansowane :
Nazwa/nazwisko | Wartość | Wymagania | Przykład |
---|---|---|---|
Nazwisko | Nazwa wyświetlana w interfejsie użytkownika procesora danych. | Tak | Transform1 |
opis | Przyjazny dla użytkownika opis tego, co robi etap transformacji. | Nie. | Rename Tags |
Query | Wyrażenie jq przekształcenia. | Tak | .payload.values |= (map({(.tag): (.numVal // .boolVal)}) | add) |
Przykładowa konfiguracja
Poniższy przykład przekształcenia konwertuje tablicę tagów w komunikacie wejściowym na obiekt zawierający wszystkie tagi i ich wartości:
{
"displayName": "TransformInput",
"description": "Make array of tags into one object",
"query": ".payload.values |= (map({(.tag): (.numVal // .boolVal)}) | add)"
}
Dane wyjściowe z etapu przekształcania wyglądają jak w poniższym przykładzie:
{
"systemProperties": {
"partitionKey": "foo",
"partitionId": 5,
"timestamp": "2023-01-11T10:02:07Z"
},
"qos": 1,
"topic": "/assets/foo/tags/bar",
"properties": {
"responseTopic": "outputs/foo/tags/bar",
"contentType": "application/json",
"payloadFormat": 1,
"correlationData": "base64::Zm9v",
"messageExpiry": 412
},
"userProperties": [
{
"key": "prop1",
"value": "value1"
},
{
"key": "prop2",
"value": "value2"
}
],
"payload": {
"values": {
"temperature": 250,
"pressure": 30,
"humidity": 10,
"runningStatus": true
}
}
}