Megosztás a következőn keresztül:


Adatok összesítése egy Azure IoT-adatfeldolgozó előzetes verziójában

Fontos

Az Azure IoT Operations Előzetes verziója – az Azure Arc által engedélyezett verzió jelenleg előzetes verzióban érhető el. Ezt az előzetes verziójú szoftvert nem szabad éles környezetben használni.

A bétaverziójú, előzetes verziójú vagy másként még általánosan nem elérhető Azure-szolgáltatások jogi feltételeit lásd: Kiegészítő használati feltételek a Microsoft Azure előzetes verziójú termékeihez.

Az aggregátum egy opcionális, konfigurálható köztes folyamatszakasz, amely lehetővé teszi, hogy a streamelőérzékelő adatain futó mintavételezési és kötegelési műveleteket felhasználó által meghatározott időkereteken futtassa.

Aggregátumszakasz használatával összegyűjthet üzeneteket egy meghatározott ablakban , és kiszámíthatja az üzenetek tulajdonságaiból származó összesítési értékeket. A szakasz az összesített értékeket egy üzenetben, az egyes időablakok végén lévő tulajdonságokként bocsátja ki.

  • Minden folyamatpartíció egymástól függetlenül végzi az összesítést.
  • A szakasz kimenete egyetlen üzenet, amely az összes definiált összesítő tulajdonságot tartalmazza.
  • A szakasz minden más tulajdonságot elvet. Az Utolsó, az Első vagy a Collectfüggvény használatával azonban megőrizheti azokat a tulajdonságokat, amelyeket egyébként a szakasz elvetne az összesítés során.
  • Az összesítési fázis működéséhez a folyamat adatforrás-szakaszának deszerializálnia kell a bejövő üzenetet.

Előfeltételek

Az összesítő folyamatszakasz konfigurálásához és használatához az Azure IoT Data Processor Preview egy üzembe helyezett példányára van szükség, amely tartalmazza az opcionális adatfeldolgozó összetevőt.

A szakasz konfigurálása

Az összesített fázis JSON-konfigurációja határozza meg a szakasz részleteit. A szakasz létrehozásához használhatja az űrlapalapú felhasználói felületet, vagy megadhatja a JSON-konfigurációt a Speciális lapon:

Mező Típus Leírás Kötelező Alapértelmezett Példa
Név Sztring Az Adatfeldolgozó felhasználói felületén megjelenítendő név. Igen - Calculate Aggregate
Leírás Sztring Az összesítési szakasz felhasználóbarát leírása. Nem Aggregation over temperature
Időablak Az az időtartam , amely azt az időszakot határozza meg, amely alatt az összesítés fut. Igen - 10s
Tulajdonságok > függvény Enumeráció A használni kívánt összesítő függvény . Igen - Sum
Tulajdonságok > InputPath1 Elérési út A függvény alkalmazásához a bejövő üzenetben található tulajdonság elérési útja . Igen - .payload.temperature
Properties > OutputPath2 Elérési út A kimenő üzenet helyének elérési útja az eredmény elhelyezéséhez. Igen - .payload.temperature.average

Egy összesítési szakaszban több tulajdonságkonfigurációt is meghatározhat. Kiszámíthatja például a hőmérséklet összegét, és kiszámíthatja a nyomás átlagát.

1Bemeneti elérési út:

  • A bemeneti elérési út tulajdonság értékének adattípusának kompatibilisnek kell lennie a definiált függvény típusával.
  • Ugyanazt a bemeneti útvonalat több összesítési konfigurációban is megadhatja, így több függvényt is kiszámíthat ugyanazon a bemeneti elérésiút-tulajdonságon. Győződjön meg arról, hogy a kimeneti útvonalak eltérnek az eredmények felülírásának elkerülése érdekében.

2Kimeneti elérési út:

  • A kimeneti elérési utak lehetnek azonosak vagy eltérhetnek a bemeneti útvonaltól. Különböző kimeneti útvonalakat használhat, ha ugyanazon a bemeneti útvonal tulajdonságon több aggregációt számít ki.
  • Konfiguráljon különböző kimeneti útvonalakat az összesített értékek felülírásának elkerülése érdekében.

