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. Az átfedésmentes ablakok rögzített méretű, egymást nem fedő és összefüggő időintervallumok. 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 sokkal nagyobb súlyú alternatíva az ütemezési eseményindítóhoz, amely összetett forgatókönyvekhez kínál funkciókat (függőség a többi átfedésmentes ablak-eseményindítótól, egy sikertelen feladat újrafuttatása és a felhasználói újrapróbálkozások beállítása a folyamatokhoz). Az ütemezési eseményindító és a csapóablak-eseményindító közötti különbség további megértéséhez látogasson el ide.

Az Azure Data Factory és a 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ésmentes ablak lehetőséget, majd adja meg a átfedésmentes ablak eseményindítójának tulajdonságait.
  3. Amikor elkészült, 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. A típus a rögzített "TumblingWindowTrigger" érték. Sztring "TumblingWindowTrigger" Igen
runtimeState Az eseményindító futási idejének aktuális állapota.
Megjegyzés: Ez az elem írásvédett<.>
Sztring "Elindítva", "Leállítva", "Letiltva" 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 a gyakorisági értéknél, a startTime-dátumok az ablakhatárok kiszámításakor lesznek figyelembe véve. Ha például a gyakoriság értéke óránként történik, és a startTime értéke 2017-09-01T10:10:10Z, az első ablak (2017-09-01T10:10:10Z, 2017-09-01T11:10:10Z). Sztring "Minute", "Hour", "Month" Igen
interval Pozitív egész szám, amely az eseményindító futásának gyakoriságát meghatározó frequency érték időközét jelöli. Ha például az intervallum 3, és a gyakoriság "óra", akkor az eseményindító 3 óránként ismétlődik.
Megjegyzés: Az ablak minimális időköze 5 perc.
Egész 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 + intervallum). Dátum/idő DateTime-érték. Igen
endTime Az utolsó előfordulás, amely a múltban lehet. Dátum/idő DateTime-érték. Igen
Késleltetés 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 ablak startTime-ját. A 00:10:00 késleltetési érték például 10 perces késést jelent. Időtartomány
(óó:mm:ss)
Olyan időbélyeg, amelyben az alapértelmezett érték 00:00:00. Nem
maxConcurrency Az egyidejű eseményindító-futtatások száma, amelyeket a kész ablakok aktiválnak. Például ha vissza szeretné tölteni a tegnapi órákat, az 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). A maxConcurrency = 10 példával folytatva, ha 10 ablak áll készen, 10 folyamatfuttatás van. Ha csak 1 ablak áll készen, csak 1 folyamat fut. Egész 1 és 50 közötti egész szám. Igen
retryPolicy: Count A folyamatfuttatás előtti újrapróbálkozási próbálkozások száma "Sikertelen". Egész 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. Egész A másodpercek száma, ahol az alapértelmezett érték 30. A minimális érték 30. Nem
dependsOn: type A TumblingWindowTriggerReference típusa. Függőség beállítása esetén kötelező. Sztring "TumblingWindowTriggerDependencyReference", "SelfDependencyTumblingWindowTriggerReference" Nem
dependsOn: méret A függőségi átfedési ablak mérete. Időtartomány
(óó:mm:ss)
Pozitív időtartomány-érték, ahol az alapértelmezett érték a gyermek eseményindító ablakmérete Nem
dependsOn: eltolás A függőségi eseményindító eltolása. Időtartomány
(óó:mm:ss)
Az önfüggőségben negatív időbélyegnek kell lennie. 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 átfedésmentes ablak eseményindítójának közzététele után az időköz és a gyakoriság nem szerkeszthető.

WindowsStart és WindowEnd rendszerváltozók

A folyamatdefinícióban (vagyis egy lekérdezés egy részének) használhatja a bukóablak-eseményindító WindowsStart é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 WindowsStart és a WindowEnd rendszerváltozó értékeinek a folyamatdefinícióban való használatához ennek megfelelően használja a "MyWindowStart" és a "MyWindowEnd" paramétert.

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

Ha az eseményindító startTime-értéke a múltban van, akkor az M=(CurrentTime- TriggerStartTime)/TumblingWindowSize képlet alapján az eseményindító {M} backfill(múltbeli) futtatásokat generál párhuzamosan, az eseményindító egyidejűségével, mielőtt végrehajtja a jövőbeli futtatásokat. 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

Vegye figyelembe, hogy ebben a forgatókönyvben a rendszer a kiválasztott startTime-ból származó összes futtatást futtatja a jövőbeli futtatások végrehajtása előtt. Ha hosszú ideig kell visszatöltést végeznie, érdemes intial előzményterhelést végeznie.

Meglévő TriggerResource-elemek

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

  • Az eseményindító gyakorisági elemének (vagy ablakméretének) és az intervallumelemnek az értéke nem módosítható az eseményindító létrehozása után. Ez szükséges a triggerRun újrafuttatásához és a függőségi értékelések megfelelő működéséhez
  • Ha az eseményindító endTime elemének értéke megváltozik (hozzáadva vagy frissítve), 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.

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

Folyamathibák esetén a ugróablak-eseményindító automatikusan újrapróbálkozza a hivatkozott folyamat végrehajtását ugyanazokkal a bemeneti paraméterekkel, a felhasználói beavatkozás nélkül. Ez a triggerdefiníció "retryPolicy" tulajdonságával adható meg.

Á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

Megszakíthatja a lefuttatásokat egy ugróablak-eseményindító esetében, ha az adott ablak várakozási, függőségi várakozási vagy futó állapotban van

  • 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 várakozási vagy várakozási á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 fogja használni, és a megadott ablak függőségei újra lesznek értékelve újrafuttatva

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

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 a startTime elem értékét az aktuális UTC-időpontra. Állítsa be az endTime elem értékét egy órával az aktuális UTC-időponthoz képest.

    {
      "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 a TriggerRunStartedAfter és a TriggerRunStartedBefore értékeket az eseményindító definíciójának értékeinek 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.