Normalizer Transformation στην Informatica με ΠΑΡΑΔΕΙΓΜΑ

⚡ Έξυπνη Σύνοψη

Ο μετασχηματισμός κανονικοποιητή στο Informatica είναι ένας ενεργός μετασχηματισμός που μετατρέπει μια μεμονωμένη γραμμή που περιέχει επαναλαμβανόμενες στήλες σε πολλαπλές γραμμές και δημιουργεί επίσης τις βασικές στήλες που προσδιορίζουν κάθε εμφάνιση που παράγει.

  • 🔁 Γραμμές από στήλες: Τέσσερις τριμηνιαίες στήλες πωλήσεων σε μία γραμμή προέλευσης γίνονται τέσσερις γραμμές-στόχοι, μία για κάθε τρίμηνο.
  • 🔢 Το Συμβαίνει οδηγεί τα πάντα: Η τιμή Εμφανίζεται στην καρτέλα Κανονικοποιητής καθορίζει πόσες θύρες εισόδου και πόσες γραμμές εξόδου δημιουργούνται.
  • 🧪 Λειτουργικό παράδειγμα: Έξι Χάρτηςping Τα βήματα του σχεδιαστή μετακινούν ένα επίπεδο αρχείο sales_source σε έναν πίνακα sales_target μέσω του μετασχηματισμού nrm_sales.
  • 🔑 Δημιουργημένες θύρες: Η συνάρτηση GK_ επιστρέφει ένα αυξανόμενο κλειδί για κάθε γραμμή προέλευσης, ενώ η συνάρτηση GCID_ επιστρέφει τον δείκτη εμφάνισης από 1 έως N.
  • 🗂️ Δύο γεύσεις: Ο κανονικοποιητής VSAM διαβάζει πηγές COBOL, ενώ ο κανονικοποιητής αγωγού χειρίζεται σχεσιακά και επίπεδα δεδομένα αρχείων.
  • ⚠️ Συνήθης παγίδα: Η ρύθμιση "Παρουσιάζεται σε μια στήλη που εμφανίζεται μόνο μία φορά ή η αφησή της στο μηδέν για μια επαναλαμβανόμενη στήλη" διακόπτει τη λίστα θυρών.

Ο μετασχηματισμός κανονικοποιητή στην Πληροφορική

Τι είναι ο μετασχηματισμός κανονικοποιητή;

Ο κανονικοποιητής είναι ένας ενεργός μετασχηματισμός, που χρησιμοποιείται για τη μετατροπή μιας μεμονωμένης γραμμής σε πολλές γραμμές και αντίστροφα. Είναι ένας έξυπνος τρόπος αναπαράστασης των δεδομένων σας με πιο οργανωμένο τρόπο.

Εάν σε μία μόνο γραμμή υπάρχουν επαναλαμβανόμενα δεδομένα σε πολλές στήλες, τότε αυτή μπορεί να χωριστεί σε πολλές γραμμές. Μερικές φορές έχουμε δεδομένα σε πολλές στήλες που εμφανίζονται. Για παράδειγμα:

Ονομα μαθητή Βαθμολογία 9ης τάξης Βαθμολογία 10ης τάξης Βαθμολογία 11ης τάξης Βαθμολογία 12ης τάξης
Φοιτητής 1 50 60 65 80
Φοιτητής 2 70 64 83 77

Σε αυτήν την περίπτωση, η στήλη βαθμολογίας κλάσης επαναλαμβάνεται σε τέσσερις στήλες. Χρησιμοποιώντας τον Κανονικοποιητή, μπορούμε να τις χωρίσουμε στο ακόλουθο σύνολο δεδομένων.

Ονομα μαθητή Τάξη Σκορ
Φοιτητής 1 9 50
Φοιτητής 1 10 60
Φοιτητής 1 11 65
Φοιτητής 1 12 80
Φοιτητής 2 9 70
Φοιτητής 2 10 64
Φοιτητής 2 11 83
Φοιτητής 2 12 77

