Impostazione dei parametri per i flussi di dati di mapping

SI APPLICA A: Azure Data Factory Azure Synapse Analytics

Suggerimento

Provare Data Factory in Microsoft Fabric, una soluzione di analisi completa per le aziende. Microsoft Fabric copre tutti gli elementi, dallo spostamento dei dati all'analisi scientifica dei dati, all'analisi in tempo reale, alla business intelligence e alla creazione di report. Scopri come avviare gratuitamente una nuova versione di valutazione .

I flussi di dati di mapping nelle pipeline di Azure Data Factory e Synapse supportano l'uso dei parametri. Definire i parametri all'interno della definizione del flusso di dati e usarli in tutte le espressioni. I valori dei parametri vengono impostati dalla pipeline chiamante tramite l'attività Esegui Flusso di dati. Sono disponibili tre opzioni per impostare i valori nelle espressioni di attività del flusso di dati:

  • Usare il linguaggio delle espressioni del flusso di controllo della pipeline per impostare un valore dinamico
  • Usare il linguaggio delle espressioni del flusso di dati per impostare un valore dinamico
  • Usare uno dei due linguaggi delle espressioni per impostare un valore letterale statico

Usare questa funzionalità per rendere i flussi di dati generici, flessibili e riutilizzabili. È possibile parametrizzare le impostazioni e le espressioni del flusso di dati con questi parametri.

Creare parametri in un flusso di dati di mapping

Per aggiungere i parametri al flusso di dati, fare clic sulla parte vuota del canvas del flusso di dati per visualizzare le proprietà generali. Nel riquadro delle impostazioni verrà visualizzata una scheda denominata Parametro. Selezionare Nuovo per generare un nuovo parametro. Per ogni parametro, è necessario assegnare un nome, selezionare un tipo e, facoltativamente, impostare un valore predefinito.

Screenshot of create Data Flow parameters.

Usare i parametri in un flusso di dati di mapping

È possibile fare riferimento ai parametri in qualsiasi espressione del flusso di dati. I parametri iniziano con $ e non sono modificabili. È possibile trovare l'elenco dei parametri disponibili all'interno del Generatore di espressioni nella scheda Parametri .

Screenshot shows the available parameters in the Parameters tab.

È possibile aggiungere rapidamente altri parametri selezionando Nuovo parametro e specificando il nome e il tipo.

Screenshot shows the parameters in the Parameters tab with new parameters added.

Uso di servizi collegati con parametri in un flusso di dati di mapping

I servizi collegati con parametri possono essere usati in un flusso di dati di mapping (per set di dati o tipi di origine inline).

Per il tipo di origine inline, i parametri del servizio collegato vengono esposti nelle impostazioni dell'attività del flusso di dati all'interno della pipeline, come illustrato di seguito.

Screenshot shows the use of linked service parameters in the data flow.

Per il tipo di origine del set di dati, i parametri del servizio collegato vengono esposti direttamente nella configurazione del set di dati.

Assegnare i valori dei parametri da una pipeline

Dopo aver creato un flusso di dati con parametri, è possibile eseguirlo da una pipeline con l'attività Esegui Flusso di dati. Dopo aver aggiunto l'attività all'area di disegno della pipeline, verranno presentati i parametri del flusso di dati disponibili nella scheda Parametri dell'attività.

Quando si assegnano valori di parametro, è possibile usare il linguaggio delle espressioni della pipeline o il linguaggio delle espressioni del flusso di dati in base ai tipi spark. Ogni flusso di dati di mapping può avere qualsiasi combinazione di parametri di espressione della pipeline e del flusso di dati.

Screenshot shows the Parameters tab with Data Flow expression selected for the value of myparam.

Parametri dell'espressione della pipeline

I parametri delle espressioni della pipeline consentono di fare riferimento a variabili di sistema, funzioni, parametri della pipeline e variabili simili ad altre attività della pipeline. Quando si fa clic su Espressione pipeline, verrà aperto uno spostamento laterale che consente di immettere un'espressione usando il generatore di espressioni.

