Aller au contenu

Table Anti Join fournit l’ensemble des éléments sans correspondance entre deux tables. Elle renvoie la liste des éléments de la première table qui n’ont pas de correspondance dans la seconde. C’est très utile pour déterminer quels enregistrements sont présents dans une table mais absents d’une autre.

Cette opération pourrait être réalisée avec des jointures externes et un filtrage sur les valeurs nulles de la jointure ; l’étape Anti Join le fait toutefois de manière plus efficace et plus explicite.

A seulementaucune correspondance dans BTable B
Anti-jointure — ne conserve que les lignes de la source A sans aucune correspondance dans la source B (jointure gauche excluante). Les colonnes de sortie proviennent de A uniquement ; B fournit les clés à tester.

Table source

Indiquez la table de données source en la sélectionnant dans le menu déroulant.

Colonnes source

Indiquez ici les colonnes à inclure. En sélectionnant les boutons Inspecter la source et Populate Source Mapping Table, vous rendez ces colonnes disponibles pour l’opération de jointure.

Sélectionner un sous-ensemble des données source

Toute expression Python valide peut servir à créer un sous-ensemble des données. Pour plus de détails et d’exemples, consultez Expressions.

Table source

Sélectionnez Reporter aussi les colonnes nommées à l’exécution pour transmettre inchangée toute colonne source que l’étape ne liste pas, telle que la table la contient lors de l’exécution de l’étape. Utilisez cette option lorsqu’une étape précédente crée des colonnes dont les noms dépendent des données, comme un pivot, et que vous ne pouvez donc pas les lister lors de la création de l’étape. Laissez-la désactivée pour n’écrire que les colonnes que vous listez.

Table cible

Table cible

Pour définir la table cible, sélectionnez une table existante à l’aide de la liste déroulante Table cible, ou cliquez sur le signe « + » vert pour créer une nouvelle table cible.

Création de table

Lorsque vous créez une nouvelle table, vous pouvez la créer soit comme Vue, soit comme Table.

Vues :

Les vues sont utiles car le temps d’exécution d’une étape est nettement inférieur à celui d’une étape qui utilise une table. L’inconvénient des vues est qu’elles se prêtent moins à l’exploration des données dans le mode Détails de la table.

Tables :

Lorsque la cible est une table, l’exécution d’une étape prend plus de temps, mais l’exploration des données dans le mode Détails est bien plus rapide qu’avec une vue.

Table Join Map

Spécifiez les conditions de jointure. Deviner renseigne la Join Map à partir de la première de ces sources que les colonnes des deux tables peuvent fournir :

  • les clés d’une autre étape de jointure de ce projet qui joint les deux mêmes tables
  • les clés d’une métrique approuvée qui les joint
  • les colonnes de clé définies sur l’une des tables, mises en correspondance par nom dans l’autre
  • les colonnes de même nom dans Table 1 et Table 2
  • les colonnes dont les noms ne diffèrent que par les majuscules ou les tirets bas, ou une colonne id mise en correspondance avec une colonne nommée d’après sa table, telle que customer_id pour une table nommée Customers

Une ligne sous le mappage indique laquelle a été utilisée, jusqu’à ce que vous modifiiez le mappage. Deviner lit les colonnes des tables, pas leurs lignes ; vérifiez donc les clés avant d’enregistrer. Inspecter la source renseigne une Join Map vide de la même façon.

Pour ajouter des colonnes manuellement, faites un clic droit n’importe où dans la section et sélectionnez Insérer une ligne ou Ajouter une ligne, afin d’ajouter une ligne avant la ligne actuellement sélectionnée ou à la fin, respectivement. Saisissez ensuite les noms de colonnes à faire correspondre de Table 1 à Table 2. Pour retirer un champ de la Join Map, faites simplement un clic droit et sélectionnez Supprimer.

Configuration du Data Mapper

Table Data Mapper

Le Data Mapper sert à mapper les colonnes des données source vers la table de données cible.

Inspection et remplissage du mappeur

Le bouton de menu Inspecter la source offre d’autres façons de mapper les colonnes de la source vers la cible :

  • Renseigner les deux tables de mappage : propage toutes les valeurs de la table de données source vers la table de données cible. C’est le comportement par défaut.
  • Renseigner uniquement la table de mappage source : mappe uniquement toutes les valeurs de la table de données source. C’est utile pour modifier un workflow existant lorsque la structure des colonnes source a changé.
  • Renseigner uniquement la table de mappage cible : propage toutes les valeurs vers la table de données cible uniquement.