Δύο γραμμές των πέντε στηλών έχουν γίνει οκτώ γραμμές των τριών στηλών. Επειδή ο αριθμός των γραμμών που εξέρχονται από τον μετασχηματισμό διαφέρει από τον αριθμό των γραμμών που εισέρχονται σε αυτόν, ο Κανονικοποιητής είναι ένας ενεργός μετασχηματισμός και ο ίδιος κανόνας ισχύει για το παράδειγμα πωλήσεων που δημιουργείται στην επόμενη ενότητα.

Πώς να χρησιμοποιήσετε τον μετασχηματισμό Normalizer στην Informatica

Τα ακόλουθα έξι βήματα για τη δημιουργία ενός χάρτηping που διαβάζει ένα επίπεδο αρχείο τριμηνιαίων πωλήσεων καταστήματος και γράφει μία γραμμή-στόχο ανά τρίμηνο.

Βήμα 1) Δημιουργήστε πίνακα πηγής "sales_source" και στοχεύστε τον πίνακα "sales_target" χρησιμοποιώντας το σενάριο και εισαγάγετέ τα στο πληροφορική.

Κατεβάστε το παραπάνω Αρχείο Sales_Source.txt

Βήμα 2) Δημιουργήστε έναν χάρτηping έχοντας την πηγή “sales_source” και τον πίνακα στόχο “sales_target”. Ο Χάρτηςping Ο καμβάς σχεδιαστή περιέχει στη συνέχεια τον ορισμό πηγής, τον Προσδιορισμός πηγής και ο ορισμός του στόχου.

Χάρτηςping Καμβάς σχεδιαστή με τον ορισμό του sales_source, τον Προσδιοριστή Πηγής και τον πίνακα sales_target

Βήμα 3) Από το μενού Μετασχηματισμός, δημιουργήστε έναν νέο μετασχηματισμό. Στο παράθυρο Δημιουργία μετασχηματισμού:

  1. Επιλέξτε τον Κανονικοποιητή ως μετασχηματισμό
  2. Εισαγάγετε όνομα, "nrm_sales"
  3. Επιλέξτε την επιλογή δημιουργίας

Το παράθυρο μοιάζει με το παρακάτω στιγμιότυπο οθόνης, με τη λίστα τύπων μετασχηματισμού στα αριστερά και το πλαίσιο ονόματος από κάτω.

Δημιουργία παραθύρου μετασχηματισμού με επιλεγμένο τον Κανονικοποιητή και καταχωρημένο το όνομα nrm_sales

Βήμα 4) Ο μετασχηματισμός θα δημιουργηθεί, επιλέξτε την επιλογή ολοκλήρωσης. Ο κενός μετασχηματισμός nrm_sales βρίσκεται πλέον στον καμβά μεταξύ του Προσδιοριστή Πηγής και του στόχου.

Χάρτηςping καμβάς που εμφανίζει τον νεοδημιουργημένο μετασχηματισμό nrm_sales Normalizer χωρίς ακόμη στήλες

Βήμα 5) Double κάντε κλικ στον μετασχηματισμό Normalizer και, στη συνέχεια:

  1. Επιλέξτε την καρτέλα Κανονικοποιητής
  2. Κάντε κλικ στο εικονίδιο για να δημιουργήσετε δύο στήλες
  3. Εισαγάγετε ονόματα στηλών
  4. Ορίστε τον αριθμό εμφάνισης σε 4 για τις πωλήσεις και 0 για το όνομα καταστήματος
  5. Επιλέξτε το κουμπί ΟΚ

Η τιμή "Εμφανίζεται" είναι η πιο σημαντική καταχώρηση σε αυτήν την καρτέλα: ενημερώνει τον Σχεδιαστή πόσες φορές επαναλαμβάνεται η στήλη σε μία γραμμή προέλευσης. Το όνομα του καταστήματος εμφανίζεται μία φορά ανά γραμμή, επομένως η τιμή "Εμφανίζεται" παραμένει στο 0.

Καρτέλα Κανονικοποίησης του παραθύρου Επεξεργασία Μετασχηματισμών με τη στήλη πωλήσεων να έχει οριστεί σε τέσσερις εμφανίσεις και το όνομα καταστήματος να έχει οριστεί σε μηδέν

