Séquence Generator Transformation dans Informatica

⚡ Résumé intelligent

Séquence Generator La transformation dans Informatica est l'objet passif et connecté qui produit des séquences numériques pour les colonnes de substitution et de clé primaire, en attribuant à chaque ligne une valeur via deux ports de sortie fixes nommés NEXTVAL et CURRVAL.

  • (I.e. Deux ports fixes : NEXTVAL contient les nombres générés, et CURRVAL renvoie NEXTVAL plus la valeur d'incrémentation.
  • ⚙️ Quatre propriétés principales : Les valeurs de départ, d'incrémentation, de fin et de cycle déterminent la forme de chaque séquence produite.
  • 🧪 Exemple concret : Huit cartesping Les étapes du concepteur chargent les nombres générés dans la colonne SNO d'une cible EMP_SEQUENCE.
  • ♻️ Option réutilisable : Une séquence réutilisable Generator est partagé par plusieurs cartespings et met en cache 1 000 valeurs par défaut.
  • (I.e. Les ports sont fixes : Il est impossible d'ajouter, de modifier ou de supprimer des ports ; tout le comportement est donc contrôlé depuis l'onglet Propriétés.
  • 🇧🇷 Clés de substitution : Les tables de dimensions d'entrepôt utilisent des clés générées au lieu des clés naturelles du système source.

Séquence Generator Transformation dans Informatica

Qu'est-ce que la séquence Generator Transformation?

Séquence Generator La transformation est passive, elle n'affecte donc pas le nombre de lignes d'entrée. La séquence Generator est utilisé pour générer des valeurs de clé primaire, et il est utilisé pour générer des valeurs de séquence numérique comme 1, 2, 3, 4, 5 etc.

Par exemple, si vous souhaitez attribuer des valeurs de séquence aux enregistrements sources, vous pouvez utiliser la méthode Sequence. GeneratorLes valeurs de séquence générées peuvent être de la forme 5, 10, 15, 20, 25, etc. ou 10, 20, 30, 40, 50, etc., selon les propriétés configurées de la transformation.

Contrairement à la plupart des transformations, celle-ci ne possède aucun port d'entrée. Elle ne lit pas les lignes entrantes ; elle transmet simplement le nombre suivant au port auquel elle est connectée. C'est pourquoi elle peut être placée sans risque à côté de n'importe quel pipeline. planping.

Ports en séquence Generator Transformation

Séquence Generator possède deux ports de sortie

  • COURRVAL
  • VAL SUIVANT

La valeur du port CURRVAL est toujours égale à NEXTVAL plus la valeur Increment By, elle se lit donc comme NEXTVAL+1 uniquement, tandis que Increment By reste à sa valeur par défaut de 1.

Pour générer les numéros de séquence, nous utilisons systématiquement la colonne NEXTVAL. Le tableau ci-dessous récapitule le comportement des deux ports.

Port Ce qu'il renvoie Quand le connecter
VAL SUIVANT Le numéro suivant dans la séquence pour chaque ligne qui traverse le pipeline. Presque toujours. Il s'agit du port qui alimente une colonne clé de la cible.
COURRVAL NEXTVAL plus la valeur d'incrémentation. Uniquement avec NEXTVAL. Connecté seul, il transmet la même valeur constante pour chaque ligne.

Aucun des deux ports ne peut être renommé ou supprimé, et aucun troisième port ne peut être ajouté ; par conséquent, toute modification des numéros générés est effectuée dans l'onglet Propriétés plutôt que sur les ports.

Propriétés de la séquence Generator Transformation

  • Valeur de départ – C'est la première valeur qui sera générée par la transformation, la valeur par défaut est 0.
  • Incrémenter de – Il s’agit du nombre par lequel vous souhaitez incrémenter les valeurs. La valeur par défaut est 1.
  • Valeur finale – C'est la valeur maximale que la transformation doit générer.
  • Cycle – si cette option est définie, après avoir atteint la fin de la valeur, la transformation redémarre à partir de la valeur de départ.

Trois autres paramètres apparaissent sur le même onglet et deviennent importants dès que la transformation est partagée ou qu'une session est réexécutée.

Propriétés Ce qu'il contrôle Réglage par défaut
Valeur actuelle Il s'agit de la valeur à partir de laquelle la prochaine session s'exécute. Le service d'intégration la met à jour dans le référentiel au fur et à mesure que des lignes sont générées. 1
Nombre de valeurs mises en cache Combien de valeurs sont réservées en mémoire simultanément pour que des sessions simultanées ne fournissent jamais deux fois le même nombre ? 0 pour non réutilisable, 1000 pour réutilisable
Réinitialiser Démarre chaque session à partir de la valeur actuelle initiale au lieu de la poursuivre. Cette option n'est pas disponible pour les séquences réutilisables. Generators. Hors Ligne
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. Normale

Comment utiliser la séquence Generator Transformation dans Informatica

Dans cet exemple, nous allons générer des numéros de séquence et les stocker dans la cible. Suivez les huit étapes ci-dessous dans la carte.ping Designer.

Étape 1) Créez une table cible avec le script suivant.

Téléchargez le fichier emp_sequence.sql ci-dessus

Étape 2) Importez la table dans Informatica en tant que table cible.

