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


Átfedésmentes ablakban folyamatot futtató trigger létrehozása

A következőkre vonatkozik: Azure Data Factory Azure Synapse Analytics

Tipp.

Próbálja ki a Data Factoryt a Microsoft Fabricben, amely egy teljes körű elemzési megoldás a nagyvállalatok számára. A Microsoft Fabric az adattovábbítástól az adatelemzésig, a valós idejű elemzésig, az üzleti intelligenciáig és a jelentéskészítésig mindent lefed. Ismerje meg, hogyan indíthat új próbaverziót ingyenesen!

Ez a cikk lépéseket tartalmaz a bukóablak-eseményindítók létrehozásához, elindításához és monitorozásához. Az eseményindítókkal és a támogatott típusokkal kapcsolatos általános információkért lásd a folyamat végrehajtását és az eseményindítókat.

Az átfedésmentes ablakos eseményindítók olyan eseményindítók, amelyek rendszeres időközönként aktiválódnak a megadott kezdési időponttól kezdve, az állapot megőrzése mellett. A bukóablakok rögzített méretű, nem visszacsatolt és egybefüggő időintervallumok sorozatát képezik. A ugróablak-eseményindítók egy-az-egyhez kapcsolatban vannak egy folyamattal, és csak egyes folyamatokra hivatkozhatnak.

A bukóablak-eseményindító egy nehezebb alternatíva az ütemezési eseményindítókhoz. Olyan összetett forgatókönyvekhez kínál funkciókat, mint például a (más bukóablak-eseményindítóktól való függőség, egy sikertelen feladat újrafuttatása és a felhasználók újrapróbálkozásának beállítása a folyamatokhoz). Az ütemezési eseményindító és a bukóablak-eseményindító közötti különbség további megértéséhez tekintse meg az eseményindító típusának összehasonlítását.

Az Azure Data Factory és az Azure Synapse portál felülete

  1. Ha átfedésmentes ablak eseményindítót szeretne létrehozni az Azure Portalon, válassza az Eseményindítók lapot, majd az Új lehetőséget.
  2. Miután megnyílik az eseményindító konfigurációs panelje, válassza a Átfedés ablak lehetőséget. Ezután adja meg a átfedésmentes ablak eseményindító tulajdonságait.
  3. Ha végzett, válassza a Mentés lehetőséget.

Átfedésmentes ablak eseményindítótípus-tulajdonságai

A bukóablakok a következő eseményindító-típustulajdonságokat rendelkeznek:

{
    "name": "MyTriggerName",
    "properties": {
        "type": "TumblingWindowTrigger",
        "runtimeState": "<<Started/Stopped/Disabled - readonly>>",
        "typeProperties": {
            "frequency": <<Minute/Hour>>,
            "interval": <<int>>,
            "startTime": "<<datetime>>",
            "endTime": <<datetime - optional>>,
            "delay": <<timespan - optional>>,
            "maxConcurrency": <<int>> (required, max allowed: 50),
            "retryPolicy": {
                "count": <<int - optional, default: 0>>,
                "intervalInSeconds": <<int>>,
            },
            "dependsOn": [
                {
                    "type": "TumblingWindowTriggerDependencyReference",
                    "size": <<timespan - optional>>,
                    "offset": <<timespan - optional>>,
                    "referenceTrigger": {
                        "referenceName": "MyTumblingWindowDependency1",
                        "type": "TriggerReference"
                    }
                },
                {
                    "type": "SelfDependencyTumblingWindowTriggerReference",
                    "size": <<timespan - optional>>,
                    "offset": <<timespan>>
                }
            ]
        },
        "pipeline": {
            "pipelineReference": {
                "type": "PipelineReference",
                "referenceName": "MyPipelineName"
            },
            "parameters": {
                "parameter1": {
                    "type": "Expression",
                    "value": "@{concat('output',formatDateTime(trigger().outputs.windowStartTime,'-dd-MM-yyyy-HH-mm-ss-ffff'))}"
                },
                "parameter2": {
                    "type": "Expression",
                    "value": "@{concat('output',formatDateTime(trigger().outputs.windowEndTime,'-dd-MM-yyyy-HH-mm-ss-ffff'))}"
                },
                "parameter3": "https://mydemo.azurewebsites.net/api/demoapi"
            }
        }
    }
}

