Ce scénario décrit un Job Standard transformant et analysant des données JSON à l'aide du composant tDSQL4JSON.
Dans ce scénario, un jeu de données JSON liste les pays, leurs villes et leur décalage horaire par rapport à l'UTC. Vous souhaitez produire un rapport concernant les pays sur plusieurs fuseaux horaires, organisés en fonction de leurs villes et de leur décalage horaire par rapport à l'UTC.
Voici un échantillon du jeu de données JSON utilisé pour ce scénario :
Avant de commencer
Vous avez un fichier échantillon de données JSON en entrée.
Procédure
Créez un Job Standard et ajoutez-y les composants suivants :
tFileInputRaw
tDSQL4JSON
un tFileOutputRaw.
Configurer le composant tFileInputRaw :
Dans la propriété Filename, saisissez le chemin du fichier d'entrée pointant vers vos données d'échantillon JSON. Dans cet exemple, le chemin est world_time_zones_and_utc_offsets.json.
Assurez-vous que le schéma comprend une colonne contenant la structure JSON.
Configurer le composant tDSQL4JSON :
Collez le script suivant dans la propriété Script pour extraire les pays contenant plusieurs fuseaux horaires :
SELECT {
countries = (
// Iterate on the main input data collection.
FROM data
// Expand each country locations into individual records.
UNNEST locations
// Group location records by country name.
GROUP BY country_name
// Name this group for reference in subsequent clauses.
GROUP AS g_country_name
// Count the number of time zones per country with the use of a variable.
LET $nbr_of_time_zones = count(country_name)
// Filter to keep only countries with more than one time zone.
HAVING $nbr_of_time_zones > 1
// Sort results by number of time zones in descending order.
ORDER BY $nbr_of_time_zones DESC
SELECT {
country_name,
nbr_of_time_zones = $nbr_of_time_zones,
// Build a nested list of time zones for each country.
time_zones = (
// Iterate over location records within each country group.
FROM g_country_name
SELECT {
utc_offset,
// Build a nested list of cities for each time zone.
main_cities = (
// Expand the city_list array, an implicit alias city_list is automatically defined and can be used to select items.
FROM city_list
SELECT city_list
)
}
)
}
)
}
Dans le champ Sample data file, sélectionnez votre fichier JSON d'entrée afin de prévisualiser et de valider votre sortie.
Cochez la case Enable Test Run afin de vérifier les résultats avant d'exécuter le Job complet.
Configurer le composant tFileOutputRaw :
Dans la propriété Filename, saisissez le chemin d'accès au fichier de sortie pointant vers l'emplacement où vous souhaitez stocker les résultats traités.
Utilisez un schéma contenant une seule colonne si votre sortie est structurée comme un champ JSON.
Exécutez le Job.
Résultats
Un fichier de sortie est créé, listant tous les pays comprenant plusieurs fuseaux horaires et incluant leur décalage horaire par rapport à l'UTC ainsi que les villes associées :
{
"countries" : [
{
"country_name" : "Russia",
"nbr_of_time_zones" : 11,
"time_zones" : [
{
"utc_offset" : "UTC+2",
"main_cities" : [ "Kaliningrad" ]
},
{
"utc_offset" : "UTC+3",
"main_cities" : [ "Kazan", "Moscow", "Nizhny Novgorod", "Rostov-on-Don", "Saint Petersburg" ]
},
// List of other countries with more than one time zone.
]
}
Si vous rencontrez des problèmes sur cette page ou dans son contenu – une faute de frappe, une étape manquante ou une erreur technique – faites-le-nous savoir.