Jointure des données - Amazon Quick Suite

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Jointure des données

Vous pouvez utiliser l'interface de jointure d'Amazon Quick Sight pour joindre des objets provenant d'une ou de plusieurs sources de données. En utilisant Amazon Quick Sight pour joindre les données, vous pouvez fusionner des données disparates sans dupliquer les données provenant de différentes sources.

Types de jeux de données joints

Une jointure est effectuée entre deux tables logiques Quick Sight, chaque table logique contenant des informations sur la manière de récupérer des données. Lorsque vous modifiez un jeu de données dans Quick Sight, le diagramme de jointure situé dans la moitié supérieure de la page montre chaque table logique sous la forme d'un bloc rectangulaire.

Il existe deux types de jeux de données joints dans Quick Sight : ceux provenant de sources identiques et ceux provenant de sources multiples. Un jeu de données est considéré comme étant de même source lorsqu’il ne comporte aucune jointure ou lorsque toutes les conditions suivantes sont remplies :

  • Si l'une des tables logiques fait référence à une source de données Quick Sight :

    • Toutes les tables logiques de cet ensemble de données doivent faire référence à la même source de données Quick Sight. Cela ne s'applique pas si deux sources de données Quick Sight distinctes font référence à la même base de données sous-jacente. Il doit s'agir exactement de la même source de données Quick Sight. Pour plus d’informations sur l’utilisation d’une source de données unique, consultez la rubrique Création d’un jeu de données à partir d’une source de données existante.

  • Si l'une des tables logiques fait référence à un ensemble de données Quick Sight qui est un ensemble de données parent :

    • Le jeu de données parent doit utiliser l’interrogation directe.

    • L'ensemble de données parent doit faire référence à la même source de données Quick Sight.

Si les conditions ci-dessus ne sont pas remplies, le jeu de données est considéré comme une jointure inter-sources.

Faits concernant la jonction de jeux de données

Les jointures de jeux de données de même source et de source croisée sont soumises aux limitations suivantes.

Quel est le nombre maximum de tables que peut contenir un jeu de données joint ?

Tous les jeux de données joints peuvent contenir jusqu’à 32 tables.

Quelle peut être la taille des données jointes ?

La taille maximale autorisée d’une jointure est déterminée par le mode de requête et le moteur de requête utilisés. La liste ci-dessous fournit des informations sur les différentes limites de taille pour les tables à joindre. La limite de taille s’applique à toutes les tables secondaires combinées. Il n’existe aucune limite de taille de jointure pour la table principale.

  • Tables de même source : lorsque les tables proviennent d'une seule source de données de requête, Quick Sight n'impose aucune restriction quant à la taille de la jointure. Cela ne remplace pas les limites de taille de jointure que le moteur de requête source peut avoir mises en place.

  • Jeux de données inter-sources : ce type de jointure contient des tables provenant de différentes sources de données qui ne sont pas stockées dans SPICE. Pour ces types de jointures, Quick Sight identifie automatiquement la plus grande table du jeu de données. La taille combinée de toutes les autres tables secondaires doit être inférieure à 1 Go.

  • Jeux de données stockés dans SPICE : ce type de jointure contient des tables qui sont toutes ingérées dans. SPICE La taille combinée de toutes les tables secondaires de cette jointure ne peut pas dépasser 20 Go.

Pour plus d’informations sur les calculs de jeu de données SPICE, consultez la rubrique Estimation de la taille des jeux de données SPICE.

Un jeu de données joint peut-il utiliser l’interrogation directe ?

Les jeux de données de même source prennent en charge l’interrogation directe, à condition qu’il n’y ait pas d’autres restrictions sur l’utilisation de l’interrogation directe. Par exemple, les sources de données S3 ne prennent pas en charge l’interrogation directe, de sorte qu’un jeu de données S3 de même source doit quand même utiliser SPICE.

Les jeux de données intersources doivent utiliser SPICE.

Peut-on utiliser des champs calculés dans une jointure ?

Tous les jeux de données joints peuvent utiliser des champs calculés, mais les champs calculés ne peuvent pas être utilisés dans les clauses on.

Les données géographiques peuvent-elles être utilisées dans une jointure ?

Les jeux de données de même source prennent en charge les types de données géographiques, mais les champs géographiques ne peuvent pas être utilisés dans les clauses on.

Les jeux de données inter-sources ne prennent pas en charge les données géographiques sous quelque forme que ce soit.

Pour des exemples de jointure de tables entre différentes sources de données, consultez le billet Joindre des sources de données sur Amazon Quick Sight sur le blog AWS Big Data.

Création d’une jointure

Utilisez la procédure suivante pour joindre des tables à utiliser dans un jeu de données. Avant de commencer, importez ou connectez-vous à vos données. Vous pouvez créer une jointure entre toutes les sources de données prises en charge par Amazon Quick Sight, à l'exception des données de l'Internet des objets (IoT). Par exemple, vous pouvez ajouter des fichiers de valeurs séparées par des virgules (.csv), des tables, des vues, des requêtes SQL ou des objets JSON dans un compartiment Amazon S3.