Si les options de colonnes source et cible ne suffisent pas, vous pouvez ajouter d’autres colonnes à la table de données cible de plusieurs façons :

  • Tout propager insère toutes les colonnes source dans la table de données cible, qu’elles existent déjà ou non.
  • Propager la sélection insère uniquement la ou les colonnes source sélectionnées.
  • Faites un clic droit côté cible et sélectionnez Insérer une ligne pour insérer une ligne juste au-dessus de la ligne actuellement sélectionnée.
  • Faites un clic droit côté cible et sélectionnez Ajouter une ligne pour insérer une ligne en bas (à l’extrême droite) de la table de données cible.

Suppression de colonnes

Pour supprimer des colonnes de la table de données cible, sélectionnez la ou les colonnes voulues, puis faites un clic droit et sélectionnez Supprimer.

Colonnes source qui ne sont plus listées

Une ligne cible peut nommer une Colonne source que la table de données source ne liste plus, par exemple après une nouvelle inspection de la source. L’étape ne supprime jamais une telle ligne à votre place. À la place, le nom de la colonne s’affiche en rouge derrière un signe d’avertissement ⚠, et le survol indique que la colonne ne figure pas dans les colonnes source. Dans une étape à plusieurs tables, comme une union, chaque table est vérifiée par rapport à ses propres colonnes source.

Une ligne avec une Constante, une Expression ou un résumé Nombre (valeurs nulles incluses) n’est jamais signalée, car l’étape ne lit pas sa colonne source. Rien n’est signalé tant que la table de données source ne liste aucune colonne, par exemple avant la première inspection de la source.

Lorsque vous enregistrez une étape qui contient encore des lignes signalées, une boîte de dialogue Colonnes obsolètes détectées les liste sous l’onglet ou la table concernés, et propose trois choix :

  • Tout supprimer et enregistrer : supprime les lignes signalées, puis enregistre.
  • Enregistrer quand même : enregistre l’étape telle quelle.
  • Annuler : retourne à l’étape sans enregistrer.

Pour conserver une ligne et faire disparaître son avertissement, rajoutez la colonne à la table de données source, ou choisissez une colonne que la table de données source liste.

Type de données d’une colonne

Chaque colonne cible possède un Type. Une colonne propagée depuis la source conserve le type de la colonne source ; une ligne que vous ajoutez à la main est de type Texte au départ, et vous définissez le Type pour indiquer ce qu’elle doit réellement être : une colonne que vous comptez additionner ou trier a besoin de son type numérique ou date, car le texte se trie et s’additionne comme du texte.

Une étape enregistrée avec une colonne sans aucun type s’exécute malgré tout. Le type est déterminé au démarrage de l’étape, à partir de la colonne source que cette colonne lit. Lorsqu’il n’y a rien à partir duquel le déduire, il est traité comme du texte : les colonnes d’une étape Extraire SQL proviennent de la requête que vous avez écrite et non d’une source mappée, et lorsque plusieurs sources portent le même nom de colonne avec des types qui divergent, le texte est utilisé plutôt que d’en deviner un : une mauvaise supposition produit une conversion que l’entrepôt peut rejeter, alors que tout se convertit en texte.

Définir vous-même le Type reste la façon d’indiquer ce qu’une colonne doit être. Le laisser vide revient à accepter ce que la colonne source se trouve être.

Modification de l’ordre des colonnes

Pour réorganiser les colonnes de la table de données cible, sélectionnez la ou les colonnes voulues. Vous pouvez utiliser l’une ou l’autre des méthodes suivantes :

  • Flèches de déplacement groupé : sélectionnez l’option de déplacement voulue avec les flèches en haut à droite.
  • Menu contextuel : faites un clic droit et sélectionnez Déplacer en haut, Monter, Descendre ou Déplacer en bas.

Réduire le résultat aux seuls enregistrements distincts

Pour ne renvoyer que des valeurs distinctes, sélectionnez l’option de menu Distinct. Un ensemble de cases à cocher s’affiche pour chaque colonne de la source. Il suffit de cocher la case en regard d’une colonne pour ne renvoyer que des résultats distincts.

Selon la situation, vous pouvez envisager d’utiliser plutôt la synthèse.

