Scinder une boucle dans une map DSQL
Mappez plusieurs boucles à une seule boucle.
Avant de commencer
- Vous avez créé des structures d'entrée et de sortie. Vous pouvez utiliser les échantillons JSON ci-dessous pour créer vos structures.
Pourquoi et quand exécuter cette tâche
{
"bicycles": [
{
"make": "MBIKE",
"description": "27.5 inch electric mountain bike",
"color": "blue",
"price": 899.99
},
{
"make": "EBIKE",
"description": "Electric hybrid bike",
"color": "grey/green",
"price": 999.99
},
{
"make": "WBIKE",
"description": "Women's road bike",
"color": "white",
"price": 299.99
}
],
"scooters": [
{
"make": "ESCOOT",
"description": "Camou electric scooter",
"color": "black",
"price": 749
},
{
"make": "EVSCOOT",
"description": "Folding electric velocity+ scooter",
"color": "black",
"price": 599.99
},
{
"make": "KSCOOT",
"description": "24 volt kid scooter",
"color": "white",
"price": 299.99
}
]
}
La structure de sortie ressemble à ceci :
{
"items": [
{
"make": "",
"description": "",
"price": ""
}
]
}
Procédure
Résultats
{
"items":[
{
"make":"MBIKE",
"description":"27.5 inch electric mountain bike",
"price":"899.99"
},
{
"make":"EBIKE",
"description":"Electric hybrid bike",
"price":"999.99"
},
{
"make":"WBIKE",
"description":"Women's road bike",
"price":"299.99"
},
{
"make":"ESCOOT",
"description":"Camou electric scooter",
"price":"749.0"
},
{
"make":"EVSCOOT",
"description":"Folding electric velocity+ scooter",
"price":"599.99"
},
{
"make":"KSCOOT",
"description":"24 volt kid scooter",
"price":"299.99"
}
]
}
Vous pouvez également consulter la vue DSQL Script (Script DSQL) pour voir comment cela est géré avec Data Shaping Query Language et l'utilisation de la clause UNION ALL. Pour plus d'informations, consultez le Guide de référence de Talend Data Shaping Language. Dans cet exemple, le script suivant est généré :
FROM itemsbycategory
SELECT {
items = (
FROM bicycles
SELECT {
make = make,
description = description,
price = price
}
UNION ALL
FROM scooters
SELECT {
make = make,
description = description,
price = price
}
)
}