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 placées entre ${ }
, comme ${input_file_path}
. Pour activer la configuration dynamique des éléments, tels que les chemins d'accès aux fichiers et les noms de tables, les espaces réservés sont remplacés par des valeurs réelles au moment de l'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.
Fonctions macro
En plus des macros, vous pouvez utiliser les fonctions de macro 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 en tant que valeur de chaîne.
Si aucun paramètre n'est fourni, la fonction renvoie l'heure de début en millisecondes. Tous les paramètres sont facultatifs. La fonction accepte un format d'heure, un décalage et un fuseau horaire comme arguments, et utilise l'heure de début logique d'un pipeline pour effectuer la substitution:
${logicalStartTime([timeFormat[,offset [,timezone])}
La liste suivante indique les paramètres facultatifs pour logicalStartTime()
:
Paramètre | Description |
---|---|
timeFormat |
Modèle de format horaire, au format d'un SimpleDateFormat Java. |
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 d'une exécution de 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 1d-4h+30m
avant l'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. La macro entière s'évalue à 20, 5 heures avant minuit le 1er janvier 2020.
Utiliser logicalStartTime()
dans les plug-ins basés sur des fichiers
Le moyen le plus courant d'utiliser cette fonction est dans le champ Path (Chemin d'accès) des plug-ins basés sur des fichiers.
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 de macro.
Exemple
Dans cet exemple, vous incluez l'heure de début du pipeline, en millisecondes, dans un 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 la date actuelle.
Exemple
Dans cet exemple, vous capturez la date d'aujourd'hui dans le nom de fichier S3 suivant:
s3a://sales-data/sales_20210204.csv
Dans les propriétés du sink Amazon S3, saisissez la valeur suivante dans le champ Chemin:
s3a://sales-data/sales_${logicalStartTime(yyyyMMdd)}.csv
Utiliser logicalStartTime
pour ajouter un champ "Timestamp" (Code temporel) aux enregistrements structurés
Vous pouvez ajouter un code temporel à un enregistrement structuré à l'aide de la transformation Ajouter un champ et de logicalStartTime()
.
- Téléchargez le plug-in Field Adder Transform (Transformation d'ajout de champ) depuis le hub Cloud Data Fusion. Une fois le plug-in déployé, il apparaît dans la liste Transformer sous le nom Ajouter un champ.
- Lorsque vous configurez les propriétés du plug-in, ajoutez le code temporel à un enregistrement structuré. Par exemple, pour le nom du champ, saisissez le nom du nouveau champ, et pour la valeur du champ, saisissez la fonction de macro
logicalStartTime()
.
Fonction sécurisée
La fonction de macro secure()
reçoit une seule clé en tant qu'argument et recherche la valeur de chaîne associée à la clé dans le Secure Store.
Pour effectuer la substitution, la clé fournie en tant qu'argument doit déjà exister dans le Secure Store. Cette fonctionnalité est utile pour effectuer une substitution avec des données sensibles.
Exemple
Dans cet exemple, pour un plug-in qui se connecte à une base de données MySQL, vous configurez le champ de propriété du mot de passe avec la valeur suivante:
${secure(password)}
Cette macro extrait le mot de passe du Secure Store au moment de l'exécution.
Macros récursives
Les macros peuvent faire référence de manière récursive à d'autres macros jusqu'à dix 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. Vous fournissez les arguments d'exécution suivants, dont le dernier est une macro qui fait référence à d'autres macros:
- hostname:
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, il est remplacé par la valeur suivante:
examplepetstore.com:9991
Étape suivante
En savoir plus sur les macros, les préférences et les arguments d'exécution
Découvrez comment utiliser les modèles de plug-in.