Makros und Makrofunktionen

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 die dynamische Konfiguration für Elemente wie Datei von Pfade und Tabellennamen werden die Platzhalter durch tatsächliche Werte ersetzt, Laufzeit.

Beim Anzeigen der Attribute eines Plug-ins können Sie jedem Eigenschaftsfeld ein Makro hinzufügen mit einem M daneben. Klicken Sie auf das 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()

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 sind optional. Die Funktion verwendet ein Zeitformat, einen Offset und einen als Argumente verwendet und anhand der logischen Startzeit einer Pipeline die Ersetzung:

${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 Offset liegt 1d-4h+30m vor der logischen Startzeit. Während der Laufzeit wird der Makrowert durch 2019-12-31T03:30:00 ersetzt, da der Offset 20,5 Stunden entspricht. 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 einem Dateinamen in Millisekunden erfassen möchten, lassen Sie die Parameter weg. in der Makrofunktion hinzu.

Beispiel

In diesem Beispiel fügen Sie die Pipeline-Startzeit in Millisekunden Amazon S3-Dateiname:

sales_012345671011.csv

Geben Sie bei den Eigenschaften der Amazon S3-Senke den folgenden Wert in den Pfad ein 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 bei den Eigenschaften der Amazon S3-Senke den folgenden Wert in den Pfad ein ein:

s3a://sales-data/sales_${logicalStartTime(yyyyMMdd)}.csv

Mit logicalStartTime ein Zeitstempelfeld zu strukturierten Einträgen hinzufügen

Über Feld hinzufügen können Sie einem strukturierten Datensatz einen Zeitstempel hinzufügen. Transformation und logicalStartTime().

  1. Rufen Sie das Plug-in Field Adder Transform von Cloud Data Fusion Hub ab. Nach der Bereitstellung des Plug-ins wird es in der Transform-Liste als Add Feld:
  2. 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 mit dem Schlüssel verknüpften Stringwert aus dem Secure Store. Um die Ersetzung durchzuführen, muss der als Argument angegebene Schlüssel bereits im Secure Store vorhanden sind. Dies ist nützlich, um eine Substitution mit sensible Daten.

Beispiel

In diesem Beispiel konfigurieren Sie für ein Plug-in, das eine Verbindung zu einer MySQL-Datenbank herstellt, das Feld für die Passworteigenschaft mit dem folgenden Wert:

${secure(password)}

Durch dieses Makro wird das Passwort zur Laufzeit aus dem sicheren Speicher abgerufen.

Rekursive Makros

Makros können bis zu zehn Ebenen rekursiv auf andere Makros verweisen. Makro Argumente werden vom innersten bis zum äußersten Argument ausgewertet.

Beispiel

In diesem Beispiel haben Sie einen Server, der auf einen Hostnamen und einen Port verweist. Ich stellen Sie die folgenden Laufzeitargumente bereit, von denen das letzte ein Makro ist, das auf zu anderen Makros:

  • Hostname: examplepetstore.com
  • Port: 9991
  • server-address: ${hostname}:${port}

In einer Pipelinekonfiguration verwenden Sie den folgenden Ausdruck:

server-address: ${server-address}

Bei der Laufzeit wird er durch den folgenden Wert ersetzt:

examplepetstore.com:9991

Nächste Schritte