Az alábbi táblázat magas szintű áttekintést nyújt azokról a főbb JSON-elemekről, amelyek a bukóablak-eseményindítók ismétlődésével és ütemezésével kapcsolatosak.

JSON-elem Leírás Típus Megengedett értékek Kötelező
type Az eseményindító típusa. Ez type a rögzített érték TumblingWindowTrigger. String TumblingWindowTrigger Igen
runtimeState Az eseményindító futási idejének aktuális állapota.
Ez az elem írásvédett<.>
String Started, , StoppedDisabled Igen
frequency Egy sztring, amely azt a frekvenciaegységet (perc, óra vagy hónap) jelöli, amelyen az eseményindító ismétlődik. Ha a startTime dátumértékek részletesebbek az frequency értéknél, a startTime dátumok az ablakhatárok kiszámításakor lesznek figyelembe véve. Ha például az frequency érték hourly startTime 2017-09-01T10:10:10Z, az első ablak (2017-09-01T10:10:10Z, 2017-09-01T11:10:10Z). String Minute, , HourMonth Igen
interval Pozitív egész szám, amely az frequency érték intervallumát jelöli, amely meghatározza az eseményindító futási gyakoriságát. Ha például az interval és 3 az frequency is hour, az eseményindító 3 óránként ismétlődik.
Az ablak minimális időköze 5 perc.
Integer Pozitív egész szám. Igen
startTime Az első előfordulás, amely a múltban lehet. Az első eseményindító időköze (startTime, startTime + interval). DateTime Egy DateTime érték. Igen
endTime Az utolsó előfordulás, amely a múltban lehet. DateTime Egy DateTime érték. Igen
delay Az ablak adatfeldolgozásának megkezdését késleltető idő. A folyamatfuttatás a várt végrehajtási idő és a késés mértéke után indul el. A késés határozza meg, hogy az eseményindító mennyi ideig várakozik az esedékes időnél, mielőtt új futtatást indítanának. A késés nem módosítja az ablakot startTime. A 00:10:00 érték például delay 10 perces késést jelent. Timespan
(óó:mm:ss)
Az timespan az érték, amelyben az alapértelmezett érték van 00:00:00. Nem
maxConcurrency Az egyidejű eseményindító-futtatások száma, amelyeket a kész ablakok aktiválnak. Ha például a tegnapi óránkénti futtatások utánpótlása 24 ablakot eredményez. Ha maxConcurrency = 10, az eseményindító események csak az első 10 ablaknál aktiválódnak (00:00-01:00 - 09:00-10:00). Az első 10 aktivált folyamatfuttatás befejezése után a rendszer aktiválja az eseményindító-futtatásokat a következő 10 ablakban (10:00-11:00 - 19:00-20:00). Az = 10 példával maxConcurrency folytatva, ha 10 ablak áll készen, akkor összesen 10 folyamat fut. Ha csak egy ablak áll készen, csak egy folyamat fut. Integer 1 és 50 közötti egész szám. Igen
retryPolicy: Count A folyamat futtatása előtti újrapróbálkozási próbálkozások száma a következőképpen van megjelölve Failed: . Integer Egész szám, ahol az alapértelmezett érték 0 (nincs újrapróbálkozás). Nem
retryPolicy: intervalInSeconds A másodpercben megadott újrapróbálkozási kísérletek közötti késleltetés. Integer A másodpercek száma, ahol az alapértelmezett érték 30. A minimális érték az 30. Nem
dependsOn: type A típus.TumblingWindowTriggerReference Függőség beállítása esetén kötelező. String TumblingWindowTriggerDependencyReference, SelfDependencyTumblingWindowTriggerReference Nem
dependsOn: size A függőségi átfedési ablak mérete. Timespan
(óó:mm:ss)
timespan Pozitív érték, ahol az alapértelmezett érték a gyermek trigger ablakmérete. Nem
dependsOn: offset A függőségi eseményindító eltolása. Timespan
(óó:mm:ss)
Olyan timespan érték, amely negatív lehet egy önfüggőségben. Ha nincs megadva érték, az ablak ugyanaz, mint maga az eseményindító. Önfüggőség: Igen
Egyéb: Nem

Feljegyzés