Pour ajouter une ou plusieurs jointures
  1. Ouvrez l’jeu de données avec lequel vous souhaitez travailler.

  2. (Facultatif) Avant de commencer, décidez si vous voulez désactiver l’aperçu autogénéré basé sur d’un échantillon de vos données. Pour désactiver cette fonction, choisissez Aperçu automatique en haut à droite. Elle est activée par défaut.

  3. Si vous n’avez pas encore choisi un mode d’interrogation, sélectionnez Mode d’interrogation.

    Choisissez SPICE pour stocker votre jeu de données dans SPICE, ou choisissez Requête directe pour obtenir des données en direct à chaque fois. Si votre jeu de données contient un ou plusieurs fichiers chargés manuellement, il est automatiquement stocké dans SPICE.

    Si vous le souhaitez SPICE, les données sont ingérées dans Quick Sight. Les représentations visuelles qui utilisent le jeu de données exécutent des requêtes dans SPICE, plutôt que dans la base de données.

    Si vous choisissez Requête directe, les données ne sont pas ingérées dans SPICE. Les représentations visuelles qui utilisent le jeu de données exécutent des requêtes dans la base de données et non dans SPICE.

    Si vous choisissez Mode requête, veillez à définir des clés uniques dans la jointure, le cas échéant, afin d’améliorer les performances lors du chargement des représentations visuelles.

  4. Dans la page de préparation des données, choisissez Ajouter des données.

  5. Dans la page Ajouter des données qui s’ouvre, choisissez l’une des options suivantes et suivez les étapes ci-dessous :

    • Ajouter des données à partir d’un jeu de données :

      1. Sélectionnez Jeu de données.

      2. Sélectionnez un jeu de données dans la liste.

      3. Choisissez Select (Sélectionner).

    • Ajouter des données à partir d’une source de données :

      1. Choisissez Source de données.

      2. Sélectionnez une source de données dans la liste.

      3. Choisissez Select (Sélectionner).

      4. Sélectionnez une table dans la liste.

      5. Choisissez Select (Sélectionner).

    • Créez des auto-joints en ajoutant une table plusieurs fois. Un compteur apparaît après le nom. Vous verrez par exemple Produit, Produit (2) et Produit (3). Les noms des champs dans les sections Champs ou Filtres incluent le même compteur afin que vous puissiez savoir de quelle instance de la table un champ provient.

    • Ajoutez un nouveau fichier en sélectionnant Charger un fichier, puis choisissez le fichier que vous voulez joindre.

  6. (Facultatif) Choisissez Utiliser un SQL personnalisé pour ouvrir l’éditeur de requêtes et écrire une requête pour une source de données SQL.

  7. (Facultatif) Après avoir ajouté des données, interagissez avec chaque table en sélectionnant son icône de menu. Réorganisez les tables en les faisant glisser et en les déposant.

    Une icône avec des points rouges apparaît pour indiquer que vous devez configurer cette jointure. Deux points rouges apparaissent pour les jointures qui ne sont pas encore configurées. Pour créer des jointures, sélectionnez la première icône de configuration de jointure.

  8. (Facultatif) Pour modifier une jointure existante, rouvrez le volet Configuration de la jointure en sélectionnant l’icône de jointure entre deux tables.

    Le volet Configuration de la jointure s’ouvre. Sur l’interface de jointure, spécifiez le type de jointure et les champs à utiliser pour joindre les tables.

  9. Dans le bas de l’écran, apparaissent des options permettant de créer une équivalence entre un champ d’une table et un champ d’une autre table.

    1. Dans la section Join clauses (Clauses de jointure), choisissez la colonne de jointure pour chaque table.

      (Facultatif) Si les tables que vous avez sélectionnées sont jointes sur plusieurs colonnes, choisissez Add a new join clause (Ajouter une nouvelle clause de jointure). Une ligne s’ajoute alors aux clauses de jointure, vous permettant de spécifier l’ensemble suivant de colonnes à joindre. Répétez ce processus jusqu’à ce que vous ayez identifié toutes les colonnes de jointure pour les deux objets de données.

  10. Dans le panneau Configuration de jointure, choisissez le type de jointure à appliquer. Si les champs de jointure sont une clé unique pour l’une des tables ou les deux, activez le paramètre de clé unique. Les clés uniques ne s’appliquent qu’aux requêtes directes, et non aux données SPICE.

    Pour plus d’informations sur les jointures, consultez la rubrique Types de jointures.

  11. Choisissez Apply (Appliquer) pour confirmer vos choix.

    Pour annuler sans apporter de modifications, sélectionnez Annuler.

  12. L’icône de jointure de l’espace de travail change pour indiquer la nouvelle relation.

  13. (Facultatif) Dans la section Champs, vous pouvez utiliser le menu de chaque champ pour effectuer une ou plusieurs des opérations suivantes :

    • Ajouter une hiérarchie à un champ géospatial.

    • Inclure ou Exclure le champ.

    • Modifier le nom et la description du champ.

    • Modifier le type de données.

    • Ajouter un calcul (un champ calculé).

    • Limiter l’accès à moi uniquement, afin que vous soyez le seul à pouvoir le voir. Cela peut être utile lorsque vous ajoutez des champs à un jeu de données déjà utilisé.

  14. (Facultatif) Dans la section Filtres, vous pouvez ajouter ou modifier des filtres. Pour de plus amples informations, veuillez consulter Filtrer les données dans Amazon Quick Sight.

