Makros sind Platzhalter innerhalb der Plug-in-Eigenschaft von Cloud Data Fusion
Konfigurationen. Sie werden durch Variablen dargestellt, die in ${ }
eingeschlossen sind, z. B. ${input_file_path}
. Um eine dynamische Konfiguration für Elemente wie Dateipfade und Tabellennamen zu ermöglichen, werden die Platzhalter zur Laufzeit durch tatsächliche Werte ersetzt.
Beim Anzeigen der Attribute eines Plug-ins können Sie jedem Eigenschaftsfeld ein Makro hinzufügen mit einem M daneben. Klicken Sie auf M, um das Makro hinzuzufügen.
Weitere Informationen finden Sie unter Makros, Einstellungen und Laufzeitargumente verwalten.
Makrofunktionen
Zusätzlich zu Makros können Sie die folgenden vordefinierten Makrofunktionen verwenden:
logicalStartTime()
secure()
Funktion „Logische Startzeit“
Die Makrofunktion logicalStartTime()
gibt den logischen Beginn einer Ausführung zurück
der Pipeline als Stringwert.
Wenn keine Parameter angegeben werden, wird die Startzeit in Millisekunden zurückgegeben. Alle Parameter sind optional. Die Funktion nimmt ein Zeitformat, einen Zeitversatz und eine Zeitzone als Argumente an und verwendet die logische Startzeit einer Pipeline für die Umwandlung:
${logicalStartTime([timeFormat[,offset [,timezone])}
In der folgenden Liste sind die optionalen Parameter für logicalStartTime()
aufgeführt:
Parameter | Beschreibung |
---|---|
timeFormat |
Das Zeitformatmuster im Format eines Java- SimpleDateFormat . |
offset |
Zeitoffset vor der logischen Startzeit. |
timezone |
Zeitzone, die für die logische Startzeit verwendet werden soll. |
Beispiel
In diesem Beispiel ist die logische Startzeit einer Pipelineausführung
2020-01-01T00:00:00
und Sie stellen das folgende Makro bereit:
${logicalStartTime(yyyy-MM-dd'T'HH-mm-ss,1d-4h+30m)}
Das Format ist yyyy-MM-dd'T'HH-mm-ss
und der Versatz ist 1d-4h+30m
vor dem
logische Startzeit liegt. Zur Laufzeit wird der Makrowert durch
2019-12-31T03:30:00
, da sich der Offset auf 20,5 Stunden auswirkt. Das gesamte Makro ergibt 20,5 Stunden vor Mitternacht des 1. Januar 2020.
logicalStartTime()
in dateibasierten Plug-ins verwenden
Am häufigsten wird diese Funktion im Feld Pfad in dateibasierten Plug-ins.
Pipeline-Startzeit in Millisekunden in einen Dateinamen aufnehmen
Wenn Sie die tatsächliche Startzeit in Millisekunden in einem Dateinamen erfassen möchten, lassen Sie die Parameter in der Makrofunktion weg.
Beispiel
In diesem Beispiel geben Sie die Startzeit der Pipeline in Millisekunden in einem Amazon S3-Dateinamen an:
sales_012345671011.csv
Geben Sie in den Eigenschaften des Amazon S3-Sinks im Feld Pfad den folgenden Wert ein:
s3a://sales-data/sales_${logicalStartTime()}.csv
Das heutige Datum in einen Dateinamen aufnehmen
Sie können die Makrofunktion logicalStartTime()
in einem Dateinamen verwenden, um das Ereignis
Datum.
Beispiel
In diesem Beispiel wird das heutige Datum im folgenden S3-Dateinamen erfasst:
s3a://sales-data/sales_20210204.csv
Geben Sie in den Eigenschaften des Amazon S3-Sinks im Feld Pfad den folgenden Wert ein:
s3a://sales-data/sales_${logicalStartTime(yyyyMMdd)}.csv
Mit logicalStartTime
ein Zeitstempelfeld zu strukturierten Einträgen hinzufügen
Sie können einem strukturierten Datensatz mithilfe der Transformation Feld hinzufügen und logicalStartTime()
einen Zeitstempel hinzufügen.
- Laden Sie das Plug-in Field Adder Transform (Feldadditionstransformation) aus dem Cloud Data Fusion Hub herunter. Nach der Bereitstellung des Plug-ins wird es in der Transform-Liste als Add Feld:
- Fügen Sie beim Konfigurieren der Plug-in-Attribute den Zeitstempel
Datensatz: Geben Sie für den Feldnamen z. B. den Namen des neuen
und geben Sie als Feldwert das Makro
logicalStartTime()
ein. .
Funktion sichern
Die Makrofunktion secure()
übernimmt einen einzelnen Schlüssel als Argument und sucht nach
den zugehörigen Stringwert des Schlüssels aus dem Secure Store.
Um die Ersetzung durchzuführen, muss der als Argument angegebene Schlüssel bereits
im Secure Store vorhanden sind. Das ist nützlich, wenn Sie eine Substitution mit sensiblen Daten ausführen möchten.
Beispiel
In diesem Beispiel konfigurieren Sie für ein Plug-in, das eine Verbindung zu einer MySQL-Datenbank herstellt, das Feld „password“ mit dem folgenden Wert:
${secure(password)}
Dieses Makro ruft das Passwort zur Laufzeit aus dem Secure Store ab.
Rekursive Makros
Makros können bis zu zehn Ebenen rekursiv auf andere Makros verweisen. Makroargumente werden vom innersten zum äußersten Argument ausgewertet.
Beispiel
In diesem Beispiel haben Sie einen Server, der auf einen Hostnamen und einen Port verweist. Sie geben die folgenden Laufzeitargumente an, wobei das letzte ein Makro ist, das sich auf andere Makros bezieht:
- Hostname:
examplepetstore.com
- port:
9991
- server-address:
${hostname}:${port}
In einer Pipelinekonfiguration verwenden Sie den folgenden Ausdruck:
server-address: ${server-address}
Zur Laufzeit wird er durch den folgenden Wert ersetzt:
examplepetstore.com:9991