Στον μετασχηματισμό θα δημιουργηθούν στήλες. Θα δείτε 4 αριθμούς στηλών πωλήσεων καθώς ορίζουμε τον αριθμό εμφανίσεων σε 4. Παράλληλα με αυτές, ο Σχεδιαστής προσθέτει το δημιουργημένο κλειδί και τις δημιουργημένες θύρες αναγνωριστικού στήλης που περιγράφονται στην επόμενη ενότητα.

Δημιουργήθηκε λίστα θυρών του nrm_sales που εμφανίζει τέσσερις θύρες εισόδου πωλήσεων συν τις θύρες GK και GCID

Βήμα 6) Στη συνέχεια, στο χαρτης:

  1. Συνδέστε το προσδιοριστικό των τεσσάρων στηλών πηγής του τεσσάρου τριμήνου με τις στήλες του κανονικοποιητή αντίστοιχα.
  2. Συνδέστε τη στήλη ονόματος καταστήματος στη στήλη κανονικοποιητή
  3. Συνδέστε τις στήλες store_name & sales από τον κανονικοποιητή στον πίνακα προορισμού
  4. Συνδέστε τη στήλη GK_sales από τον κανονικοποιητή στον πίνακα προορισμού

Μόλις σχεδιαστεί κάθε σύνδεσμος, ο ολοκληρωμένος χάρτηςping μοιάζει με αυτό.

Ολοκληρωμένος χάρτηςping με τις θύρες των τεσσάρων τετάρτων και το όνομα καταστήματος συνδεδεμένα με το nrm_sales και τις θύρες store_name, sales και GK_sales συνδεδεμένες με το sales_target.

Αποθήκευση του χάρτηping και εκτελέστε το μετά τη δημιουργία Συνεδρίαση και ροής εργασίας. Για κάθε τρίμηνο πωλήσεων ενός καταστήματος, θα δημιουργείται μια ξεχωριστή σειρά από τον μετασχηματισμό του κανονικοποιητή.

Το αποτέλεσμα του χάρτη μαςping θα είναι σαν –

Όνομα Καταστήματος Τέταρτο ΕΚΠΤΩΣΕΙΣ
Δελχί 1 150
Δελχί 2 240
Δελχί 3 455
Δελχί 4 100
MUMBAI 1 100
MUMBAI 2 500
MUMBAI 3 350
MUMBAI 4 340

Τα δεδομένα πηγής είχαν επαναλαμβανόμενες στήλες, συγκεκριμένα QUARTER1, QUARTER2, QUARTER3 και QUARTER4. Με τη βοήθεια του Normalizer, έχουμε αναδιατάξει τα δεδομένα ώστε να χωράνε σε μία μόνο στήλη QUARTER και για μία εγγραφή πηγής δημιουργούνται τέσσερις εγγραφές στον στόχο.

Με αυτόν τον τρόπο, μπορείτε να κανονικοποιήσετε τα δεδομένα και να δημιουργήσετε πολλαπλές εγγραφές για μία μόνο πηγή δεδομένων.

Θύρες και Ιδιότητες Μετασχηματισμού Κανονικοποιητή

Οι στήλες δεν πληκτρολογούνται ποτέ στην καρτέλα Θύρες. Ορίζονται στην καρτέλα Κανονικοποιητής και στη συνέχεια ο Σχεδιαστής δημιουργεί αυτόματα τις αντίστοιχες θύρες. Ο παρακάτω πίνακας εξηγεί τι κάνει κάθε καταχώρηση και κάθε δημιουργημένη θύρα.