Screenshot shows the expression builder pane.

Quando viene fatto riferimento, i parametri della pipeline vengono valutati e quindi il relativo valore viene usato nel linguaggio delle espressioni del flusso di dati. Il tipo di espressione della pipeline non deve corrispondere al tipo di parametro del flusso di dati.

Valori letterali stringa e espressioni

Quando si assegna un parametro di espressione pipeline di tipo string, per impostazione predefinita verranno aggiunte virgolette e il valore verrà valutato come valore letterale. Per leggere il valore del parametro come espressione del flusso di dati, selezionare la casella dell'espressione accanto al parametro .

Screenshot shows the Data flow parameters pane Expression selected for a parameter.

Se il parametro stringParam del flusso di dati fa riferimento a un parametro della pipeline con valore upper(column1).

  • Se l'espressione viene selezionata, $stringParam restituisce il valore di column1 in maiuscolo.
  • Se l'espressione non è selezionata (comportamento predefinito), $stringParam restituisce 'upper(column1)'

Passaggio di timestamp

Nel linguaggio delle espressioni della pipeline, le variabili di sistema, pipeline().TriggerTime ad esempio e, ad utcNow() esempio, restituiscono timestamp come stringhe nel formato 'aaaa-MM-gg'T'HH:mm:ss. SSSSSZ'. Per convertirli in parametri del flusso di dati di tipo timestamp, usare l'interpolazione di stringhe per includere il timestamp desiderato in una toTimestamp() funzione. Ad esempio, per convertire il tempo di trigger della pipeline in un parametro del flusso di dati, è possibile usare toTimestamp(left('@{pipeline().TriggerTime}', 23), 'yyyy-MM-dd\'T\'HH:mm:ss.SSS').

Screenshot shows the Parameters tab where you can enter a trigger time.

Nota

Flusso di dati possono supportare solo fino a 3 millisecondi. La left() funzione viene usata per tagliare cifre aggiuntive.

Esempio di parametro della pipeline

Si supponga di avere un parametro intParam integer che fa riferimento a un parametro della pipeline di tipo String, @pipeline.parameters.pipelineParam.

Screenshot shows the Parameters tab with parameters named stringParam and intParam.

@pipeline.parameters.pipelineParam viene assegnato un valore di in fase di abs(1) esecuzione.

Screenshot shows the Parameters tab with the value of a b s (1) selected.

Quando $intParam viene fatto riferimento in un'espressione, ad esempio una colonna derivata, restituirà abs(1) 1.

Screenshot shows the columns value.

Parametri dell'espressione del flusso di dati

Selezionare Espressione flusso di dati per aprire il generatore di espressioni del flusso di dati. Sarà possibile fare riferimento a funzioni, altri parametri e qualsiasi colonna dello schema definita in tutto il flusso di dati. Questa espressione verrà valutata così come è quando viene fatto riferimento.

Nota

Se si passa un'espressione non valida o si fa riferimento a una colonna dello schema che non esiste in tale trasformazione, il parametro restituirà null.

Passaggio di un nome di colonna come parametro

Un modello comune consiste nel passare un nome di colonna come valore di parametro. Se la colonna è definita nello schema del flusso di dati, è possibile farvi riferimento direttamente come espressione stringa. Se la colonna non è definita nello schema, usare la byName() funzione . Ricordarsi di eseguire il cast della colonna al tipo appropriato con una funzione di cast, toString()ad esempio .

Ad esempio, se si vuole eseguire il mapping di una colonna stringa in base a un parametro columnName, è possibile aggiungere una trasformazione colonna derivata uguale a toString(byName($columnName)).

Passing in a column name as a parameter

Nota

Nelle espressioni del flusso di dati, l'interpolazione di stringhe (sostituendo le variabili all'interno della stringa) non è supportata. Concatenare invece l'espressione in valori stringa. Ad esempio, usare 'string part 1' + $variable + 'string part 2'