Types de jointures

Amazon Quick Sight prend en charge les types de jointure suivants :

  • Jointures internes

  • Jointures externes à gauche et à droite

  • Jointures externes complètes

Regardons plus en détail ce que ces types de jointures font de vos données. Pour notre exemple, nous utiliserons les tables suivantes intitulées widget et safety rating.

SELECT * FROM safety-rating rating_id safety_rating 1 A+ 2 A 3 A- 4 B+ 5 B SELECT * FROM WIDGET widget_id widget safety_rating_id 1 WidgetA 3 2 WidgetB 1 3 WidgetC 1 4 WidgetD 2 5 WidgetE 6 WidgetF 5 7 WidgetG

Jointures internes

Utilisez une jointure interne lorsque vous souhaitez voir uniquement les données pour lesquelles il existe une correspondance entre deux tables. Par exemple, supposez que vous effectuez une jointure interne sur les tables safety-rating et widget.

Dans l’ensemble de résultats suivant, les widgets dépourvus d’évaluations de sécurité ne sont pas affichés et les évaluations de sécurité qui ne sont pas associées à un widget ne sont pas affichées. Seules les lignes présentant une correspondance parfaite sont incluses.

SELECT * FROM safety-rating INNER JOIN widget ON safety_rating.rating_id = widget.safety_rating_id rating_id safety_rating widget_id widget safety_rating_id 3 A- 1 WidgetA 3 1 A+ 2 WidgetB 1 1 A+ 3 WidgetC 1 2 A 4 WidgetD 2 5 B 6 WidgetF 5

Jointures externes à gauche et à droite

On dit aussi jointures gauches ou droites. Utilisez une jointure externe gauche ou droite lorsque vous souhaitez voir toutes les données d'une table et uniquement les lignes correspondantes de l'autre table.

Dans une interface graphique, vous pouvez voir quelle table est à droite ou à gauche. Dans une instruction SQL, la première table est considérée comme celle de gauche. Par conséquent, le choix d’une jointure externe à gauche ou d’une jointure externe à droite dépend uniquement de la façon dont les tables sont disposées dans votre outil de requête.

Supposons, par exemple, que vous effectuiez une jointure externe gauche sur safety-rating (le tableau de gauche) et widgets (le tableau de droite). Dans ce cas, toutes les lignes de safety-rating sont renvoyées, mais seules les lignes correspondantes dans widget. Vous pouvez voir des vides dans le jeu de résultats lorsqu’il n’y a pas de données correspondantes.

SELECT * FROM safety-rating LEFT OUTER JOIN widget ON safety_rating.rating_id = widget.safety_rating_id rating_id safety_rating widget_id widget safety_rating_id 1 A+ 2 WidgetB 1 1 A+ 3 WidgetC 1 2 A 4 WidgetD 2 3 A- 1 WidgetA 3 4 B+ 5 B 6 WidgetF 5

Si vous utilisez plutôt une jointure externe droite, appelez les tables dans le même ordre, safety-rating c'widgetsest-à-dire à gauche et à droite. Dans ce cas, seules les lignes correspondantes de safety-rating sont renvoyées, alors que toutes les lignes de widget le sont. Vous pouvez voir des vides dans le jeu de résultats lorsqu’il n’y a pas de données correspondantes.

SELECT * FROM safety-rating RIGHT OUTER JOIN widget ON safety_rating.rating_id = widget.safety_rating_id rating_id safety_rating widget_id widget safety_rating_id 3 A- 1 WidgetA 3 1 A+ 2 WidgetB 1 1 A+ 3 WidgetC 1 2 A 4 WidgetD 2 5 WidgetE 5 B 6 WidgetF 5 7 WidgetG

Jointures externes complètes

Ces jointures sont parfois simplement appelées jointures externes, mais ce terme peut faire référence à une jointure externe à gauche, à droite ou complète. Pour préciser la signification, nous utiliserons le nom complet : jointure externe complète.

Utilisez une jointure externe complète pour voir les données qui correspondent, ainsi que les données des deux tables qui ne correspondent pas. Ce type de jointure inclut toutes les lignes des deux tables. Par exemple, si vous effectuez une jointure externe complète sur les tables safety-rating et widget, toutes les lignes sont renvoyées. Les lignes sont alignées aux endroits de correspondance et toutes les données supplémentaires sont placées sur des lignes distinctes. Vous pouvez voir des vides dans le jeu de résultats lorsqu’il n’y a pas de données correspondantes.

SELECT * FROM safety-rating FULL OUTER JOIN widget ON safety_rating.rating_id = widget.safety_rating_id rating_id safety_rating widget_id widget safety_rating_id 1 A+ 2 WidgetB 1 1 A+ 3 WidgetC 1 2 A 4 WidgetD 2 3 A- 1 WidgetA 3 4 B+ 5 B 6 WidgetF 5 5 WidgetE 7 WidgetG