Θύρα ή χαρακτηριστικό Τι κάνει
Λαμβάνει χώρα Αριθμός παρουσιών της στήλης σε μία γραμμή προέλευσης. Η τιμή 0 υποδηλώνει μια στήλη που εμφανίζεται μόνο μία φορά, όπως το όνομα καταστήματος.
Επίπεδο Ομαδοποιεί τις στήλες σε μια ιεραρχία εγγραφών. Χρησιμοποιείται για πηγές COBOL και παραμένει στο 0 για μια επίπεδη δομή.
Θύρες εισόδου Ένας Κανονικοποιητής Διοχέτευσης δημιουργεί μία θύρα εισόδου ανά εμφάνιση, επομένως μια τιμή 4 στην παράμετρο Occurs παράγει τέσσερις θύρες εισόδου.
θύρα εξόδου Μια στήλη με πολλαπλές εμφανίσεις έχει μία μόνο θύρα εξόδου που επιστρέφει μία γραμμή ανά εμφάνιση.
ΓΚ_ Δημιουργήθηκε κλειδί. Η Υπηρεσία Ενοποίησης αυξάνει αυτόν τον αριθμό ακολουθίας κάθε φορά που επεξεργάζεται μια γραμμή προέλευσης.
GCID_ Δημιουργήθηκε αναγνωριστικό στήλης. Είναι ο δείκτης της εμφάνισης, επομένως μια στήλη που εμφανίζεται τέσσερις φορές επιστρέφει 1, 2, 3 ή 4.

Αξίζει να θυμόμαστε τη διαφορά μεταξύ των δύο δημιουργημένων θυρών, επειδή και οι δύο μοιάζουν με μετρητές. Το GCID επανεκκινείται στο 1 για κάθε σειρά προέλευσης, ενώ το GK συνεχίζει να ανεβαίνει σε ολόκληρη την περίοδο λειτουργίας. Στον χάρτη πωλήσεωνping, το GK_sales είναι η θύρα που συνδέεται με τον προορισμό, επομένως καθεμία από τις οκτώ γραμμές εξόδου φέρει ένα ξεχωριστό κλειδί.

Δύο ρυθμίσεις στην καρτέλα Ιδιότητες ελέγχουν τον τρόπο συμπεριφοράς αυτού του κλειδιού μεταξύ των εκτελέσεων. Επαναφορά επιστρέφει την τιμή κλειδιού που δημιουργήθηκε στο τέλος της συνεδρίας στην τιμή που είχε πριν από την έναρξη της συνεδρίας. επανεκκίνηση ξεκινά την ακολουθία κλειδιών που δημιουργείται στο 1 κάθε φορά που εκτελείται η συνεδρία, παρακάμπτοντας την τιμή ακολουθίας που εμφανίζεται στην καρτέλα Θύρες. Οι πλήρεις ορισμοί χαρακτηριστικών δημοσιεύονται στο Οδηγός Μετασχηματισμού PowerCenter.

Κανονικοποιητής VSAM έναντι Κανονικοποιητή Αγωγού

Το PowerCenter παρέχει δύο εκδόσεις του ίδιου μετασχηματισμού και το παραπάνω παράδειγμα χρησιμοποιεί τη δεύτερη. Η επιλογή μεταξύ τους καθορίζεται αποκλειστικά από την πηγή.

Άποψη Κανονικοποιητής VSAM Κανονικοποιητής αγωγού
Ρόλος στον χάρτηping Λειτουργεί ως ο Προσδιοριστής Πηγής για έναν ορισμό πηγής COBOL Βρίσκεται οπουδήποτε στον αγωγό, κατάντη ενός κανονικού Προσδιοριστή Πηγής
Πώς δημιουργείται Δημιουργείται αυτόματα όταν η πηγή COBOL σύρεται στον χάρτηping Δημιουργήθηκε από το μενού Μετασχηματισμός, όπως στο Βήμα 3 παραπάνω
Θύρες εισόδου για μια επαναλαμβανόμενη στήλη Μία θύρα εισόδου για ολόκληρη τη στήλη πολλαπλών εμφανίσεων Μία θύρα εισόδου για κάθε εμφάνιση της στήλης
Επεξεργασία των στηλών Αλλάξτε την πηγή COBOL και δημιουργήστε ξανά τον μετασχηματισμό Επεξεργαστείτε τις στήλες στην καρτέλα Normalizer ανά πάσα στιγμή
Τυπικά δεδομένα Αρχεία mainframe που χρησιμοποιούν όρους OCCURS και REDEFINES Επαναλαμβανόμενες στήλες σε σχεσιακούς πίνακες και επίπεδα αρχεία