A bukóablak-eseményindító közzététele után az interval értékek nem frequency szerkeszthetők.

WindowsStart és WindowEnd rendszerváltozók

A WindowStart folyamatdefinícióban (vagyis egy lekérdezés egy részének) használhatja az átfedésmentes ablak eseményindítójának és WindowEnd rendszerváltozóit. Adja át a rendszerváltozókat paraméterként a folyamatnak az eseményindító definíciójában. Az alábbi példa bemutatja, hogyan adhatja át ezeket a változókat paraméterekként.

{
    "name": "MyTriggerName",
    "properties": {
        "type": "TumblingWindowTrigger",
            ...
        "pipeline": {
            "pipelineReference": {
                "type": "PipelineReference",
                "referenceName": "MyPipelineName"
            },
            "parameters": {
                "MyWindowStart": {
                    "type": "Expression",
                    "value": "@{concat('output',formatDateTime(trigger().outputs.windowStartTime,'-dd-MM-yyyy-HH-mm-ss-ffff'))}"
                },
                "MyWindowEnd": {
                    "type": "Expression",
                    "value": "@{concat('output',formatDateTime(trigger().outputs.windowEndTime,'-dd-MM-yyyy-HH-mm-ss-ffff'))}"
                }
            }
        }
    }
}

A folyamatdefiníció és a WindowStart WindowEnd rendszerváltozó értékeinek használatához ennek megfelelően használja az Ön MyWindowStart és MyWindowEnd a paramétereket.

Az ablakok végrehajtási sorrendje egy backfill forgatókönyvben

Ha az eseményindító startTime a múltban van, akkor az M=(CurrentTime- TriggerStartTime)/TumblingWindowSize képlet alapján az eseményindító {M} backfill(múltbeli) futtatást hoz létre párhuzamosan, tiszteletben tartva az eseményindító egyidejűségét a jövőbeli futtatások végrehajtása előtt. Az ablakok végrehajtási sorrendje determinisztikus, a legrégebbitől a legújabb intervallumig. Ez a viselkedés jelenleg nem módosítható.

Feljegyzés

Ebben a forgatókönyvben a rendszer a kiválasztott startTime összes futtatást futtatja a jövőbeli futtatások végrehajtása előtt. Ha hosszú ideig kell visszatöltést végeznie, javasoljuk, hogy egy kezdeti előzménybetöltést végez.

Meglévő TriggerResource-elemek

A meglévő TriggerResource elemek frissítésére a következő pontok vonatkoznak:

  • Az eseményindító elemének (vagy ablakméretének) és az elemnek az interval értéke frequency nem módosítható az eseményindító létrehozása után. Ez a korlátozás az újrafuttatások és a függőségi triggerRun értékelések megfelelő működéséhez szükséges.
  • Ha az endTime eseményindító elemének értéke megváltozik (hozzáadással vagy frissítéssel), a már feldolgozott ablakok állapota nem lesz visszaállítva. Az eseményindító tiszteletben tartja az új endTime értéket. Ha az új endTime érték a már végrehajtott ablakok előtt van, az eseményindító leáll. Ellenkező esetben az eseményindító leáll az új endTime érték észlelésekor.

Folyamatok felhasználó által hozzárendelt újrapróbálkozásai

Folyamathibák esetén a átfedésmentes ablak eseményindítója automatikusan újrapróbálhatja a hivatkozott folyamat végrehajtását ugyanazokkal a bemeneti paraméterekkel, felhasználói beavatkozás nélkül. A művelet megadásához használja az retryPolicy eseményindító definíciójának tulajdonságát.

Átfedésmentes ablak eseményindító függősége

Ha meg szeretné győződni arról, hogy a bukóablak-eseményindító csak egy másik, az adat-előállítóban lévő átfedésmentes ablak eseményindítójának sikeres végrehajtása után lesz végrehajtva, hozzon létre egy átfedésmentes ablak eseményindító függőségét.

Átfedésmentes ablak futtatásának megszakítása

Ha az adott ablak várakozási, függőségi várakozási vagy futó állapotban van, megszakíthatja a futóablak-eseményindító futását:

  • Ha az ablak Futó állapotban van, szakítsa meg a társított folyamatfuttatást, és az eseményindító futtatása később Mégse állapotúként lesz megjelölve.
  • Ha az ablak függőségi állapotban van, megszakíthatja az ablakot a Figyelés szolgáltatásból.