Le processus de distinction conserve le premier enregistrement unique trouvé et écarte les autres. Vous pouvez appliquer un tri aux données s’il est important d’obtenir des résultats cohérents d’une exécution à l’autre.

Agrégation et regroupement

Pour agréger les résultats, sélectionnez l’option de menu Résumer. Un ensemble de listes de sélection s’affiche pour chaque colonne de la table de données cible. Choisissez une méthode de synthèse adaptée à chaque colonne.

Lorsque Inspecter la source remplit les colonnes, une colonne numérique commence à Regrouper par plutôt qu’à Somme si son nom ressemble à un identifiant, comme id, customer_id, Order No ou CustomerKey, si sa table la définit comme une clé, ou si la jointure l’utilise comme clé.

  • Regrouper par
  • Somme
  • Min
  • Max
  • Premier
  • Dernier
  • Nombre
  • Nombre (valeurs nulles incluses)
  • Moyenne
  • Écart type
  • Écart type d’échantillon
  • Écart type de population
  • Variance
  • Variance d’échantillon
  • Variance de population
  • Avancé hors regroupement

Pour une utilisation avancée du Data Mapper, comme les expressions, le nettoyage et les constantes, consultez Utilisation avancée du Data Mapper.

Une ligne de Join Map ou de Colonnes de sortie cibles peut nommer une colonne que l’onglet Colonnes source de l’étape ne liste plus, par exemple après une nouvelle inspection des colonnes d’une source. L’étape ne supprime jamais une telle ligne à votre place. À la place, le nom de la colonne s’affiche en rouge derrière un signe d’avertissement ⚠, et le survol indique la liste de quelle source ne contient pas la colonne.

Une ligne de Colonnes de sortie cibles ayant un résumé Constante, Expression ou Nombre (valeurs nulles incluses) n’est jamais signalée, car l’étape ne lit pas la colonne source de la ligne. Rien n’est vérifié par rapport à une source dont la liste est vide, par exemple une source qui n’a jamais été inspectée.

Lorsque vous enregistrez une étape qui contient encore des lignes signalées, une boîte de dialogue Colonnes obsolètes détectées les liste par table et propose trois choix :

  • Tout supprimer et enregistrer : supprime les lignes signalées, puis enregistre.
  • Enregistrer quand même : enregistre l’étape telle quelle.
  • Annuler : revient à l’étape sans enregistrer.

Pour conserver une ligne et effacer son avertissement, rajoutez la colonne à la liste de cette source dans l’onglet Colonnes source, ou choisissez une colonne que la liste contient.

Lorsque vous enregistrez, chaque table source est aussi vérifiée dans son état actuel. Une colonne que la liste d’une source contient mais que sa table n’a pas ouvre une boîte de dialogue Colonnes source manquantes qui nomme la table et la colonne, avec Enregistrer quand même ou Annuler. Lorsque des lignes sont aussi signalées, les deux apparaissent ensemble dans la boîte de dialogue Colonnes obsolètes détectées. Consultez Colonnes absentes de la table source.

Une anti-jointure ne produit que des colonnes de la source A ; une ligne de Colonnes de sortie cibles issue de la source B est donc elle aussi signalée, même si la source B liste la colonne.

Filtres de données de la table

Pour offrir un maximum de souplesse, des filtres de données sont disponibles sur les données source et sur les données cible. Pour les jeux de données volumineux, il peut être particulièrement avantageux de filtrer les lignes dès la source afin que les opérations suivantes portent sur un jeu de données plus petit.

Sélectionner un sous-ensemble de données

Ce type de filtre permet de filtrer les données source entrantes selon les conditions spécifiées.

Appliquer un filtre secondaire aux données de résultat

Ce type de filtre permet d’appliquer un filtre aux données de résultat après transformation, selon les conditions spécifiées. La possibilité d’appliquer un filtre au résultat transformé permet d’exclure des lignes en fonction du résultat de calculs complexes, de synthèses ou de fonctions de fenêtrage.

Découpage final de la table de données (limite)

Le découpage des lignes permet de limiter les lignes du jeu de résultats selon une plage et un point de départ.

Syntaxe des filtres

La syntaxe des filtres utilise Python SQLAlchemy, qui est la même syntaxe que celle des autres expressions.

Consultez des exemples et des fonctions d’expression dans la section Expressions.