Processeur Joindre des jeux de données
Ce processeur vous permet de joindre deux jeux de données en fonction d'un ou plusieurs champs communs aux deux jeux de données.
Notez que ce processeur n'est plus limité par le nombre d'enregistrements dans le jeu de données distant ! Vous pouvez désormais facilement croiser vos propres jeux de données avec de grands jeux de données distants, tels que le SIREN (un annuaire de codes d'identification pour chaque entreprise en France).
Par exemple, imaginez que vous souhaitiez enrichir le jeu de données A avec des données du jeu de données B. Si les deux jeux de données ont un champ en commun, il est possible de les joindre, et ainsi de pouvoir combiner d'autres données du jeu de données B avec celles du jeu de données A.
Notez que si vous utilisez ce processeur pour joindre votre jeu de données avec un autre contenant des géoformes, cela peut considérablement augmenter la mémoire utilisée par votre jeu de données. Si vous avez besoin de géoformes pour produire une carte mais souhaitez éviter ce problème, rappelez-vous que vous pouvez créer votre carte dans Studio, où Opendatasoft vous propose des options pour les données géographiques.
Configuration du processeur
Définissez les paramètres du processeur de jointure de votre jeu de données, selon les informations dans le tableau ci-dessous.
Étiquette | Description | Obligatoire |
Jeu de données | Jeu de données utilisé pour la jointure. Il peut être sélectionné parmi les jeux de données du portail ou du réseau Opendatasoft. | Oui |
Clés locales | Champ local pour les enregistrements que vous souhaitez utiliser pour joindre l'autre jeu de données. Plus d'une clé peut être spécifiée. | Oui |
Clés distantes | Champ distant utilisé pour identifier les enregistrements correspondants dans le jeu de données distant. Plus d'une clé peut être spécifiée. | Oui |
Récupérer tous les champs lors de la publication | Cochez cette case pour récupérer tous les champs du jeu de données distant | Non |
Champs de sortie | Liste des champs à récupérer du jeu de données distant | Oui |
Préfixe des champs de sortie | Vous pouvez ajouter un préfixe à ajouter aux champs de sortie. Cela vous permet de faire plusieurs jointures avec le même jeu de données distant et de récupérer les mêmes champs distants. Voir ci-dessous un exemple. | Non |
Sensible à la casse | Détermine la manière dont les clés de jointure sont comparées. Coché par défaut. Décochez ce paramètre pour comparer les clés de jointure en minuscules. Nous recommandons de ne désactiver les comparaisons sensibles à la casse que lorsque les clés de jointure sont des champs de texte susceptibles de contenir des données en minuscules et en majuscules (par exemple, des noms, des descriptions). Le mode insensible à la casse est plus lent et plus gourmand en ressources, et n'est pas nécessaire pour les valeurs numériques ou les codes standardisés. | Non |
Multivalué et Séparateur | Dans certains cas, le jeu de données distant peut contenir plus d'une ligne correspondant à la clé locale. Dans ce cas, vous pouvez décider de les lister sur une seule ligne, séparés par le symbole que vous choisissez. Par défaut, c'est "/". | Non |
Retraiter tous les enregistrements lors des mises à jour planifiés | Déclenche un re-traitement complet de tous les enregistrements lors de la publication si le jeu de données distant a changé (si non sélectionné, le mode incrémental est utilisé par défaut).
| Non |
Exemple d'une jointure simple
Jeu de données A : liste des stations de taxi à Paris (nom du jeu de données : paris_taxis_stations).
station_id | station_name | station_address |
1 | Tour Eiffel | 69 quai Branly, 75007 Paris |
2 | Rennes - Montparnasse | 1 place du dix-huit Juin 1940, 75006 Paris |
Jeu de données B : nombre de taxis en attente par station à Paris.
station_id | number |
1 | 10 |
2 | 15 |
Jeu de données A après avoir été enrichi avec un champ du jeu de données B, en utilisant le processeur de jointure de jeu de données :
station_id | number | station_name | station_address |
1 | 10 | Tour Eiffel | 69 quai Branly, 75007 Paris |
2 | 15 | Rennes - Montparnasse | 1 place du dix-huit Juin 1940, 75006 Paris |
Exemple d'une jointure avec le paramètre "Multivalué" défini
Le jeu de données A contient deux lignes pour la première station :
station_id | station_name | station_address |
1 | Tour Eiffel | 69 quai Branly, 75007 Paris |
1 | Quai Branly | 69 quai Branly, 75007 Paris |
2 | Rennes - Montparnasse | 1 place du dix-huit Juin 1940, 75006 Paris |
Si "Multivalué" est défini (avec "|
" comme séparateur), la jointure donnera :
station_id | number | station_name | station_address |
1 | 10 | Tour Eiffel|Quai Branly | 69 quai Branly, 75007 Paris|69 quai Branly, 75007 Paris |
2 | 15 | Rennes - Montparnasse | 1 place du dix-huit Juin 1940, 75006 Paris |
Cependant, si "Multivalué" n'est pas défini, la jointure donnera :
station_id | number | station_name | station_address |
1 | 10 | Tour Eiffel | 69 quai Branly, 75007 Paris |
1 | 10 | Quai Branly | 69 quai Branly, 75007 Paris |
2 | 15 | Rennes - Montparnasse | 1 place du dix-huit Juin 1940, 75006 Paris |
Un exemple d'utilisation de l'option de préfixe de champs de sortie
Vous souhaiterez peut-être effectuer plusieurs jointures dans un seul jeu de données basé sur le même champ. Dans l'exemple ci-dessous, nous avons un jeu de données listant les stations terminus (départ et arrivée) pour chaque ligne de métro parisien.
line_id | station_name_start | station_name_end |
4 | Bagneux | Porte de Clignancourt |
Imaginons que pour chaque ligne de métro, je souhaite enrichir mon jeu de données avec l'adresse de chaque station terminus. J'ai accès à un second jeu de données avec les adresses de chaque station dans l'ensemble du réseau.
station_id | station_name | station_address |
3 | Bagneux | 1 rue du Verdun, 92220 Bagneux |
5 | Porte de Clignancourt | 83 Bd Ornano, 75018 Paris |
Pour récupérer l'adresse de la station de départ, nous créons une jointure avec le second jeu de données en utilisant "station_name" et "station_name_start" comme clés de jointure, avec "station_address" comme champ de sortie.
Mais lorsque je crée une seconde jointure pour récupérer l'adresse de la station d'arrivée, j'obtiendrai le même champ de sortie "station_address"—et cela écrasera le précédent. Au lieu de cela, je peux utiliser l'option "Préfixe des champs de sortie" pour distinguer les deux champs de sortie consécutifs.
Dans la première jointure, j'ajoute le préfixe "START_", et dans la seconde, j'ajoute "END_". De cette manière, je peux effectuer deux jointures autrement identiques et les distinguer dans mon jeu de données final.
line_id | station_name_start | station_name_end | START_station_address | END_station_address |
4 | Bagneux | Porte de Clignancourt | 69 quai Branly, 75007 Paris | 1 place du dix-huit Juin 1940, 75006 Paris |
Puis-je joindre des champs de types différents ?
Oui. Idéalement, vous devriez faire correspondre les types de champs pour éviter tout comportement inattendu. Cependant, les entiers, les décimales et les champs de texte contenant des valeurs numériques peuvent être joints ensemble.
Notez qu'auparavant, les champs de texte ne prenaient pas en compte les zéros au début d'une valeur, de sorte que la valeur textuelle "01262" correspondait à la valeur entière "1262". Ce n'est plus le cas.
Lorsqu'une valeur de champ de texte commence par un zéro, le zéro est pris en compte dans une jointure avec une valeur numérique.