Macros et fonctions de macro

Les macros sont des espaces réservés dans les configurations de propriété du plug-in Cloud Data Fusion. Elles sont représentées par des variables contenues dans ${ }, telles que ${input_file_path} Pour activer la configuration dynamique d'éléments tels que les fichiers chemins d'accès et noms de tables, les espaces réservés sont remplacés par des valeurs réelles de l'environnement d'exécution.

Lorsque vous consultez les propriétés d'un plug-in, vous pouvez ajouter une macro à n'importe quel champ de propriété associé à un M. Pour ajouter la macro, cliquez sur M.

Pour en savoir plus, consultez la section Gérer les macros, les préférences et les arguments d'exécution.

Macros

Outre les macros, vous pouvez utiliser les fonctions prédéfinies suivantes:

  • logicalStartTime()
  • secure()

Fonction Heure de début logique

La fonction de macro logicalStartTime() renvoie l'heure de début logique d'une exécution. du pipeline sous forme de valeur de chaîne.

Si aucun paramètre n'est fourni, l'heure de début est renvoyée en millisecondes. Tout sont facultatifs. La fonction accepte un format d'heure, un décalage fuseau horaire en tant qu'arguments et utilise l'heure de début logique d'un pipeline pour effectuer la substitution:

${logicalStartTime([timeFormat[,offset [,timezone])}

La liste suivante présente les paramètres facultatifs pour logicalStartTime():

Paramètre Description
timeFormat Modèle de format d'heure au format Java SimpleDateFormat.
offset
Décalage temporel avant l'heure de début logique.
timezone
Fuseau horaire à utiliser pour l'heure de début logique.

Exemple

Dans cet exemple, l'heure de début logique de l'exécution d'un pipeline est 2020-01-01T00:00:00 et vous fournissez la macro suivante:

${logicalStartTime(yyyy-MM-dd'T'HH-mm-ss,1d-4h+30m)}

Le format est yyyy-MM-dd'T'HH-mm-ss et le décalage est de 1d-4h+30m avant la une heure de début logique. Au moment de l'exécution, la valeur de la macro est remplacée par 2019-12-31T03:30:00, car le décalage correspond à 20,5 heures. L'intégralité est évaluée 20, 5 heures avant minuit le 1er janvier 2020.

Utiliser logicalStartTime() dans les plug-ins basés sur des fichiers

La manière la plus courante d'utiliser cette fonction consiste à spécifier le champ Chemin d'accès dans les modèles de fichier plug-ins.

Inclure l'heure de début du pipeline en millisecondes dans un nom de fichier

Pour capturer l'heure de début réelle en millisecondes dans un nom de fichier, omettez les paramètres. dans la fonction macro.

Exemple

Dans cet exemple, vous incluez l'heure de début du pipeline, en millisecondes, dans une Nom de fichier Amazon S3:

sales_012345671011.csv

Dans les propriétés du sink Amazon S3, saisissez la valeur suivante dans le champ Chemin :

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

Inclure la date du jour dans un nom de fichier

Vous pouvez utiliser la fonction de macro logicalStartTime() dans un nom de fichier pour capturer le la date actuelle.

Exemple

Dans cet exemple, vous capturez la date du jour dans le nom de fichier S3 suivant:

s3a://sales-data/sales_20210204.csv

Dans les propriétés du récepteur Amazon S3, saisissez la valeur suivante dans le champ Chemin d'accès. :

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

Utiliser logicalStartTime pour ajouter un champ d'horodatage aux enregistrements structurés

Vous pouvez ajouter un code temporel à un enregistrement structuré à l'aide de l'option Ajouter un champ. et logicalStartTime().

  1. Obtenez le plug-in Field Adder Transform (Transformation Field Adder) depuis Cloud Data Fusion Hub. Une fois le plug-in déployé, il apparaît dans la liste Transform en tant que Add Champ.
  2. Lorsque vous configurez les propriétés du plug-in, ajoutez l'horodatage à un record (par exemple, pour le nom du champ, saisissez le nom du nouveau et saisissez la macro logicalStartTime() comme valeur du champ. .

Fonction sécurisée

La fonction de macro secure() utilise une clé unique comme argument et recherche valeur de chaîne associée à la clé provenant du magasin sécurisé. Pour effectuer la substitution, la clé fournie en tant qu'argument doit déjà dans le Secure Store. Cette fonction est utile pour effectuer une substitution des données sensibles.

Exemple

Dans cet exemple, pour un plug-in qui se connecte à une base de données MySQL, vous configurez dans le champ de la propriété "password" avec la valeur suivante:

${secure(password)}

Cette macro extrait le mot de passe du magasin sécurisé au moment de l'exécution.

Macros récursives

Les macros peuvent se référer à d'autres macros de manière récursive jusqu'à 10 niveaux. Les arguments de macro sont évalués de l'argument le plus interne à l'argument le plus externe.

Exemple

Dans cet exemple, vous disposez d'un serveur qui fait référence à un nom d'hôte et à un port. Toi fournir les arguments d'exécution suivants, dont le dernier est une macro qui fait référence à d'autres macros:

  • nom d'hôte: examplepetstore.com
  • port : 9991
  • server-address: ${hostname}:${port}

Dans une configuration de pipeline, vous utilisez l'expression suivante:

server-address: ${server-address}

Au moment de l'exécution, elle est remplacée par la valeur suivante:

examplepetstore.com:9991

Étape suivante