Megszakított ablakot is újrafuttathat. Az újrafuttatás az eseményindító legújabb közzétett definícióit használja. A megadott ablak függőségei újraértékelésre kerülnek az újrafuttatásakor.

Minta az Azure PowerShellhez és az Azure CLI-hez

Ez a szakasz bemutatja, hogyan hozhat létre, indíthat és figyelhet eseményindítókat az Azure PowerShell használatával.

Feljegyzés

Javasoljuk, hogy az Azure Az PowerShell modult használja az Azure-ral való interakcióhoz. Első lépésként tekintse meg az Azure PowerShell telepítését ismertető témakört. Az Az PowerShell-modulra történő migrálás részleteiről lásd: Az Azure PowerShell migrálása az AzureRM modulból az Az modulba.

Előfeltételek

  • Azure-előfizetés: Ha nem rendelkezik Azure-előfizetéssel, első lépésként mindössze néhány perc alatt létrehozhat egy ingyenes fiókot.
  • Azure PowerShell: Kövesse az Azure PowerShell windowsos telepítése a PowerShellGet használatával című témakör utasításait.
  • Azure Data Factory: Kövesse az Azure Data Factory létrehozása című témakör utasításait a PowerShell használatával egy adat-előállító és egy folyamat létrehozásához.

Mintakód

  1. Hozzon létre egy MyTrigger.json nevű JSON-fájlt a C:\ADFv2QuickStartPSH\ mappában a következő tartalommal:

    Fontos

    A JSON-fájl mentése előtt állítsa be az startTime elem értékét az aktuális egyezményes világidőre (UTC). Állítsa az elem értékét egy endTime órával az aktuális UTC-időnél hosszabbra.

    {
      "name": "PerfTWTrigger",
      "properties": {
        "type": "TumblingWindowTrigger",
        "typeProperties": {
          "frequency": "Minute",
          "interval": "15",
          "startTime": "2017-09-08T05:30:00Z",
          "endTime" : "2017-09-08T06:30:00Z",
          "delay": "00:00:01",
          "retryPolicy": {
            "count": 2,
            "intervalInSeconds": 30
          },
          "maxConcurrency": 50
        },
        "pipeline": {
          "pipelineReference": {
            "type": "PipelineReference",
            "referenceName": "DynamicsToBlobPerfPipeline"
          },
          "parameters": {
            "windowStart": "@trigger().outputs.windowStartTime",
            "windowEnd": "@trigger().outputs.windowEndTime"
          }
        },
        "runtimeState": "Started"
      }
    }
    
  2. Eseményindító létrehozása a Set-AzDataFactoryV2Trigger parancsmaggal:

    Set-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name "MyTrigger" -DefinitionFile "C:\ADFv2QuickStartPSH\MyTrigger.json"
    
  3. Ellenőrizze, hogy az eseményindító állapota le van-e állítva a Get-AzDataFactoryV2Trigger parancsmag használatával:

    Get-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name "MyTrigger"
    
  4. Indítsa el az eseményindítót a Start-AzDataFactoryV2Trigger parancsmaggal:

    Start-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name "MyTrigger"
    
  5. Győződjön meg arról, hogy az eseményindító állapota a Get-AzDataFactoryV2Trigger parancsmaggal indul el:

    Get-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name "MyTrigger"
    
  6. A Get-AzDataFactoryV2TriggerRun parancsmaggal lekérheti az eseményindító-futtatásokat az Azure PowerShellben. Az eseményindító futtatásával kapcsolatos információk lekéréséhez rendszeresen hajtsa végre a következő parancsot. Frissítse az és az TriggerRunStartedAfter TriggerRunStartedBefore értékeket az eseményindító definíciójában szereplő értékeknek megfelelően:

    Get-AzDataFactoryV2TriggerRun -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -TriggerName "MyTrigger" -TriggerRunStartedAfter "2017-12-08T00:00:00" -TriggerRunStartedBefore "2017-12-08T01:00:00"
    

Az eseményindító-futtatások és a folyamatfuttatások az Azure Portalon való figyeléséhez tekintse meg a folyamatfuttatások monitorozását.