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.

  • ???? N supérieur ou inférieur : La propriété Haut/Bas et la propriété Nombre de rangs déterminent ensemble quelles lignes survivent au filtre.
  • 🇧🇷 Classement par groupe : Les ports Group By redémarrent le classement pour chaque groupe, de sorte que chaque département puisse renvoyer son propre top trois.
  • (I.e. Port de rang : Un seul port porte l'indicateur R, et c'est cette unique colonne qui sert de valeur pour le calcul du classement.
  • 📍 RANKINDEX : Le concepteur ajoute automatiquement ce port de sortie uniquement pour conserver la position de chaque ligne au sein de son groupe.
  • 🧪 Exemple concret : Huit cartesping Les étapes du concepteur chargent les trois employés les mieux payés de chaque département dans EMP_TARGET.
  • (I.e. En cache et actif : Les valeurs de groupe et les données de ligne sont stockées dans un index et un cache de données, et le nombre de lignes change.

Transformation de classement dans Informatica

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.

Carteping Concepteur affichant la définition de la source EMP et la définition de la cible EMP_TARGET

Étape 2) Ensuite, sur la carteping

  1. Sélectionnez le menu de transformation
  2. Sélectionnez l'option de création

Le menu Transformation avec l'option Créer s'affiche ensuite.

Le menu Transformation s'est ouvert dans la carte.ping Concepteur avec l'option Créer mise en évidence

Étape 3) Dans la fenêtre de création de transformation

  1. Sélectionnez la transformation de classement
  2. Entrez le nom de la transformation « rnk_salary »
  3. Sélectionnez le bouton Créer

Créez une fenêtre de transformation avec le rang sélectionné et le nom rnk_salary saisi.

É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.

Transformation de rang rnk_salary créée et placée sur la carteping la toile

É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.

Tous les ports Source Qualifier liés à la transformation de rang rnk_salary

Étape 6) Double Cliquez sur la transformation Rang pour ouvrir la fenêtre « Modifier la transformation ».

  1. Sélectionner le menu des propriétés
  2. Sélectionnez l'option « Haut » dans la propriété Haut/Bas
  3. 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.

Onglet Propriétés de la transformation Rang avec Top sélectionné et trois saisis comme nombre de rangs

Étape 7) Dans la fenêtre « modifier la transformation » à nouveau

  1. Onglet Sélectionner les ports
  2. Sélectionnez l'option grouper par pour la colonne Numéro de service
  3. Sélectionnez le rang dans la colonne Salaire
  4. 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.

Onglet Ports de la transformation Rank avec le regroupement défini sur le numéro de département et le rang défini sur la colonne 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.

Ports classés liés de la transformation de rang rnk_salary à la table 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.

FAQ

Non. La fonction Rank est uniquement connectée ; elle doit donc s'insérer dans le flux de données entre deux objets. Le port RANKINDEX peut rester non connecté, mais la transformation elle-même ne peut pas être appelée comme une opération Lookup non connectée.

En cas d'égalité, la même valeur est attribuée à l'indice de classement, et la transformation ignore ensuite la valeur suivante. Deux employés ex æquo à la deuxième place affichent donc tous deux 2, et la ligne suivante affiche 4 au lieu de 3.

L'ensemble de la source est traité comme un seul groupe ; la transformation ne renvoie donc que le nombre total de grades. Définir trois grades sans spécifier de groupe permet d'obtenir les trois employés les mieux rémunérés de l'entreprise, et non par département.

Oui. Les ports numériques, de type chaîne et de date/heure peuvent tous être désignés comme port de classement. Pour le texte, la propriété « Comparaison de chaînes sensible à la casse » détermine si la casse influe sur le classement ; vérifiez-la avant l’exécution de la session.

Non garanti. La transformation sélectionne les lignes à conserver, mais ne garantit pas l'ordre dans lequel elles atteignent la cible. Ajoutez une transformation de tri sur le port RANKINDEX lorsque l'ordre de chargement est important.

A SQL La fonction de fenêtre étiquette chaque ligne et laisse le filtrage à une requête externe. La transformation Informatica étiquette et filtre en une seule passe et fonctionne sur les fichiers plats et autres sources non relationnelles ne disposant pas de moteur de base de données.

Les modèles d'apprentissage automatique attribuent un score aux enregistrements en fonction de la probabilité de désabonnement, de fraude ou de conversion, et ce score constitue la colonne de classement. Les conseillers IA analysent également la taille des groupes afin que les paramètres de cache et le nombre de classements soient choisis à partir de données réelles et non par estimation.

Copilot rédige la requête de fonction de fenêtre équivalente ou Python Le regroupement est rapide, ce qui est utile pour valider les résultats. Il ne peut pas lire votre carte.ping, considérez donc chaque suggestion comme une ébauche et comparez le nombre de lignes avec le journal de session.

Résumez cet article avec :