Ένα αρχείο COBOL μπορεί επίσης να περιέχει πολλούς τύπους εγγραφών στο ίδιο φυσικό αρχείο, γι' αυτό και η έκδοση VSAM διαβάζει ένα τετράδιο αντί για μια λίστα στηλών. Για καθημερινή χρήση ETL Για να εργαστείτε με βάσεις δεδομένων και οριοθετημένα αρχεία, ο Κανονικοποιητής αγωγού είναι αυτός που πρέπει να χρησιμοποιήσετε.

Συνήθη σφάλματα μετασχηματισμού κανονικοποιητή και πώς να τα διορθώσετε

Τα περισσότερα προβλήματα του Normalizer tracΕπιστροφή σε δύο ή τρεις ρυθμίσεις. Η παρακάτω λίστα καλύπτει αυτές που εμφανίζονται πιο συχνά κατά την ανάπτυξη.

  • Η λίστα θυρών δεν ταιριάζει με την πηγή. Πολύ λίγες ή πάρα πολλές θύρες εισόδου σχεδόν πάντα σημαίνουν ότι η τιμή Occups είναι λανθασμένη. Ανοίξτε ξανά την καρτέλα Normalizer και ορίστε την τιμή Occups στον ακριβή αριθμό επαναλαμβανόμενων στηλών και, στη συνέχεια, συνδέστε ξανά τον χάρτη.ping, επειδή η αλλαγή συμβαίνει ανακατασκευάζει τις θύρες.
  • Εμφανίζεται σε μια στήλη που εμφανίζεται μόνο μία φορά. Η απόδοση στο όνομα καταστήματος μιας τιμής Occups μεγαλύτερης από 0 πολλαπλασιάζει τις γραμμές που δεν προορίζονταν ποτέ να επαναληφθούν. Οι στήλες που εμφανίζονται μόνο μία φορά παραμένουν στο 0.
  • Δεν είναι δυνατός ο ορισμός στηλών ημερομηνίας. Η καρτέλα Normalizer δέχεται μόνο στήλες String, Nstring και Number, επομένως μια ημερομηνία πρέπει να μεταφερθεί ως συμβολοσειρά και να μετατραπεί σε έναν μετασχηματισμό Expression πριν φτάσει στον στόχο.
  • Οι αριθμοί γραμμών φαίνονται λανθασμένοι στο αρχείο καταγραφής περιόδου λειτουργίας. Η ανάγνωση δύο γραμμών προέλευσης και η εγγραφή οκτώ γραμμών προορισμού είναι σωστή συμπεριφορά για μια τιμή Occups 4, όχι ελάττωμα. Ο Κανονικοποιητής είναι ενεργός ακριβώς επειδή αυτές οι μετρήσεις διαφέρουν.
  • Τα δημιουργημένα κλειδιά επαναλαμβάνονται ή μεταπηδούν μεταξύ των εκτελέσεων. Αυτό είναι το ζεύγος Επαναφορά και Επανεκκίνηση στην καρτέλα Ιδιότητες. Η επανεκκίνηση επιβάλλει την ακολουθία πίσω στο 1 για κάθε συνεδρία, κάτι που σπάνια είναι επιθυμητό όταν το κλειδί καταλήγει σε έναν πίνακα αποθήκης.
  • Οι επεξεργασίες στην καρτέλα "Θύρες" δεν θα παραμείνουν. Οι θύρες δημιουργούνται, δεν συντάσσονται. Κάθε αλλαγή στήλης ανήκει στην καρτέλα Normalizer και για έναν VSAM Normalizer η αλλαγή ανήκει στον ίδιο τον πηγαίο κώδικα COBOL.