Étape 3) Créer une nouvelle carteping Importez ensuite la source EMP et la table cible EMP_SEQUENCE. Les deux définitions apparaissent désormais sur le canevas, comme illustré ci-dessous.

Carteping Concepteur avec la source EMP et la définition cible EMP_SEQUENCE importées

Étape 4) Créez une nouvelle transformation dans la carteping

  1. Sélectionnez la transformation de séquence comme type
  2. Entrez le nom de la transformation « seq_emp »
  3. Sélectionnez l'option Créer

Créer une fenêtre de transformation avec séquence Generator sélectionné et le nom seq_emp saisi

Étape 5) Séquence Generator Une transformation sera créée ; sélectionnez l’option « Terminé ». L’objet seq_emp apparaît désormais sur le canevas avec ses deux ports.

Séquence Generator transformation seq_emp créée sur la carteping la toile

Étape 6) Liez la colonne NEXTVAL de la séquence Generator à la colonne SNO dans la cible.

Le port NEXTVAL de seq_emp est lié à la colonne SNO de la cible EMP_SEQUENCE.

Étape 7) Liez les autres colonnes à partir de qualificateur de source transformation vers la table cible.

Colonnes restantes du qualificateur de source liées à la table cible EMP_SEQUENCE

Étape 8) Double cliquez sur la séquence Generator pour ouvrir la fenêtre des propriétés, puis

  1. Sélectionnez l'onglet Propriétés
  2. Entrez les propriétés avec la valeur de départ = 1, laissez les autres propriétés par défaut
  3. Sélectionnez le bouton OK

Onglet Propriétés de la séquence Generator transformation avec la valeur de départ fixée à 1

Maintenant, sauvegardez la carte.ping et l'exécuter après avoir créé le Session et workflow.

La colonne sno de la cible contiendrait les numéros de séquence générés par la séquence Generator la transformation.

Dans notre exemple, les séquences seront comme 1 – Scott, 2 – King, 3 – Adam, 4 – Miller, etc.

Séquence réutilisable et non réutilisable Generators

La transformation construite ci-dessus se trouve à l'intérieur d'une seule cartepingLe fait de le créer dans Transformation Developer le rend réutilisable, et les deux se comportent différemment dès lors qu'il y a plus d'une session impliquée.

Point de comparaison Non réutilisable Réutilisable
Là où il est créé À l'intérieur d'une seule carteping, dans la carteping Créateur Dans le développeur de transformations, ajoutez ensuite à un nombre quelconque de cartespings
Nombre de valeurs mises en cache La valeur par défaut est 0, les valeurs ne sont donc pas réservées à l'avance. La valeur par défaut est de 1000, chaque session réserve donc son propre bloc de numéros.
Réinitialiser la propriété Disponible, et redémarre la séquence à partir de la valeur actuelle d'origine Non disponible, car un redémarrage attribuerait des numéros déjà utilisés par une autre session.
Utilisation typique Une seule colonne clé cible dans une seule carteping Une clé de substitution partagée sur plusieurs cartespings chargeant la même dimension

La mise en cache permet de séparer les sessions simultanées. Chaque session utilise un bloc de nombres au départ, ce qui signifie que les nombres restent uniques mais non contigus : les valeurs non utilisées à la fin d’une session sont supprimées, et le bloc suivant commence après celles-ci.

