Á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
- 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.
- 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.
- 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
Azure-előfizetés. Ha még nincs Azure-előfizetése, kezdés előtt hozzon létre egy ingyenes fiókot.
Azure PowerShell. Kövesse az Azure PowerShell windowsos telepítése a PowerShellGettel című témakör utasításait.
Azure Data Factory. Kövesse az Azure Data Factory létrehozása a PowerShell használatával egy adat-előállító és egy folyamat létrehozásához című témakör utasításait.
Mintakód
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" } }
Eseményindító létrehozása a Set-AzDataFactoryV2Trigger parancsmaggal:
Set-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name "MyTrigger" -DefinitionFile "C:\ADFv2QuickStartPSH\MyTrigger.json"
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"
Indítsa el az eseményindítót a Start-AzDataFactoryV2Trigger parancsmaggal:
Start-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name "MyTrigger"
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"
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.
Kapcsolódó tartalom
- Az eseményindítókkal kapcsolatos részletes információkért lásd a folyamat végrehajtását és az eseményindítókat.
- Hozzon létre egy átfedésmentes ablak eseményindító függőségét.
- Megtudhatja, hogyan hivatkozhat a folyamat eseményindító metaadataira, lásd : Referencia-eseményindító metaadatai a folyamatfuttatásokban
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: