Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
DOTYCZY: Azure Data Factory
Azure Synapse Analytics
Napiwek
Wypróbuj usługę Data Factory w usłudze Microsoft Fabric — rozwiązanie analityczne typu all-in-one dla przedsiębiorstw. Usługa Microsoft Fabric obejmuje wszystko, od przenoszenia danych do nauki o danych, analizy w czasie rzeczywistym, analizy biznesowej i raportowania. Dowiedz się, jak bezpłatnie rozpocząć nową wersję próbną !
Ten artykuł zawiera kroki, jak utworzyć, uruchomić i monitorować wyzwalacz okna przesuwnego. Aby uzyskać ogólne informacje o wyzwalaczach i obsługiwanych ich typach, zobacz Wykonywanie i wyzwalacze potoku.
Wyzwalacze okna zsuwającego się to rodzaj wyzwalaczy, które uruchamiają się w określonych odstępach czasu, począwszy od wskazanego momentu rozpoczęcia, zachowując stan. Okna przesuwne to seria stałych rozmiarów, niepokrywających się i ciągłych przedziałów czasowych. Wyzwalacz okna wirowania ma relację jeden do jednego z potokiem i może odwoływać się tylko do pojedynczego potoku.
Wyzwalacz okna przemijającego jest bardziej wymagającą alternatywą do wyzwalacza harmonogramu. Oferuje ona zestaw funkcji dla złożonych scenariuszy, takich jak (zależność od innych wyzwalaczy okien stałoczasowych, ponowne uruchamianie zakończonego niepowodzeniem zadania i ustawianie ponawiania próby użytkownika dla potoków). Aby dokładniej zrozumieć różnicę między wyzwalaczem harmonogramu a wyzwalaczem okna wirowania, zobacz Porównanie typów wyzwalaczy.
Środowisko portalu Azure Data Factory i Azure Synapse
- Aby utworzyć wyzwalacz typu tumbling window w Azure portal, wybierz kartę Triggers, a następnie wybierz New.
- Po otwarciu okienka konfiguracji wyzwalacza wybierz pozycję Okno zsuwane. Następnie zdefiniuj właściwości wyzwalacza okna przetaczającego się.
- Po zakończeniu wybierz pozycję Zapisz.
Właściwości typu wyzwalacza okna przesuwnego
Okno przesuwne ma następujące właściwości typu wyzwalacza:
{
"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"
}
}
}
}
Poniższa tabela zawiera wysokopoziomowe omówienie głównych elementów JSON związanych z cyklicznością i harmonogramowaniem wyzwalacza przesuwanego okna.
Element JSON | opis | Typ | Dozwolone wartości | Wymagane |
---|---|---|---|---|
type |
Typ wyzwalacza. Element type jest stałą wartością TumblingWindowTrigger . |
String |
TumblingWindowTrigger |
Tak |
runtimeState |
Bieżący stan czasu działania wyzwalacza. Ten element jest <tylko do odczytu>. |
String |
Started , , Stopped Disabled |
Tak |
frequency |
Ciąg reprezentujący jednostkę częstotliwości (minuty, godziny lub miesiące), w których wyzwalacz się powtarza.
startTime Jeśli wartości daty są bardziej szczegółowe niż frequency wartość, startTime daty są brane pod uwagę, gdy są obliczane granice okna. Jeśli na przykład wartość frequency to hourly i wartość startTime to 2017-09-01T10:10:10Z, to pierwszym oknem jest (2017-09-01T10:10:10Z, 2017-09-01T11:10:10Z). |
String |
Minute , , Hour Month |
Tak |
interval |
Dodatnia liczba całkowita określająca interwał wartości frequency , który ustala, jak często uruchamiany jest wyzwalacz. Na przykład, jeśli interval wynosi 3 , a frequency wynosi hour , wyzwalacz powtarza się co 3 godziny. Minimalny interwał okna wynosi 5 minut. |
Integer |
Dodatnia liczba całkowita. | Tak |
startTime |
Pierwsze wystąpienie, które może mieć miejsce w przeszłości. Pierwszy interwał wyzwalacza to (startTime , startTime + interval ). |
DateTime |
Wartość DateTime . |
Tak |
endTime |
Ostatnie wystąpienie, które mogło mieć miejsce w przeszłości. | DateTime |
Wartość DateTime . |
Tak |
delay |
Czas opóźnienia rozpoczęcia przetwarzania danych dla okna. Uruchomienie potoku następuje po oczekiwanym czasie wykonywania powiększonym o czas opóźnienia. Opóźnienie określa, jak długo wyzwalacz czeka od upłynięcia planowanego czasu przed wyzwoleniem nowego wykonania. Opóźnienie nie zmienia okna startTime . Na przykład delay wartość 00:10:00 oznacza opóźnienie 10 minut. |
Timespan (gg:mm:ss) |
timespan Wartość, w której wartość domyślna to 00:00:00 . |
Nie. |
maxConcurrency |
Liczba równoczesnych uruchomień wyzwalacza dla okien, które są gotowe. Na przykład, aby uzupełnić godzinowe uruchomienia wynikające dla wczorajszych wyników, powstają 24 okna. Jeśli maxConcurrency = 10, zdarzenia wyzwalacza są wyzwalane tylko dla pierwszych 10 okien (00:00-01:00 – 09:00-10:00). Po zakończeniu pierwszych 10 wyzwolonych przebiegów potoku wyzwalacz zostanie wyzwolony dla następnych 10 okien (10:00-11:00 – 19:00-20:00). Kontynuując ten przykład maxConcurrency = 10, jeśli jest gotowych 10 okien, istnieje 10 łącznych przebiegów potoku. Jeśli tylko jedno okno jest gotowe, wykonywany jest tylko jeden potok. |
Integer |
Liczba całkowita z zakresu od 1 do 50. | Tak |
retryPolicy: Count |
Liczba ponownych prób przed uruchomieniem potoku jest oznaczona jako Failed . |
Integer |
Liczba całkowita, gdzie wartość domyślna to 0 (bez ponownych prób). | Nie. |
retryPolicy: intervalInSeconds |
Opóźnienie między ponownymi próbami określonymi w sekundach. | Integer |
Liczba sekund, w których wartość domyślna to 30. Minimalna wartość to 30 . |
Nie. |
dependsOn: type |
Typ TumblingWindowTriggerReference . Wymagane, jeśli ustawiono zależność. |
String |
TumblingWindowTriggerDependencyReference , SelfDependencyTumblingWindowTriggerReference |
Nie. |
dependsOn: size |
Rozmiar przesuwnego okna zależności. | Timespan (gg:mm:ss) |
Wartość dodatnia timespan , której domyślnie odpowiada rozmiar okna wyzwalacza podrzędnego. |
Nie. |
dependsOn: offset |
Przesunięcie wyzwalacza zależności. | Timespan (gg:mm:ss) |
timespan Wartość, która musi być ujemna przy zależności od samego siebie. Jeśli nie określono żadnej wartości, okno jest takie samo jak sam wyzwalacz. |
Samodzielność: Tak Inne: Nie |
Uwaga
Po opublikowaniu wyzwalacza okna przesuwnego, wartości interval
i frequency
nie można edytować.
Zmienne systemowe WindowStart i WindowEnd
Możesz użyć zmiennych systemowych WindowStart
i WindowEnd
wyzwalacza okna przesuwnych w definicji potoku (czyli dla części zapytania). Przekaż zmienne systemowe jako parametry do potoku w definicji wyzwalacza . W poniższym przykładzie pokazano, jak przekazać te zmienne jako parametry.
{
"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'))}"
}
}
}
}
}
Aby użyć wartości zmiennych systemowych WindowStart
i WindowEnd
w definicji potoku, należy odpowiednio użyć parametrów MyWindowStart
i MyWindowEnd
.
Kolejność wykonywania okien w scenariuszu uzupełniania luk
Jeśli wyzwalacz startTime
znajduje się w przeszłości, na podstawie formuły M=(CurrentTime- TriggerStartTime)/TumblingWindowSize wyzwalacz generuje {M} równoległych uruchomień wypełnienia wstecznego, zachowując współbieżność wyzwalacza, zanim zostaną wykonane przyszłe uruchomienia. Kolejność wykonywania okien jest deterministyczna, od najstarszych do najnowszych przedziałów. Obecnie nie można zmodyfikować tego zachowania.
Uwaga
W tym scenariuszu wszystkie uruchomienia z wybranego startTime
są wykonywane przed uruchomieniem przyszłych przebiegów. Jeśli potrzebujesz uzyskać dane historyczne za długi okres, zalecamy przeprowadzenie pierwszego załadowania danych historycznych.
Istniejące elementy TriggerResource
Następujące kwestie dotyczą aktualizowania istniejących TriggerResource
elementów:
- Nie można zmienić wartości
frequency
elementu (lub rozmiaru okna) wyzwalacza wraz zinterval
elementem po utworzeniu wyzwalacza. To ograniczenie jest wymagane do prawidłowego funkcjonowania ponownychtriggerRun
uruchomień i ocen zależności. - Jeśli wartość elementu
endTime
wyzwalacza zmienia się poprzez dodanie lub aktualizację, stan okien, które już są przetwarzane, nie jest resetowany. Wyzwalacz honoruje nowąendTime
wartość. Jeśli nowaendTime
wartość jest przed oknami, które zostały już uruchomione, wyzwalacz zatrzyma się. W przeciwnym razie wyzwalacz zatrzymuje się po napotkaniu nowejendTime
wartości.
Ponowne próby potoków przydzielone przez użytkownika
W przypadku awarii przepływu danych, wyzwalacz okna zsuwającego się może automatycznie ponowić próbę wykonania odwoływanego przepływu danych przy użyciu tych samych parametrów wejściowych, bez potrzeby interwencji użytkownika.
retryPolicy
Użyj właściwości w definicji wyzwalacza, aby określić tę akcję.
Zależność wyzwalacza przesuwnego okna czasowego
Jeśli chcesz upewnić się, że wyzwalacz okna przesuwnego jest wykonywany dopiero po pomyślnym wykonaniu innego wyzwalacza okna przesuwnego w Data Factory, utwórz zależność wyzwalacza okna przesuwnego.
Anulowanie uruchomienia okna wirowania
Możesz anulować przebiegi wyzwalacza okna przetasowywania, jeśli znajduje się określone okno w stanie Oczekiwanie, Oczekiwanie na zależność lub Uruchomione:
- Jeśli okno jest w stanie Uruchomionym, anuluj skojarzone uruchomienie potoku, a uruchomienie wyzwalacza zostanie następnie oznaczone jako Anulowane.
- Jeśli okno znajduje się w stanie oczekiwania lub oczekiwania na zależność, możesz anulować okno z sekcji Monitorowanie.
Możesz również ponownie uruchomić anulowane okno. Ponowne uruchomienie pobiera najnowsze opublikowane definicje wyzwalacza. Zależności dla określonego okna są ponownie oceniane po ponownym uruchomieniu .
Przykład dla programu Azure PowerShell i interfejsu wiersza polecenia platformy Azure
W tej sekcji pokazano, jak używać programu Azure PowerShell do tworzenia, uruchamiania i monitorowania wyzwalacza.
Uwaga
Do interakcji z platformą Azure zalecamy używanie modułu Azure Az w programie PowerShell. Aby rozpocząć, zobacz Instalowanie programu Azure PowerShell. Aby dowiedzieć się, jak przeprowadzić migrację do modułu Az programu PowerShell, zobacz Migrowanie programu Azure PowerShell z modułu AzureRM do modułu Az.
Wymagania wstępne
- Subskrypcja platformy Azure: jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto .
- Azure PowerShell: postępuj zgodnie z instrukcjami w temacie Instalowanie programu Azure PowerShell w systemie Windows przy użyciu modułu PowerShellGet.
- Azure Data Factory: Postępuj zgodnie z instrukcjami w Tworzenie usługi Azure Data Factory przy użyciu programu PowerShell, aby utworzyć fabrykę danych i potok.
Przykładowy kod
Utwórz plik JSON o nazwie MyTrigger.json w folderze C:\ADFv2QuickStartPSH\ o następującej zawartości:
Ważne
Przed zapisaniem pliku JSON ustaw wartość
startTime
elementu na bieżący czas uniwersalny koordynowany (UTC). Ustaw wartośćendTime
elementu na jedną godzinę po bieżącej godzinie UTC.{ "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" } }
Utwórz wyzwalacz przy użyciu polecenia cmdlet Set-AzDataFactoryV2Trigger :
Set-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name "MyTrigger" -DefinitionFile "C:\ADFv2QuickStartPSH\MyTrigger.json"
Upewnij się, że stan wyzwalacza jest zatrzymany za pomocą cmdlet Get-AzDataFactoryV2Trigger:
Get-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name "MyTrigger"
Uruchom wyzwalacz przy użyciu polecenia cmdlet Start-AzDataFactoryV2Trigger :
Start-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name "MyTrigger"
Upewnij się, że stan wyzwalacza to Rozpoczęto przy użyciu polecenia cmdlet Get-AzDataFactoryV2Trigger :
Get-AzDataFactoryV2Trigger -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -Name "MyTrigger"
Uruchomienia wyzwalacza w Azure PowerShell można uzyskać za pomocą polecenia cmdlet Get-AzDataFactoryV2TriggerRun. Aby uzyskać informacje na temat przebiegów wyzwalacza, należy okresowo wykonywać poniższe polecenie. Zaktualizuj wartości
TriggerRunStartedAfter
iTriggerRunStartedBefore
, aby odpowiadały wartościom w definicji wyzwalacza.Get-AzDataFactoryV2TriggerRun -ResourceGroupName $ResourceGroupName -DataFactoryName $DataFactoryName -TriggerName "MyTrigger" -TriggerRunStartedAfter "2017-12-08T00:00:00" -TriggerRunStartedBefore "2017-12-08T01:00:00"
Aby monitorować uruchomienia wyzwalacza i uruchomienia potoków w portalu Azure, zobacz Monitorowanie uruchomień potoków.