Le macro sono segnaposto all'interno delle configurazioni delle proprietà del plug-in di Cloud Data Fusion. Sono rappresentate da variabili racchiuse all'interno di ${ }
, ad esempio
${input_file_path}
. Per abilitare la configurazione dinamica per elementi come percorsi di file e nomi di tabelle, i segnaposto vengono sostituiti con valori effettivi in fase di runtime.
Quando visualizzi le proprietà di un plug-in, puoi aggiungere una macro a qualsiasi campo della proprietà con accanto una M. Per aggiungere la macro, fai clic sulla M.
Per ulteriori informazioni, consulta Gestire le macro, le preferenze e gli argomenti di runtime.
Funzioni macro
Oltre alle macro, puoi utilizzare le seguenti funzioni macro predefinite:
logicalStartTime()
secure()
Funzione Logical Start Time (Ora di inizio logico)
La funzione macro logicalStartTime()
restituisce l'ora di inizio logica di un'esecuzione
della pipeline come valore stringa.
Se non viene fornito alcun parametro, viene restituita l'ora di inizio in millisecondi. Tutti i parametri sono facoltativi. La funzione richiede un formato ora, un offset e un fuso orario come argomenti e utilizza l'ora di inizio logica di una pipeline per eseguire la sostituzione:
${logicalStartTime([timeFormat[,offset [,timezone])}
Il seguente elenco mostra i parametri facoltativi per logicalStartTime()
:
Parametro | Descrizione |
---|---|
timeFormat |
Il pattern del formato dell'ora, nel formato Java SimpleDateFormat . |
offset |
Offset temporale precedente all'ora di inizio logica. |
timezone |
Fuso orario da utilizzare per l'ora di inizio logica. |
Esempio
In questo esempio, l'ora di inizio logica dell'esecuzione di una pipeline è
2020-01-01T00:00:00
e fornisci la seguente macro:
${logicalStartTime(yyyy-MM-dd'T'HH-mm-ss,1d-4h+30m)}
Il formato è yyyy-MM-dd'T'HH-mm-ss
e l'offset è 1d-4h+30m
prima dell'ora di inizio logica. In fase di runtime, il valore della macro viene sostituito con 2019-12-31T03:30:00
perché l'offset si traduce in 20,5 ore. L'intera macro viene valutata 20, 5 ore prima della mezzanotte del 1° gennaio 2020.
Utilizzo di logicalStartTime()
in plug-in basati su file
Il modo più comune per utilizzare questa funzione è nel campo Percorso nei plug-in basati su file.
Inclusione dell'ora di inizio della pipeline in millisecondi in un nome file
Per acquisire l'ora di inizio effettiva in millisecondi in un nome file, ometti i parametri nella funzione macro.
Esempio
In questo esempio, includi l'ora di inizio della pipeline, in millisecondi, in un nome file Amazon S3:
sales_012345671011.csv
Nelle proprietà del sink di Amazon S3, inserisci il seguente valore nel campo Percorso:
s3a://sales-data/sales_${logicalStartTime()}.csv
Inclusione della data odierna in un nome file
Puoi utilizzare la funzione macro logicalStartTime()
in un nome file per acquisire la
data corrente.
Esempio
In questo esempio, acquisisci la data odierna nel seguente nome file S3:
s3a://sales-data/sales_20210204.csv
Nelle proprietà del sink di Amazon S3, inserisci il seguente valore nel campo Percorso:
s3a://sales-data/sales_${logicalStartTime(yyyyMMdd)}.csv
Utilizzo di logicalStartTime
per aggiungere un campo Timestamp ai record strutturati
Puoi aggiungere il timestamp a un record strutturato utilizzando la trasformazione Aggiungi campo e logicalStartTime()
.
- Ottieni il plug-in Field Adder Transform (Trasformazione Field Adder) dall'hub Cloud Data Fusion. Dopo aver eseguito il deployment, il plug-in viene visualizzato nell'elenco Trasforma come Add Field.
- Quando configuri le proprietà del plug-in, aggiungi il timestamp a un record strutturato. Ad esempio, inserisci il nome del nuovo campo per il nome del campo e la funzione macro
logicalStartTime()
per il valore del campo.
Funzione di sicurezza
La funzione macro secure()
prende una singola chiave come argomento e cerca il valore della stringa associato alla chiave dal Secure Store.
Per eseguire la sostituzione, la chiave fornita come argomento deve già
esistere nel Secure Store. Questo è utile per eseguire una sostituzione con dati sensibili.
Esempio
In questo esempio, per un plug-in che si connette a un database MySQL, configuri il campo della proprietà della password con il seguente valore:
${secure(password)}
Questa macro estrae la password da Secure Store in fase di runtime.
Macro ricorsive
Le macro possono fare riferimento in modo ricorsivo ad altre macro fino a un massimo di dieci livelli. Gli argomenti macro vengono valutati dall'argomento più interno a quello più esterno.
Esempio
In questo esempio, hai un server che fa riferimento a un nome host e a una porta. Fornisci i seguenti argomenti di runtime, l'ultimo dei quali è una macro che fa riferimento ad altre macro:
- nome host:
examplepetstore.com
- porta:
9991
- indirizzo-server:
${hostname}:${port}
In una configurazione di pipeline, utilizzi la seguente espressione:
server-address: ${server-address}
In fase di runtime, viene sostituito con il seguente valore:
examplepetstore.com:9991
Passaggi successivi
Scopri di più su macro, preferenze e argomenti di runtime.
Scopri come utilizzare i modelli plug-in.