Règles et limitations de la séquence Generator Transformation

Certaines de ces choses n'apparaissent qu'après la carteping Le processus a déjà été exécuté, il est donc moins coûteux de les connaître avant que les ports ne soient connectés.

  • Les ports sont fixes. Les valeurs NEXTVAL et CURRVAL ne peuvent être ni modifiées ni supprimées, et aucun autre port ne peut être ajouté à la transformation.
  • CURRVAL, à lui seul, renvoie une constante. Ne connectez CURRVAL que si NEXTVAL est également connecté en aval, sinon chaque ligne reçoit la même valeur.
  • Deux cibles sont chargées l'une après l'autre. Lorsque NEXTVAL alimente deux tables cibles, la première cible est chargée avec ses nombres avant que la seconde cible ne commence, de sorte que les deux ensembles ne s'entrelacent pas.
  • Des espaces sont normaux. Les valeurs mises en cache et non utilisées par une session ne sont jamais restituées ; par conséquent, une session interrompue ou incomplète crée des lacunes dans la séquence. Concevez la colonne clé de manière à tolérer ces lacunes.
  • Cycle peut créer des doublons. Une fois la valeur finale atteinte avec le mode Cycle activé, la numérotation redémarre à la valeur initiale, ce qui peut entraîner un conflit avec les clés existantes, sauf si la cible l'autorise.

Comme elle ne lit jamais de ligne, la transformation n'ajoute quasiment rien à la durée d'exécution de la session, c'est pourquoi elle apparaît rarement comme un goulot d'étranglement pendant l'optimisation des performancesLorsqu'une clé doit dépendre des données elles-mêmes plutôt que d'un compteur, une Aggregator or Transformation de menuisier C'est l'objet qui effectue ce travail, pas celui-ci.

FAQ

Une clé de substitution est un numéro sans signification particulière qui identifie une ligne d'entrepôt de données à la place de l'identifiant du système source. Elle reste stable même lorsque le système source modifie ses codes, et une séquence générée est la méthode la plus simple pour en produire une.

Car la numérotation se trouve alors sur la carte.ping plutôt que dans une seule base de données. Les fichiers plats et autres cibles non relationnelles obtiennent leurs clés de la même manière, et un même objet réutilisable peut numéroter plusieurs cibles sans qu'il soit nécessaire de créer un objet de base de données par table.

La valeur de fin accepte jusqu'à 9 223 372 036 854 775 807, le plus grand entier signé 64 bits. Si cette valeur est atteinte, la session s'interrompt et une erreur de dépassement de capacité se produit, sauf si le mode Cycle est activé, auquel cas la numérotation redémarre à partir de la valeur de début.

Oui. NEXTVAL se connecte à toute transformation en aval, le plus souvent une expression qui construit une clé composite ou une recherche qui vérifie si une clé existe déjà. Le numéro généré est ensuite transmis avec la ligne.

Oui, mais vérifiez d'abord la cible. Modifier la valeur de départ ou la valeur actuelle d'une colonne clé active peut renvoyer des nombres déjà présents dans la cible ; il est donc préférable d'augmenter la valeur au-dessus de la clé la plus élevée plutôt que de la diminuer.

À peine. Il ne lit aucune ligne et ne crée aucun fichier cache ; son coût se limite donc à une mise à jour du compteur par ligne. Les charges importantes sont limitées par le lecteur et l’écrivain bien avant que la numérotation ne pose problème.

Les profileurs d'IA analysent les colonnes sources pour identifier les combinaisons véritablement uniques, signaler les clés candidates contenant des valeurs nulles ou des doublons et détecter les écarts entre les chargements. La mise en correspondance basée sur l'apprentissage automatique permet également de relier les enregistrements décrivant la même entité sous différents identifiants.

Copilot écrit l'équivalent SQL Définition de la séquence ou de l'identité et requêtes de réconciliation prouvant l'absence de duplication de clé. Le système ne peut pas accéder aux valeurs de votre référentiel ; il est donc impératif de vérifier la valeur actuelle dans la transformation elle-même avant tout chargement.

Résumez cet article avec :