Όταν πρέπει να χωριστούν πολλές επαναλαμβανόμενες ομάδες ταυτόχρονα, είναι συνήθως πιο εύκολο να χρησιμοποιήσετε έναν Κανονικοποιητή ανά ομάδα και να συνδυάσετε τα αποτελέσματα κατάντη παρά να υπερφορτώσετε έναν μόνο μετασχηματισμό. Όπου η απαίτηση εκτελείται αντίστροφα, συμπτύσσοντας πολλές γραμμές σε μία, ένα Μετασχηματισμός συσσωρευτή είναι το σωστό εργαλείο αντ' αυτού.

Συχνές Ερωτήσεις

Όχι. Ο μετασχηματισμός διαιρεί μόνο μία γραμμή σε πολλές. Η σύμπτυξη πολλών γραμμών σε μία γίνεται με έναν Συγκεντρωτή ή με μια Έκφραση που περιστρέφει τιμές χρησιμοποιώντας μεταβλητές θύρες, ανάλογα με το πώς έχουν διαμορφωθεί οι στήλες εξόδου.

Μόνο συμβολοσειρά, συμβολοσειρά N και αριθμός. Δεν υπάρχει επιλογή ημερομηνίας/ώρας στην καρτέλα Κανονικοποιητής, επομένως οι τιμές ημερομηνίας πρέπει να μετακινούνται μέσω του μετασχηματισμού ως συμβολοσειρές και να μετατρέπονται σε έναν μετασχηματισμό έκφρασης εκατέρωθεν αυτού.

Ναι. Χάρτης ενοποίησης δεδομένων cloudping Ο σχεδιαστής προσφέρει έναν μετασχηματισμό Normalizer με τον ίδιο σκοπό, που διαμορφώνεται μέσω μιας τιμής εμφάνισης ανά πεδίο. Η διάταξη καρτέλας διαφέρει από το PowerCenter, επομένως ο χάρτηςpingΤα s ανακατασκευάζονται αντί να αντιγράφονται.

Μια Ένωση συγχωνεύει γραμμές που φτάνουν από διάφορες διοχετεύσεις σε μία ροή με μια κοινόχρηστη λίστα θυρών. Ένας Κανονικοποιητής λειτουργεί σε μία διοχέτευση και πολλαπλασιάζει γραμμές από επαναλαμβανόμενες στήλες μέσα σε κάθε εισερχόμενη εγγραφή.

Ένας Κανονικοποιητής Διοχέτευσης μπορεί να δημιουργηθεί στον Προγραμματιστή Μετασχηματισμού ή να προωθηθεί από έναν χάρτηpingκαι στη συνέχεια κοινοποιήθηκε. Ένας κανονικοποιητής VSAM δεν μπορεί, επειδή είναι συνδεδεμένος με τον ορισμό πηγής COBOL που τον δημιούργησε.

Ο ίδιος ο μετασχηματισμός είναι φθηνός επειδή δεν διατηρεί προσωρινή μνήμη. Το κόστος εμφανίζεται κατάντη: μια τιμή Occups ίση με τέσσερα τετραπλασιάζει τον όγκο γραμμών κάθε μεταγενέστερο μετασχηματισμό και ο συγγραφέας-στόχος πρέπει να τον χειριστεί.

Τα μοντέλα δημιουργίας προφίλ σαρώνουν τις στήλες προέλευσης και επισημαίνουν επαναλαμβανόμενες ομάδες, όπως QUARTER1 έως QUARTER4, που ανήκουν σε γραμμές και όχι σε στήλες. Η πρόταση είναι ένα σημείο εκκίνησης — οι τιμές που εμφανίζονται και ο χειρισμός κλειδιών χρειάζονται ακόμη έναν προγραμματιστή για να τις επιβεβαιώσει.

Βοηθάει στον χάρτηping αντί να το περιστρέφετε μέσα σε αυτό — γράφοντας την SQL που αποσυνδέει έναν πίνακα για σύγκριση, δημιουργώντας δεδομένα δοκιμών ή σχεδιάζοντας αρχεία παραμέτρων. Ο ίδιος ο καμβάς του Designer δεν είναι κάτι που μπορεί να επεξεργαστεί ο Copilot.

Συνοψίστε αυτήν την ανάρτηση με: