Condividi tramite


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 all-in-one per le aziende. Microsoft Fabric copre tutto, dallo spostamento dati al data science, all'analisi in tempo reale, alla business intelligence e alla creazione di report. Vedere le informazioni su come iniziare una nuova prova gratuita!

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 della creazione di parametri Flusso di dati.

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 che mostra i parametri disponibili nella scheda Parametri.

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

Screenshot che mostra i parametri nella scheda Parametri con i nuovi parametri aggiunti.

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 che mostra l'uso dei parametri del servizio collegato nel flusso di dati.

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 che mostra la scheda Parametri con Flusso di dati espressione selezionata per il valore di 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 che mostra il riquadro generatore di espressioni.

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 che mostra il riquadro Parametri flusso di dati Espressione selezionata per un parametro.

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 che mostra la scheda Parametri in cui è possibile immettere un'ora di trigger.

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 che mostra la scheda Parametri con parametri denominati stringParam e intParam.

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

Screenshot che mostra la scheda Parametri con il valore di un b (1) selezionato.

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

Screenshot che mostra il valore delle colonne.

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)).

Passaggio di un nome di colonna come parametro

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, 'string part 1' + $variable + 'string part 2'