Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
La maggior parte delle attività di pipeline in Data Factory supporta tentativi automatici. Quando un'attività non riesce a causa di un errore transitorio (un'API soggetta a limitazione della frequenza, una breve interruzione del servizio o una dipendenza instabile), puoi configurarla in modo che ritenti automaticamente un numero prestabilito di volte prima di contrassegnare l'attività come non riuscita.
Puoi anche controllare quanto tempo l'attività aspetta tra un tentativo e l'altro, impostare il numero di ritenti e aspettare singolarmente per ogni attività, per regolare il comportamento dei ritenti con precisione in tutto il tuo flusso di lavoro.
Configura le impostazioni per i nuovi tentativi in un'attività
Per configurare il comportamento di ripetizione dei tentativi per un'attività:
Selezionare l'attività nell'area di disegno della pipeline.
Nella scheda Generale del riquadro proprietà selezionare la casella di controllo Abilita tentativi per attivare la funzionalità di ripetizione dei tentativi.
Impostare il campo Riprova sul numero di tentativi. Immettere un valore compreso tra 1 e 1000. Il valore predefinito è 1.
In Tipo di intervallo tra i tentativi, seleziona Fisso o Ritardo crescente per definire come viene calcolato il tempo di attesa tra un tentativo e l'altro. Poi imposta i campi intervalli per il tipo scelto. Vedi intervalli di ritentazione per i dettagli.
Facoltativamente, configurare le condizioni di ripetizione dei tentativi (anteprima) per controllare quando si verificano nuovi tentativi in base a criteri di errore specifici.
Intervalli di ritentazione
L'intervallo di ritentazione controlla quanto tempo un'attività aspetta tra un tentativo e l'altro. Usa Fixed per guasti brevi e prevedibili. Usa Ritardo crescente per le interruzioni più lunghe. Implementa un retrocesso esponenziale, dove il tempo di attesa aumenta ad ogni tentativo, dando ai servizi a monte progressivamente più tempo per recuperare.
L'impostazione di intervallo di ritentazione determina quale approccio utilizzare.
| TIPO | Behavior |
|---|---|
| Fisso (predefinito) | Aspetta lo stesso numero di secondi tra un tentativo e l'altro. |
| Ritardo crescente | Utilizza il back-off esponenziale: ogni nuovo tentativo attende un intervallo casuale all’interno di un intervallo che cresce esponenzialmente, fino a un massimo configurabile. |
Fixed
Quando selezioni Fisso, l'attività attende lo stesso numero di secondi tra un tentativo e l'altro. Usa questo tipo quando i guasti sono brevi e prevedibili.
Imposta Intervallo di ripetizione (sec) sul numero di secondi di attesa. Il valore predefinito è 30 secondi.
Ritardo crescente
Quando selezioni Ritardo Crescente, il tempo di attesa aumenta esponenzialmente tra un tentativo e l'altro, un modello noto come retrocesso esponenziale. Questo schema dà progressivamente più tempo ai servizi a monte per la ripresa, riduce il carico ripetuto nei sistemi in difficoltà e permette alle pipeline di recuperare da interruzioni più lunghe senza intervento manuale.
Il motore di ritentazione seleziona un intervallo casuale da un intervallo in crescita esponenziale prima di ogni tentativo:
| Retry | Minimo di portata | Massima portata |
|---|---|---|
| 1 | max(0, intervallo minimo) | min(intervallo, intervallo massimo) |
| 2 | max(intervallo, intervallo minimo) | min(2 × intervallo, intervallo massimo) |
| 3 | max( intervallo di 2 ×, intervallo minimo) | min(4 × intervallo, intervallo massimo) |
| 4 | max( intervallo di 4 ×, intervallo minimo) | min(8 × intervallo, intervallo massimo) |
| … | … | … |
L'intervallo raddoppia a ogni tentativo finché il limite superiore non raggiunge l'intervallo massimo tra i tentativi, dopodiché tutti i restanti nuovi tentativi attendono tale valore massimo. La selezione casuale all'interno di ogni intervallo riduce la probabilità che i tentativi concorrenti di riesecuzione della pipeline vadano in conflitto sullo stesso sistema upstream contemporaneamente.
Due campi sono disponibili quando si seleziona Ritardo Crescente:
| Campo | Description | Impostazione predefinita |
|---|---|---|
| Intervallo di ritentativo (sec) | L'intervallo iniziale. Definisce la base dell'intervallo di back-off. | 30 secondi |
| Intervallo massimo di ritenti (sec) | Il limite superiore dell'intervallo di attesa. I retry non attendono mai più a lungo di questo valore. | 3600 secondi |
Note
I campi di intervallo di ritentazione non supportano espressioni dinamiche. I valori devono essere interi statici.
Configurare le condizioni di ripetizione dei tentativi (anteprima)
Per impostazione predefinita, un'attività viene ritentata in caso di errore. Usa le condizioni di ritentativo per specificare quali errori attivano un retry. Questo approccio ti aiuta a evitare di sprecare tentativi su errori che non si risolvono, come i fallimenti di autenticazione.
Per aggiungere una condizione di ripetizione dei tentativi:
- Nella sezione Condizioni di ripetizione dei tentativi (anteprima) selezionare il + pulsante per aggiungere una nuova riga di condizione.
- Scegliere un campo da valutare:
- Messaggio di errore: contenuto di testo del messaggio di errore.
- Tipo di guasto: La categoria di guasto, come errore utente o errore di sistema.
- Codice errore: Il codice di errore specifico restituito, come 429 per la limitazione del tasso.
- Seleziona un Operatore per definire il tipo di corrispondenza, come Contains.
- Inserire un Valore da confrontare.
- Usare la colonna And/Or per combinare più condizioni. Selezionare E per richiedere che tutte le condizioni corrispondano o Oppure riprovare quando una condizione corrisponde.
Ad esempio, per riprovare solo sugli errori di limitazione della frequenza, aggiungere una condizione con Field impostato su , Error code impostato su Containse Value impostato su 429.
Importante
L'intervallo di ripetizione dei tentativi viene eseguito prima della valutazione della condizione. Ad esempio, se si imposta un intervallo di ripetizione di un'ora e la condizione per ripetere il tentativo non viene soddisfatta, la pipeline attende comunque per l'intera ora prima di procedere all'attività successiva o di terminare l'esecuzione della pipeline.
Suggerimento
Se non specifichi le condizioni per i nuovi tentativi, l'attività viene ritentata per tutti gli errori. Aggiungere condizioni per selezionare meglio quali errori attivano nuovi tentativi.
Limitazioni note per i tentativi
- Supporto attività: i tentativi condizionali sono supportati per tipi di attività specifici, tra cui le attività Copia dati, Notebook, Flusso di dati e Stored procedure.
- Proprietà degli errori: le condizioni di ripetizione dei tentativi possono corrispondere al codice di errore, al messaggio di errore e al tipo di errore. Non tutti i campi di errore specifici del connettore sono disponibili per l’abbinamento.