Transformation de rang dans Informatica avec EXAMPLE
⚡ Résumé intelligent
La transformation de rang dans Informatica est un objet actif et connecté qui ne conserve que les N premières ou dernières lignes de chaque groupe, en attribuant à chaque ligne restante une position via son port de sortie automatique RANKINDEX.
Qu'est-ce que la transformation de rang ?
La transformation de classement est une transformation active et connectée qui filtre les données en fonction du groupe et du rang. Par exemple, si vous souhaitez obtenir les dix enregistrements des employés ayant les salaires les plus élevés, ce type de filtrage peut être effectué grâce à la transformation de classement.
La transformation de rang offre également la possibilité de classer les données par groupes. Par exemple, si vous souhaitez obtenir les dix employés les mieux rémunérés par département, ce groupe…ping peut être réalisé grâce à cette transformation.
La transformation de rang est une transformation active, car elle affecte le nombre de lignes de sortie.
La transformation Rank possède un port de sortie permettant d'attribuer un rang aux lignes. Ce port est nommé RANKINDEX et le concepteur le crée automatiquement dès que la transformation est ajoutée. planping.
Étant donné que le classement doit comparer chaque ligne d'un groupe avant de déterminer les lignes gagnantes, le service d'intégration met en cache les données entrantes. Les valeurs des groupes sont placées dans un cache d'index et le reste des données des lignes dans un cache de données, de la même manière qu'un cache classique. Transformation de menuisier détient son pipeline principal.
Ports dans une transformation de rang
Avant de passer à l'exemple pratique, il est utile de savoir à quoi sert chaque indicateur de port dans l'onglet Ports, car deux d'entre eux effectuent le véritable travail de cette transformation.
| Type Port | Ce qu'il fait |
|---|---|
| Entrée (Je) | Reçoit une colonne de la transformation en amont. Chaque colonne liée à la transformation Rank est un port d'entrée. |
| Sortie (O) | Transmet une colonne à la transformation suivante ou à la cible. |
| Variable (V) | Contient un calcul local au sein de la transformation, exactement comme dans une transformation d'expression. |
| Rang (R) | Indique la colonne sur laquelle le classement est calculé. Un seul port de la transformation peut porter cet indicateur. |
| Par groupe | Le classement est réinitialisé pour chaque valeur distincte, de sorte qu'un filtre top-three renvoie trois lignes par groupe plutôt que trois lignes au total. |
| INDEX DE CLASSEMENT | Port de sortie uniquement créé par le concepteur. Il stocke le classement de chaque ligne au sein de son groupe et peut rester non connecté. |
Le classement ne peut être effectué que sur un seul port ; par conséquent, une exigence telle que « salaire le plus élevé, puis ancienneté la plus longue » nécessite que le critère de départage soit préparé en amont plutôt que sur un port de second classement.
Comment utiliser la transformation de rang dans Informatica
Notre objectif est d'afficher les trois employés les mieux rémunérés de chaque département ; nous utiliserons pour cela une transformation de rang. Suivez les huit étapes ci-dessous dans la carte.ping Designer.
Étape 1) Créer une carteping Les deux définitions, EMP source et EMP cible, sont désormais affichées sur le canevas, comme illustré ci-dessous.
Étape 2) Ensuite, sur la carteping
- Sélectionnez le menu de transformation
- Sélectionnez l'option de création
Le menu Transformation avec l'option Créer s'affiche ensuite.
Étape 3) Dans la fenêtre de création de transformation
- Sélectionnez la transformation de classement
- Entrez le nom de la transformation « rnk_salary »
- Sélectionnez le bouton Créer
Étape 4) La transformation Rank sera créée dans la cartepingSélectionnez le bouton « Terminé » dans la fenêtre. L’objet vide rnk_salary apparaît alors sur le canevas.
Étape 5) Connectez tous les ports de qualificateur de source à la transformation Rank, afin que chaque colonne d'employés soit disponible pour le classement.
Étape 6) Double Cliquez sur la transformation Rang pour ouvrir la fenêtre « Modifier la transformation ».
- Sélectionner le menu des propriétés
- Sélectionnez l'option « Haut » dans la propriété Haut/Bas
- Entrez 3 dans le nombre de rangs
L'onglet Propriétés affiche désormais « Top » avec trois rangs, comme le montre la capture d'écran.
Étape 7) Dans la fenêtre « modifier la transformation » à nouveau
- Onglet Sélectionner les ports
- Sélectionnez l'option grouper par pour la colonne Numéro de service
- Sélectionnez le rang dans la colonne Salaire
- Sélectionnez le bouton OK
L'onglet Ports affiche désormais le drapeau de groupe sur le numéro de département et le drapeau R sur le salaire.
Étape 8) Connectez les ports de la transformation Rank à la table cible. La carteping maintenant s'exécute de EMP à rnk_salary puis à EMP_TARGET.
Maintenant, sauvegardez la carte.ping et l'exécuter après avoir créé un Session et workflowLe qualificateur de source récupérera tous les enregistrements, mais la transformation Rank ne conservera que les enregistrements présentant trois salaires élevés pour chaque département.
Propriétés de transformation de rang
L'onglet Propriétés utilisé à l'étape 6 contient davantage de paramètres que les deux modifiés dans l'exemple. Les paramètres ci-dessous déterminent le nombre de lignes conservées, la méthode de comparaison des chaînes de caractères et l'emplacement d'écriture des fichiers de cache.
| Propriétés | Ce qu'il contrôle |
|---|---|
| Haut / bas | Indique si les valeurs les plus élevées ou les plus basses sont conservées pour la colonne classée. L'exemple utilise « Top ». |
| Nombre de rangs | Combien de lignes sont renvoyées par groupe ? L’exemple utilise 3, donc chaque département renvoie trois employés. |
| Comparaison de chaînes de caractères sensible à la casse | La prise en compte de la casse lors du classement des chaînes de caractères est-elle pertinente ? Cela n'a d'importance que lorsque le port de classement contient du texte. |
| Répertoire du cache | Répertoire dans lequel sont créés les fichiers d'index et de cache de données. La valeur par défaut est la variable de processus $PMCacheDir. |
| Taille du cache de données de classement | Taille du cache de données contenant les données des lignes. La valeur par défaut est « Auto », ce qui laisse au service d'intégration le soin de dimensionner ce cache. |
| Taille du cache de l'index de classement | Taille du cache d'index contenant les valeurs de groupe. La valeur par défaut est Auto. |
| Portée de la transformation | Applique le classement à chaque transaction ou à toutes les données entrantes. |
| TracNiveau d'apprentissage | Niveau de détail consigné dans le journal de session : concis, normal, initialisation détaillée ou données détaillées. |
Le dimensionnement du cache est un paramètre qu'il convient de revoir pour les sources volumineuses. Lorsque les caches sont trop petits, le service d'intégration charge les pages sur le disque, ce qui est l'un des premiers points vérifiés lors de la configuration. l'optimisation des performances d'une carteping.
Transformation de classement vs Transformation d'agrégateur
Les deux transformations sont actives, mettent en cache leurs données d'entrée et proposent des ports Group By ; il est donc facile de se tromper. La différence réside dans le résultat obtenu.
| Point de comparaison | Transformation de rang | Transformation de l'agrégateur |
|---|---|---|
| Interet | Renvoie les N premières ou dernières lignes complètes de chaque groupe | Renvoie des valeurs calculées telles que la somme, AVG, MAX ou MIN par groupe |
| Lignes renvoyées | Jusqu'au nombre de rangs par groupe, avec toutes leurs colonnes intactes | Normalement, une ligne récapitulative par groupe |
| port supplémentaire ajouté | RANKINDEX, contenant la position de chaque ligne | Aucun |
| Colonne classée ou agrégée | Un port désigné comme port de rang | Un nombre quelconque de ports transportant des expressions agrégées |
En termes simples, un Transformation de l'agrégateur La transformation Rank répond à la question « quel est le salaire le plus élevé dans ce département ? », tandis que la transformation Rank répond à la question « quels employés le perçoivent ? ». Lorsqu'il suffit d'éliminer un sous-ensemble de lignes selon une condition simple, sans obligation de tri, une Transformation du filtre c'est l'option la moins chère, car elle ne nécessite aucun cache.









