Normalizer Transformation στην Informatica με ΠΑΡΑΔΕΙΓΜΑ
⚡ Έξυπνη Σύνοψη
Ο μετασχηματισμός κανονικοποιητή στο Informatica είναι ένας ενεργός μετασχηματισμός που μετατρέπει μια μεμονωμένη γραμμή που περιέχει επαναλαμβανόμενες στήλες σε πολλαπλές γραμμές και δημιουργεί επίσης τις βασικές στήλες που προσδιορίζουν κάθε εμφάνιση που παράγει.

Τι είναι ο μετασχηματισμός κανονικοποιητή;
Ο κανονικοποιητής είναι ένας ενεργός μετασχηματισμός, που χρησιμοποιείται για τη μετατροπή μιας μεμονωμένης γραμμής σε πολλές γραμμές και αντίστροφα. Είναι ένας έξυπνος τρόπος αναπαράστασης των δεδομένων σας με πιο οργανωμένο τρόπο.
Εάν σε μία μόνο γραμμή υπάρχουν επαναλαμβανόμενα δεδομένα σε πολλές στήλες, τότε αυτή μπορεί να χωριστεί σε πολλές γραμμές. Μερικές φορές έχουμε δεδομένα σε πολλές στήλες που εμφανίζονται. Για παράδειγμα:
| Ονομα μαθητή | Βαθμολογία 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 Ο καμβάς σχεδιαστή περιέχει στη συνέχεια τον ορισμό πηγής, τον Προσδιορισμός πηγής και ο ορισμός του στόχου.
Βήμα 3) Από το μενού Μετασχηματισμός, δημιουργήστε έναν νέο μετασχηματισμό. Στο παράθυρο Δημιουργία μετασχηματισμού:
- Επιλέξτε τον Κανονικοποιητή ως μετασχηματισμό
- Εισαγάγετε όνομα, "nrm_sales"
- Επιλέξτε την επιλογή δημιουργίας
Το παράθυρο μοιάζει με το παρακάτω στιγμιότυπο οθόνης, με τη λίστα τύπων μετασχηματισμού στα αριστερά και το πλαίσιο ονόματος από κάτω.
Βήμα 4) Ο μετασχηματισμός θα δημιουργηθεί, επιλέξτε την επιλογή ολοκλήρωσης. Ο κενός μετασχηματισμός nrm_sales βρίσκεται πλέον στον καμβά μεταξύ του Προσδιοριστή Πηγής και του στόχου.
Βήμα 5) Double κάντε κλικ στον μετασχηματισμό Normalizer και, στη συνέχεια:
- Επιλέξτε την καρτέλα Κανονικοποιητής
- Κάντε κλικ στο εικονίδιο για να δημιουργήσετε δύο στήλες
- Εισαγάγετε ονόματα στηλών
- Ορίστε τον αριθμό εμφάνισης σε 4 για τις πωλήσεις και 0 για το όνομα καταστήματος
- Επιλέξτε το κουμπί ΟΚ
Η τιμή "Εμφανίζεται" είναι η πιο σημαντική καταχώρηση σε αυτήν την καρτέλα: ενημερώνει τον Σχεδιαστή πόσες φορές επαναλαμβάνεται η στήλη σε μία γραμμή προέλευσης. Το όνομα του καταστήματος εμφανίζεται μία φορά ανά γραμμή, επομένως η τιμή "Εμφανίζεται" παραμένει στο 0.
Στον μετασχηματισμό θα δημιουργηθούν στήλες. Θα δείτε 4 αριθμούς στηλών πωλήσεων καθώς ορίζουμε τον αριθμό εμφανίσεων σε 4. Παράλληλα με αυτές, ο Σχεδιαστής προσθέτει το δημιουργημένο κλειδί και τις δημιουργημένες θύρες αναγνωριστικού στήλης που περιγράφονται στην επόμενη ενότητα.
Βήμα 6) Στη συνέχεια, στο χαρτης:
- Συνδέστε το προσδιοριστικό των τεσσάρων στηλών πηγής του τεσσάρου τριμήνου με τις στήλες του κανονικοποιητή αντίστοιχα.
- Συνδέστε τη στήλη ονόματος καταστήματος στη στήλη κανονικοποιητή
- Συνδέστε τις στήλες store_name & sales από τον κανονικοποιητή στον πίνακα προορισμού
- Συνδέστε τη στήλη GK_sales από τον κανονικοποιητή στον πίνακα προορισμού
Μόλις σχεδιαστεί κάθε σύνδεσμος, ο ολοκληρωμένος χάρτηςping μοιάζει με αυτό.
Αποθήκευση του χάρτη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.
Όταν πρέπει να χωριστούν πολλές επαναλαμβανόμενες ομάδες ταυτόχρονα, είναι συνήθως πιο εύκολο να χρησιμοποιήσετε έναν Κανονικοποιητή ανά ομάδα και να συνδυάσετε τα αποτελέσματα κατάντη παρά να υπερφορτώσετε έναν μόνο μετασχηματισμό. Όπου η απαίτηση εκτελείται αντίστροφα, συμπτύσσοντας πολλές γραμμές σε μία, ένα Μετασχηματισμός συσσωρευτή είναι το σωστό εργαλείο αντ' αυτού.






