Utiliser la clause FROM
La clause FROM est utilisée pour effectuer une itération sur un élément d'entrée défini par un identifiant.
La clause FROM doit être structurée comme ceci :
FROM expression
Note InformationsRemarque : La clause FROM peut être utilisée avec une expression retournant un tableau, un enregistrement ou un type primitif. Avec un enregistrement ou un type primitif, la clause crée un tableau contenant un seul élément.
Dans Talend Data Mapper avec la mise à jour mensuelle 8.0.1-R2024-11 ou une plus récente, vous pouvez utiliser plusieurs collections après la clause FROM. Par exemple, la clause FROM customer, order est le produit cartésien du client et de la commande. Si le second tableau d'entrée est un enfant direct du premier tableau d'entrée, par exemple FROM order AS o, o.items AS i, la désimbrication du second tableau d'entrée est effectuée et elle est équivalente à FROM order as O UNNEST o.items AS i.
La clause FROM peut contenir d'autres mots-clés, comme AS et INDEX.
Le mot-clé AS vous permet de créer un alias pour un tableau, il peut être utilisé pour faire référence au tableau dans les clauses subséquentes. L'alias doit être unique à travers la requête et doit être défini comme suit :FROM expression AS alias
Lors de l'utilisation d'une clause FROM sans alias, tous les identifiants utilisés dans la requête sont traités comme relatifs à l'identifiant dans la clause FROM, sauf lorsqu'elle est suivie par une clause UNNEST ou lorsque l'identifiant est un chemin absolu. Par exemple, dans la requête suivante :
FROM customers
SELECT {
name,
id
}
Les éléments sélectionnées sont customers.name et customers.id. Vous obtiendrez le même résultat avec cette requête, où les données d'entrée sont nommées input :
FROM customers
SELECT {
input.customers.name,
input.customers.id
}
Le mot-clé INDEX vous permet de stocker l'index de l'itération courante dans une variable. La variable doit commencer par le caractère $ et ne peut pas être un identifiant hiérarchique. Par exemple, $item.index n'est pas une variable valide. La variable doit être unique à travers la requête. L'INDEX doit être défini comme suit :
FROM expression INDEX $variable_name
Les exemples suivants sont des clauses FROM valides :
FROM customers AS c INDEX $i
FROM 1 TO 5 AS i
FROM toArray(address_1, address_2, address_3) AS addr INDEX $i
FROM ['a', 'e', 'i', 'o', 'u', 'y' ] AS vowels
FROM order AS o, o.items AS i