Les relations permettent de joindre des attributs de deux jeux de données ou plus en fonction de champs ou emplacements communs. Le champ commun identifie les lignes de chaque jeu de données qui sont jointes les unes aux autres et le type de relation détermine quelles lignes sont conservées dans le jeu de données joint.
Les relations peuvent être utilisées pour ajouter des attributs d'une table de recherche à un autre jeu de données, pour combiner des attributs de deux jeux de données afin d'autoriser différents types d'analyse et pour activer l'emplacement dans des tables non spatiales. Le jeu de données joint s'affiche sous forme de jeu de données de résultat dans la fenêtre des données et vous permet de développer votre analyse en utilisant les données de tous les jeux de données joints en tant que couche unique.
Les relations peuvent être créées dans le cadre de votre analyse ou d'un processus d'ingénierie des données.
Exemple
Le chargé du traçage des contacts d'un organisme de santé publique enquête sur une épidémie de maladie infectieuse. Ce spécialiste a accès à une table de recherche comportant des données de cas (et des résultats de tests) et à un jeu de données comportant les activités et les emplacements où les contacts ont eu lieu dans les jours qui ont précédé les tests. Les deux jeux de données sont joints de sorte à ajouter les données des cas aux données des emplacements. À l'aide du jeu de données joint, le chargé du traçage des contacts peut créer une table de référence affichant les cas, les activités, les dates des activités et les résultats de test ainsi qu'une arborescence affichant le résultat de test et le nombre d'activités pour chaque cas.
Reportez-vous à la leçon Suivre la propagation d’un virus à l’aide de ArcGIS Insights pour découvrir le processus complet.
Créer une relation dans un processus d'analyse
Les relations créées dans un processus d'analyse existent uniquement dans le classeur où la jointure a été créée. Si vous voulez que le jeu de données de résultat existe en dehors du classeur, vous pouvez créer une nouvelle couche d'entités en partageant le jeu de données ou à l'aide de l'ingénierie des données.
Pour créer une relation dans un processus d'analyse, procédez comme suit :
- Ouvrez un classeur et ajoutez deux jeux de données ou plus, si nécessaire.
- Cliquez sur le bouton Create Relationships (Créer des relations) situé au-dessus de la fenêtre de données.
La fenêtre Create relationships (Créer des relations)apparaît et affiche une liste de jeux de données de votre page actuelle.
- Sélectionnez le premier jeu de données que vous voulez joindre.
Lorsque vous sélectionnez le premier jeu de donnée, la vue est mise à jour pour afficher uniquement les jeux de données éligibles pour une relation.
- Sélectionnez le deuxième jeu de données que vous voulez joindre.
Insights analyse les jeux de données que vous avez ajoutés et suggère des champs à utiliser pour la jointure, dans la mesure du possible. Les champs sont suggérés en fonction du type de données contenues dans le champ et du nom de ce dernier.
- Cliquez sur le bouton Edit relationship (Modifier la relation) pour changer les propriétés de relation suivantes :
Remarque :
Si vous ne choisissez aucun des champs suggérés, la boîte de dialogue s'ouvre automatiquement.
- Pour changer les champs de la jointure, cliquez sur les flèches des zones dans le paramètre Choose fields (Choisir des champs) et choisissez un nouveau champ.
- Pour ajouter des champs (si le jeu de données utilise une clé composite, par exemple), cliquez sur le bouton Add fields (Ajouter des champs) et choisissez les nouveaux champs dans le menu.
- Pour changer le type de jointure, sélectionnez Inner (Interne) (valeur par défaut), Full (Tout), Left (Gauche) ou Right (Droite) dans le paramètre Choose relationship type (Choisir le type de relation).
- Fermez la fenêtre Edit relationship (Modifier la relation).
- Répétez les étapes 4 à 6 pour ajouter d'autres jeux de données, si nécessaire.
- Cliquez sur Finish (Terminer) pour créer la relation.
Le nouveau jeu de données joint est ajouté à la fenêtre de données.
Créer une relation à l'aide de l'ingénierie des données
Remarque :
L’ingénierie des données est disponible dans Insights desktop. Tous les utilisateurs de Insights in ArcGIS Online et Insights in ArcGIS Enterprise ont accès à Insights desktop. Pour plus d’informations, reportez-vous à la rubrique Vue d’ensemble de ArcGIS Insights.
L’ingénierie des données existe actuellement en mode Aperçu.
L’outil Créer des relations peut être ajouté à un modèle de données et utilisé pour joindre deux jeux de données ou plus afin de créer un jeu de données en sortie unique.
Pour créer une relation dans un processus d'ingénierie des données, procédez comme suit :
- Ouvrez un classeur de données dans Insights desktop et ajoutez des données, si nécessaire.
- Dans la barre d’outils du classeur de données, cliquez sur le bouton Create relationships (Créer des relations) .
La fenêtre Create relationships (Créer des relations) apparaît.
- Sur la barre d’outils latérale, cliquez sur le bouton Data pane (Fenêtre de données) pour ouvrir la fenêtre de données, si nécessaire.
- Dans la fenêtre de données, sélectionnez le premier jeu de données que vous voulez joindre.
- Sélectionnez le deuxième jeu de données que vous voulez joindre.
Insights analyse les jeux de données que vous avez ajoutés et suggère des colonnes à utiliser pour la jointure, dans la mesure du possible. Les colonnes sont suggérées en fonction du type de données contenues dans la colonne et du nom de cette dernière.
- Cliquez sur le bouton Edit relationship (Modifier la relation) pour changer les propriétés de relation suivantes :
Remarque :
Si vous ne choisissez aucune des colonnes suggérées, la boîte de dialogue s'ouvre automatiquement.
- Pour changer les colonnes de la jointure, cliquez sur les flèches des zones dans le paramètre Choose columns (Choisir des colonnes) et choisissez une nouvelle colonne.
- Pour ajouter des colonnes (si le jeu de données utilise une clé composite, par exemple), cliquez sur le bouton Add columns (Ajouter des colonnes) et choisissez les nouvelles colonnes dans le menu.
- Pour changer le type de jointure, sélectionnez Inner (Interne) (valeur par défaut), Full (Tout), Left (Gauche) ou Right (Droite) dans le paramètre Choose relationship type (Choisir le type de relation).
- Fermez la fenêtre Edit relationship (Modifier la relation).
- Répétez les étapes 5 à 7 pour ajouter d'autres jeux de données, si nécessaire.
- Facultatif : cliquez sur Preview (Aperçu) pour créer une vue du jeu de données de résultat à partir des paramètres de jointure actuels.
- Cliquez sur Finish (Terminer) pour créer la relation.
Le nouveau jeu de données joint est ajouté à la fenêtre de données et la table apparaît. L’outil est ajouté au modèle de données.
Données prises en charge
Vous pouvez utiliser les types de données suivants pour créer des relations :
- Couches d’entités
- Fichiers ajoutés à votre classeur
- Jeux de données provenant d’une connexion (disponible dans Insights in ArcGIS Enterprise et dans Insights desktop)
- Jeux de données de résultat de l’analyse spatiale, notamment les résultats de types de données non pris en charge
Les ensembles de définition des services d’entités ne sont pas pris en charge pour la création de relations. Les données de votre classeur qui ne sont pas prises en charge pour les relations seront désactivées dans la fenêtre Create relationships (Créer des relations).
Remarque :
Les relations ne sont pas prises en charge dans les processus d'analyse pour les sources de données suivantes :
- Couches d’entités distantes, telle que les couches ArcGIS Living Atlas.
- Tables de base de données qui ne proviennent pas de la même base de données et de la même instance.
- Jeux de données de data stores différents.
Si vos jeux de données ne peuvent pas être joints dans un processus d'analyse, vous pouvez copier les jeux de données dans votre classeur et utiliser les jeux de données copiés pour créer la relation. Vous pouvez également joindre des jeux de données de base de données ou de data stores différents à l’aide de l'ingénierie des données.
Types de relations
Le type de relation que vous utilisez, ainsi que le champ commun que vous choisissez, déterminent les enregistrements que vous conservez dans le jeu de données joint. Les types de relation pris en charge dans Insights sont les suivants : Inner (Interne), Full (Tout), Left (Gauche) et Right (Droite).
Remarque :
Les jointures spatiales (jointures réalisées avec des champs d’emplacement) sont créées avec la relation spatiale Intersects (Intersecte). Vous pouvez toutefois sélectionner le type de relation Interne, Tout, Gauche ou Droite.
Les sous-sections suivantes indiquent les résultats de la jointure de deux tables à l'aide d'un champ commun pour chaque type de relation.
La première table (Ordres) suit les transactions opérées dans les différentes agences. La table inclut un identifiant unique pour chaque transaction, le code de l'agence ou la transaction a eu lieu, le coût de la transaction en dollars et le mode de paiement.
Ordres
ID de l'ordre | Code de l'agence | Montant total (en USD) | Mode de paiement |
---|---|---|---|
1204 | 1 | 91,48 | Crédit |
1295 | 1 | 103,86 | Crédit |
1316 | 3 | 97,81 | Debit |
1406 | 2 | 103,24 | Crédit |
1421 | 2 | 44,95 | Cash |
1426 | 2 | 153,71 | Debit |
1454 | 3 | 168,95 | Crédit |
1533 | 7 | 32,99 | Cash |
La deuxième table (Agences) est une table de recherche qui contient les codes numériques des agences et leurs sites géographiques.
Agences
Code de l'agence | Site de l'agence |
---|---|
1 | Redlands |
2 | Portland |
3 | Washington, DC |
4 | Arlington |
5 | Charlotte |
6 | Denver |
Le champ Code de l'agence est partagé par les deux tables et sert à créer la jointure. Dans chaque exemple, la table Ordres se trouve dans la partie gauche de la jointure.
Interne
Cette relation conserve uniquement les enregistrements correspondant aux deux jeux de données. Les enregistrements null ne sont pas ajoutés.
Le type de relation est Inner (Interne) par défaut.
La table suivante illustre le résultat d'une jointure avec le type de relation Inner (Interne) entre les tables Ordres et Agences :
ID de l'ordre | Code de l'agence | Montant total (en USD) | Mode de paiement | Site de l'agence |
---|---|---|---|---|
1204 | 1 | 91,48 | Crédit | Redlands |
1295 | 1 | 103,86 | Crédit | Redlands |
1316 | 3 | 97,81 | Debit | Washington, DC |
1406 | 2 | 103,24 | Crédit | Portland |
1421 | 2 | 44,95 | Cash | Portland |
1426 | 2 | 153,71 | Debit | Portland |
1454 | 3 | 168,95 | Crédit | Washington, DC |
Les enregistrements qui ont été exclus sont ceux correspondant au code d'agence 7 dans la table Ordres et aux code d'agence 4, 5 et 6 de la table Agences, car ils n'existent pas dans les deux tables.
Complet
Le type de relation Full (Tout) (jointure extérieure complète) conserve tous les enregistrements des deux jeux de données et ajoute des valeurs null lorsqu'il n'existe pas de correspondance.
La table suivante illustre le résultat d'une jointure avec le type de relation Full (Tout) entre les tables Ordres et Agences :
ID de l'ordre | Code de l'agence | Montant total (en USD) | Mode de paiement | Site de l'agence |
---|---|---|---|---|
<Nul> | 4 | <Nul> | Arlington | |
<Nul> | 5 | <Nul> | Charlotte | |
<Nul> | 6 | <Nul> | Denver | |
1204 | 1 | 91,48 | Crédit | Redlands |
1295 | 1 | 103,86 | Crédit | Redlands |
1316 | 3 | 97,81 | Debit | Washington, DC |
1406 | 2 | 103,24 | Crédit | Portland |
1421 | 2 | 44,95 | Cash | Portland |
1426 | 2 | 153,71 | Debit | Portland |
1454 | 3 | 168,95 | Crédit | Washington, DC |
1533 | 7 | 32,99 | Cash | <Nul> |
Le jeu de données qui en résulte contient des valeurs null pour les codes d'agence 4, 5, 6 et 7 car ces codes d'agence ne figurent pas dans les deux jeux de données.
Gauche
Le type de relation Left (Gauche) (jointure extérieure gauche) conserve tous les enregistrements de la table de gauche et les enregistrements correspondants de la table de droite. S'il n'existe aucune valeur correspondante dans la table de droite, des valeurs null sont utilisées.
Lorsque vous utilisez le type de relation Left (Gauche), vous devez vous assurer que la table de laquelle vous voulez conserver tous les enregistrements se trouve sur le côté gauche de la jointure en sélectionnant cette table en premier.
La table suivante illustre le résultat d'une jointure avec le type de relation Left (Gauche) entre les tables Ordres et Agences :
ID de l'ordre | Code de l'agence | Montant total (en USD) | Mode de paiement | Site de l'agence |
---|---|---|---|---|
1204 | 1 | 91,48 | Crédit | Redlands |
1295 | 1 | 103,86 | Crédit | Redlands |
1316 | 3 | 97,81 | Debit | Washington, DC |
1406 | 2 | 103,24 | Crédit | Portland |
1421 | 2 | 44,95 | Cash | Portland |
1426 | 2 | 153,71 | Debit | Portland |
1454 | 3 | 168,95 | Crédit | Washington, DC |
1533 | 7 | 32,99 | Cash | <Nul> |
Le jeu de données qui en résulte contient une valeur null pour le code d'agence 7 car ce code d'agence ne figure pas dans le jeu de données Agences.
Droite
Le type de relation Right (Droite) (jointure extérieure droite) conserve tous les enregistrements de la table de droite et les enregistrements correspondants de la table de gauche. S'il n'existe aucune valeur correspondante dans la table de gauche, des valeurs null sont utilisées.
Lorsque vous utilisez le type de relation Right (Droite), vous devez vous assurer que la table de laquelle vous voulez conserver tous les enregistrements se trouve sur le côté droit de la jointure en sélectionnant cette table en deuxième.
La table suivante illustre le résultat d'une jointure avec le type de relation Right (Droite) entre les tables Ordres et Agences :
ID de l'ordre | Montant total (en USD) | Mode de paiement | Code de l'agence | Site de l'agence |
---|---|---|---|---|
<Nul> | <Nul> | 4 | Arlington | |
<Nul> | <Nul> | 5 | Charlotte | |
<Nul> | <Nul> | 6 | Denver | |
1204 | 91,48 | Crédit | 1 | Redlands |
1295 | 103,86 | Crédit | 1 | Redlands |
1316 | 97,81 | Debit | 3 | Washington, DC |
1406 | 103,24 | Crédit | 2 | Portland |
1421 | 44,95 | Cash | 2 | Portland |
1426 | 153,71 | Debit | 2 | Portland |
1454 | 168,95 | Crédit | 3 | Washington, DC |
Le jeu de données qui en résulte contient une valeur null pour les codes d'agence 4, 5 et 6 car ces codes d'agence ne figurent pas dans le jeu de données Ordres.
Limitations
Vous pouvez spécifier jusqu’à six paires de champs pour les jointures attributaires. Pour les jointures spatiales, vous ne pouvez spécifier qu’une paire de champs de localisation, et aucun autre champ.
Bonnes pratiques
Une meilleure pratique consiste à placer le jeu de données le plus détaillé à gauche dans la jointure. Dans l'exemple du type de relation, la table Ordres est à gauche.
Utilisez plusieurs champs pour créer des jointures si un champ seul n'est pas un champ unique. Par exemple, si vous joignez City Name (Nom de ville) à City Name (Nom de ville), vous devrez peut-être préciser une région, un état ou un pays, car les valeurs du champ City Name (Nom de ville) sont dupliquées dans le jeu de données.
Tenez compte de la cardinalité (relation de type un vers un, un vers plusieurs ou plusieurs vers plusieurs) d'une jointure pour déterminer les visualisations à créer avec le jeu de données joint. La cardinalité n’affecte en rien le type de relation (interne, tout, gauche ou droite), mais elle a des incidences sur l'agrégation des champs dans le jeu de données joint ou l'affichage des champs sur votre carte. Par exemple, si les jeux de données joints ont une relation de type un vers plusieurs ou plusieurs vers plusieurs, les visualisations qui agrègent les données, comme les graphiques à barres, risquent d'afficher des statistiques artificiellement élevées.
Vous avez un commentaire à formuler concernant cette rubrique ?