Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
VAN TOEPASSING OP: Azure Data Factory
Azure Synapse Analytics
Aanbeveling
Probeer Data Factory uit in Microsoft Fabric, een alles-in-één analyseoplossing voor ondernemingen. Microsoft Fabric omvat alles, van gegevensverplaatsing tot gegevenswetenschap, realtime analyses, business intelligence en rapportage. Meer informatie over het gratis starten van een nieuwe proefversie .
Dit artikel geeft stappen voor het maken, starten en bewaken van een tumbling-venstertrigger. Zie Pijplijnuitvoering en triggers voor algemene informatie over triggers en de ondersteunde typen.
Triggers met een schuifvenster zijn triggers die vanaf een opgegeven begintijd op regelmatige tijdsintervallen worden geactiveerd, terwijl ze hun status behouden. Tumblingvensters zijn een reeks aaneensluitende tijdsintervallen van vaste grootte die niet overlappen. Een tumbling-venstertrigger heeft een een-op-een-relatie met een pijplijn en kan alleen verwijzen naar één enkele pijplijn.
Een Tumblingvenster-trigger is een meer complexe alternatief voor een schematrigger. Het biedt een reeks functies voor complexe scenario's, zoals (afhankelijkheid van andere tumblingvenstertriggers, het opnieuw uitvoeren van een mislukte taak en het instellen van gebruikersherhalingen voor pijplijnen). Zie Vergelijking van triggertypen voor meer informatie over het verschil tussen een schematrigger en een tumbling windows-trigger.
Ervaring met Azure Data Factory en Azure Synapse Portal
- Als u een tumblingvenstertrigger wilt maken in de Azure portal, selecteert u het tabblad Triggers en selecteert u vervolgens Nieuw.
- Nadat het deelvenster triggerconfiguratie is geopend, selecteert u Tumbling Window. Definieer vervolgens de eigenschappen van de tumbling-venstertrigger.
- Wanneer u klaar bent, selecteert u Opslaan.
Eigenschappen van het tumbling venster trigger-type
Een tumblingvenster heeft de volgende eigenschappen van het triggertype:
{
"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"
}
}
}
}
De volgende tabel geeft een globaal overzicht van de belangrijkste JSON-elementen die verband houden met het schema en de planning van een trigger voor een schuivend venster.
JSON-element | Beschrijving | Soort | Toegestane waarden | Vereist |
---|---|---|---|---|
type |
Het type van de trigger. De type waarde is de vaste waarde TumblingWindowTrigger . |
String |
TumblingWindowTrigger |
Ja |
runtimeState |
Huidige looptijdstatus van de trigger. Dit element is <alleen-lezen>. |
String |
Started , , Stopped Disabled |
Ja |
frequency |
Een tekenreeks die de frequentie-eenheid (minuten, uren of maanden) aangeeft waarop de trigger terugkeert. Als de startTime datumwaarden gedetailleerder zijn dan de frequency waarde, worden de startTime datums overwogen wanneer de venstergrenzen worden berekend. Als de frequency waarde bijvoorbeeld is hourly en de startTime waarde 2017-09-01T10:10:10Z is, is het eerste venster (2017-09-01T10:10:10Z, 2017-09-01T11:10:10Z). |
String |
Minute , , Hour Month |
Ja |
interval |
Een positief geheel getal dat het interval voor de frequency waarde aangeeft, waarmee wordt bepaald hoe vaak de trigger wordt uitgevoerd. Als de interval is 3 en de frequency is hour , wordt de trigger bijvoorbeeld elke 3 uur herhaald. Het minimale vensterinterval is 5 minuten. |
Integer |
Een positief geheel getal. | Ja |
startTime |
De eerste gebeurtenis, die zich in het verleden kan voordoen. Het eerste triggerinterval is (startTime , startTime + interval ). |
DateTime |
Een DateTime waarde. |
Ja |
endTime |
De laatste gebeurtenis, die zich in het verleden kan voordoen. | DateTime |
Een DateTime waarde. |
Ja |
delay |
De hoeveelheid tijd die nodig is om het begin van de gegevensverwerking voor het venster te vertragen. De pijplijnuitvoering wordt gestart na de verwachte uitvoeringstijd plus de hoeveelheid vertraging. De vertraging bepaalt hoe lang de trigger wacht na de verstreken tijd voordat een nieuwe taak wordt gestart. De vertraging verandert het venster startTime niet. Een waarde van 00:10:00 betekent bijvoorbeeld delay een vertraging van 10 minuten. |
Timespan (uu:mm:ss) |
Een timespan waarde waarbij de standaardwaarde is 00:00:00 . |
Nee |
maxConcurrency |
Het aantal gelijktijdige triggers dat wordt geactiveerd voor vensters die gereed zijn. Als u bijvoorbeeld elk uur een backfill wilt uitvoeren voor gisteren, leidt dit tot 24 vensters. Als maxConcurrency = 10, worden triggergebeurtenissen alleen geactiveerd voor de eerste 10 vensters (00:00-01:00 - 09:00-10:00). Nadat de eerste tien geactiveerde pijplijnuitvoeringen zijn voltooid, worden triggeruitvoeringen gestart voor de volgende tien tijdvensters (10:00-11:00 - 19:00-20:00). Voortbordurend op dit voorbeeld van maxConcurrency = 10, als er 10 vensters gereed zijn, zijn er 10 pijpleidingruns in totaal. Als slechts één venster klaar is, wordt slechts één pijplijn uitgevoerd. |
Integer |
Een geheel getal tussen 1 en 50. | Ja |
retryPolicy: Count |
Het aantal nieuwe pogingen voordat de pijplijnuitvoering wordt gemarkeerd als Failed . |
Integer |
Een geheel getal, waarbij de standaardwaarde 0 is (geen nieuwe pogingen). | Nee |
retryPolicy: intervalInSeconds |
De vertraging tussen herhaalde pogingen die in seconden wordt opgegeven. | Integer |
Het aantal seconden, waarbij de standaardwaarde 30 is. De minimumwaarde is 30 . |
Nee |
dependsOn: type |
Het type TumblingWindowTriggerReference . Vereist als een afhankelijkheid is ingesteld. |
String |
TumblingWindowTriggerDependencyReference , SelfDependencyTumblingWindowTriggerReference |
Nee |
dependsOn: size |
De grootte van het afhankelijkheids-tumblingvenster. | Timespan (uu:mm:ss) |
Een positieve timespan waarde waarbij de standaardwaarde de venstergrootte van de kind-trigger is. |
Nee |
dependsOn: offset |
De verschuiving van de afhankelijkheidstrigger. | Timespan (uu:mm:ss) |
Een timespan waarde die negatief moet zijn in een zelfafhankelijkheid. Als er geen waarde is opgegeven, is het venster hetzelfde als de trigger zelf. |
Zelfafhankelijkheid: Ja Overige: Nee |
Notitie
Nadat een tumblingvenstertrigger is gepubliceerd, kunnen de waarden interval
en frequency
niet worden bewerkt.
WindowsStart- en WindowEnd-systeemvariabelen
U kunt de WindowStart
en WindowEnd
systeemvariabelen van de tumblingvenstertrigger in uw pijplijndefinitie gebruiken (dat wil zeggen, voor een deel van een query). Geef de systeemvariabelen door als parameters aan uw pijplijn in de triggerdefinitie . In het volgende voorbeeld ziet u hoe u deze variabelen als parameters doorgeeft.
{
"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'))}"
}
}
}
}
}
Als u de waarden van de WindowStart
en WindowEnd
systeemvariabele in de pijplijndefinitie wilt gebruiken, gebruikt u uw MyWindowStart
parameters MyWindowEnd
dienovereenkomstig.
Uitvoeringsvolgorde van vensters in een backfill-scenario
Als de trigger startTime
zich in het verleden bevindt, genereert het op basis van de formule M=(CurrentTime- TriggerStartTime)/TumblingWindowSize {M} backfill (verleden) runs parallel, waarbij rekening wordt gehouden met de gelijktijdigheid van triggers, voordat de toekomstige runs worden uitgevoerd. De uitvoeringsvolgorde voor Windows is deterministisch, van oudste tot nieuwste intervallen. Dit gedrag kan op dit moment niet worden aangepast.
Notitie
In dit scenario worden alle uitvoeringen van de geselecteerde startTime
uitgevoerd voordat toekomstige uitvoeringen worden uitgevoerd. Als u een lange periode wilt aanvullen, raden we u aan een eerste historische lading te doen.
Bestaande TriggerResource-elementen
De volgende punten zijn van toepassing op het bijwerken van bestaande TriggerResource
elementen:
- De waarde voor het
frequency
element (of de venstergrootte) van de trigger samen met hetinterval
element kan niet worden gewijzigd nadat de trigger is gemaakt. Deze beperking is vereist voor de correcte werking van heruitvoeringen en afhankelijkheidsevaluaties. - Als de waarde voor het
endTime
element van de trigger verandert (door toe te voegen of bij te werken), wordt de status van de vensters die al zijn verwerkt, niet opnieuw ingesteld. De trigger eert de nieuweendTime
waarde. Als de nieuweendTime
waarde zich bevindt vóór de vensters die al worden uitgevoerd, stopt de trigger. Anders stopt de trigger wanneer de nieuweendTime
waarde wordt aangetroffen.
Door de gebruiker toegewezen nieuwe pogingen van pijplijnen
In het geval van pijplijnfouten kan een tumbling window-triggermechanisme de uitvoering van de pijplijn waarnaar wordt verwezen automatisch opnieuw proberen met behulp van dezelfde invoerparameters, zonder dat de gebruiker hoeft in te grijpen. Gebruik de retryPolicy
eigenschap in de triggerdefinitie om deze actie op te geven.
Afhankelijkheid van trigger voor tuimelvenster
Als u ervoor wilt zorgen dat een tumblingvenstertrigger pas wordt uitgevoerd na de succesvolle uitvoering van een andere in de gegevensfabriek, maakt u een afhankelijkheid voor tumblingvenstertriggers.
Een uitvoering van een tumblingvenster annuleren
U kunt runs annuleren voor een tumblingvenstertrigger als het specifieke venster in de status Wachten, Wachten op afhankelijkheid of Actief is.
- Als het venster de status Running heeft, annuleert u de bijbehorende Pipeline Run, waarna de triggeruitvoering als Geannuleerd wordt gemarkeerd.
- Als het venster de status Wachten of Wachten op afhankelijkheid heeft, kunt u het venster annuleren vanuit Bewaking.
U kunt ook een geannuleerd venster opnieuw uitvoeren. De nieuwe uitvoering gebruikt de meest recente gepubliceerde definities van de trigger. Afhankelijkheden voor het opgegeven venster worden opnieuw geëvalueerd bij opnieuw uitvoeren.
Voorbeeld voor Azure PowerShell en de Azure CLI
In deze sectie wordt beschreven hoe u Azure PowerShell gebruikt om een trigger te maken, te starten en te bewaken.
Notitie
Het wordt aanbevolen de Azure Az PowerShell-module te gebruiken om te communiceren met Azure. Zie Azure PowerShell installeren om aan de slag te gaan. Raadpleeg Azure PowerShell migreren van AzureRM naar Az om te leren hoe u naar de Azure PowerShell-module migreert.
Vereisten
- Azure-abonnement: als u nog geen abonnement op Azure hebt, maakt u een gratis Azure-account aan voordat u begint.
- Azure PowerShell: volg de instructies in Azure PowerShell installeren in Windows met PowerShellGet.
- Azure Data Factory: volg de instructies in Een Azure Data Factory maken met behulp van PowerShell om een data factory en een pijplijn te maken.
Voorbeeldcode
Maak een JSON-bestand met de naam MyTrigger.json in de map C:\ADFv2QuickStartPSH\ met de volgende inhoud:
Belangrijk
Voordat u het JSON-bestand opslaat, stelt u de waarde van het
startTime
element in op de huidige UTC-tijd (Coordinated Universal Time). Stel de waarde van hetendTime
element in op één uur voorbij de huidige UTC-tijd.{ "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" } }
Maak een trigger met behulp van de cmdlet Set-AzDataFactoryV2Trigger :
Set-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name "MyTrigger" -DefinitionFile "C:\ADFv2QuickStartPSH\MyTrigger.json"
Controleer of de status van de trigger is gestopt met behulp van de cmdlet Get-AzDataFactoryV2Trigger :
Get-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name "MyTrigger"
Start de trigger met behulp van de cmdlet Start-AzDataFactoryV2Trigger :
Start-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name "MyTrigger"
Controleer of de status van de trigger is gestart met behulp van de cmdlet Get-AzDataFactoryV2Trigger :
Get-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name "MyTrigger"
Gebruik de cmdlet Get-AzDataFactoryV2TriggerRun om triggeruitvoeringen in Azure PowerShell op te halen. Voer regelmatig de volgende opdracht uit om informatie over de triggeruitvoeringen op te halen. Werk de waarden van
TriggerRunStartedAfter
enTriggerRunStartedBefore
bij zodat ze overeenkomen met de waarden in uw triggerdefinitie.Get-AzDataFactoryV2TriggerRun -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -TriggerName "MyTrigger" -TriggerRunStartedAfter "2017-12-08T00:00:00" -TriggerRunStartedBefore "2017-12-08T01:00:00"
Zie Pijplijnuitvoeringen bewaken voor het monitoren van triggeruitvoeringen en pijplijnuitvoeringen in de Azure-portal.