Windows

Az ablak az az időintervallum, amely alatt a szakasz üzeneteket halmoz fel. Az ablak végén a szakasz a konfigurált függvényt alkalmazza az üzenet tulajdonságaira. A szakasz ezután egyetlen üzenetet bocsát ki.

A szakasz jelenleg csak a bukóablakokat támogatja.

A csapódó ablakok rögzített méretű, nem visszacsatoló és egymást követő időintervallumok sorozatát képezik. Az ablak rögzített időpontban indul el és ér véget:

10 másodperces átfedésmentes ablakokat ábrázoló diagram az összesítési szakaszban.

Az ablak mérete határozza meg azt az időintervallumot, amely alatt a szakasz összegyűjti az üzeneteket. Az ablakméretet az Duration common minta használatával határozhatja meg.

Functions

Az összesítési fázis a következő függvényeket támogatja az összesített értékek kiszámításához a bemeneti útvonalban definiált üzenettulajdonságon keresztül:

Függvény Leírás
Sum Kiszámítja a bemeneti üzenetekben szereplő tulajdonság értékeinek összegét.
Átlag Kiszámítja a bemeneti üzenetekben szereplő tulajdonság értékeinek átlagát.
Count Megszámolja, hogy a tulajdonság hányszor jelenik meg az ablakban.
Min Kiszámítja a bemeneti üzenetekben szereplő tulajdonság értékeinek minimális értékét.
Max Kiszámítja a bemeneti üzenetekben lévő tulajdonság értékeinek maximális értékét.
Last A bemeneti üzenetekben szereplő tulajdonság értékeinek legújabb értékét adja vissza.
First A bemeneti üzenetekben szereplő tulajdonság értékeinek első értékét adja vissza.
Collect Adja vissza a tulajdonság összes értékét a bemeneti üzenetekben.

Az alábbi táblázat az egyes függvények által támogatott üzenetadattípusokat sorolja fel:

Függvény Egész Lebegőpontos értékek Sztring Datetime Tömb Objektum Bináris
Összeg
Átlagos
Gróf
Min
Max
Last
First
Collect

Mintakonfiguráció

Az alábbi JSON-példa egy teljes összesített fáziskonfigurációt mutat be:

{ 
    "displayName":"downSample", 
    "description":"Calculate average for production tags", 
    "window": 
    { 
        "type":"tumbling", 
        "size":"10s" 
    }, 
    "properties": 
    [ 
        { 
            "function":"average", 
            "inputPath": ".payload.temperature", 
            "outputPath":".payload.temperature_avg" 
        }, 
        {  
            "function":"collect",  
            "inputPath": ".payload.temperature", 
            "outputPath":".payload.temperature_all"  
        },  
        {  
            "function":"average",  
            "inputPath":".payload.pressure", 
            "outputPath":".payload.pressure"                  
        },  
        {  
            "function":"last",  
            "inputPath":".systemProperties", 
            "outputPath": ".systemProperties" 
        } 
    ] 
}

A konfiguráció egy tíz másodperces ablakban kiszámított összesítési szakaszt határoz meg:

  • Átlagos hőmérséklet
  • Hőmérséklet összege
  • Nyomás összege

Példa

Ez a példa két bemeneti mintaüzenetet és egy, az előző konfigurációval létrehozott kimeneti üzenetet tartalmaz:

1. bemeneti üzenet:

{ 
    "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" 
    }, 
    "payload":{ 
        "humidity": 10, 
        "temperature":250, 
        "pressure":30, 
        "runningState": true 
    } 
} 

2. bemeneti üzenet:

{ 
    "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" 
    }, 
    "payload":{ 
        "humidity": 11, 
        "temperature":235, 
        "pressure":25, 
        "runningState": true 
    } 
} 

Kimeneti üzenet:

{ 
    "systemProperties":{  
        "partitionKey":"foo",  
        "partitionId":5,  
        "timestamp":"2023-01-11T10:02:07Z"  
    }, 
    "payload":{ 
        "temperature_avg":242.5, 
        "temperature_all":[250,235], 
        "pressure":27.5 
    } 
}