Aggregator Transformation στην Informatica με Παράδειγμα
⚡ Έξυπνη Σύνοψη
Ο μετασχηματισμός αθροιστή στην Informatica είναι το ενεργό αντικείμενο που εκτελεί υπολογισμούς όπως άθροισμα, μέσος όρος και μέτρηση σε μια ομάδα γραμμών, διατηρώντας αυτές τις γραμμές σε μια συγκεντρωτική προσωρινή μνήμη μέχρι να ολοκληρωθεί κάθε ομάδα.

Τι είναι ο Μετασχηματισμός Συσσωρευτή;
Ο μετασχηματισμός αθροιστή είναι ένας ενεργός μετασχηματισμός που εκτελεί αθροιστικούς υπολογισμούς όπως άθροισμα, μέσος όρος και πλήθος.
Για παράδειγμα, αν θέλετε να υπολογίσετε το άθροισμα των μισθών όλων των υπαλλήλων ανά τμήμα, μπορείτε να χρησιμοποιήσετε τον μετασχηματισμό Aggregator.
Οι συγκεντρωτικές πράξεις εκτελούνται σε μια ομάδα σειρών, επομένως απαιτείται ένα προσωρινό σύμβολο κράτησης θέσης για την αποθήκευση όλων αυτών των εγγραφών και την εκτέλεση των υπολογισμών.
Για αυτό, χρησιμοποιείται η προσωρινή μνήμη aggregator. Αυτή είναι η προσωρινή κύρια μνήμη που εκχωρείται στον μετασχηματισμό Aggregator για την εκτέλεση τέτοιων λειτουργιών και φυλάσσεται σε δύο μέρη: η προσωρινή μνήμη ευρετηρίου αποθηκεύει τις τιμές ομάδας, ενώ η προσωρινή μνήμη δεδομένων αποθηκεύει τα δεδομένα γραμμής που συγκεντρώνονται.
Ο μετασχηματισμός είναι ενεργός επειδή αλλάζει τον αριθμό των γραμμών στη διοχέτευση. Αρκετές χιλιάδες εγγραφές υπαλλήλων μπορούν να εισέλθουν σε αυτόν και μόνο μία γραμμή ανά τμήμα εξέρχεται από αυτόν.
Πώς να χρησιμοποιήσετε τον μετασχηματισμό συσσωρευτή στην Informatica
Σε αυτό το παράδειγμα, θα υπολογίσουμε το άθροισμα των μισθών του τμήματος. Για αυτό, χρειαζόμαστε μια νέα στήλη για την αποθήκευση αυτού του αθροίσματος. Έτσι, πρώτα απ 'όλα, θα ετοιμάσουμε μια νέα στήλη.
Βήμα 1) Δημιουργήστε έναν νέο πίνακα προορισμού βάσης δεδομένων, για παράδειγμα, πείτε "sum_sal_deptwise", χρησιμοποιώντας το παρακάτω σενάριο. Θα δείτε τον νέο πίνακα προορισμού βάσης δεδομένων που δημιουργήθηκε κάτω από το Targetφάκελο s στο επόμενο βήμα.
Κάντε λήψη του παραπάνω αρχείου Create_table_sal_deptwise.txt
Βήμα 2) Δημιουργήστε ένα νέο χαρτης «m_sum_sal_deptwise».
Για να δημιουργήσετε τον νέο χάρτηping, χρειαζόμαστε τον πίνακα προέλευσης (EMP) και τον πίνακα προορισμού (sum_sal_deptwise) στο Mapping Σχεδιαστής, οπότε πρέπει να
- Εισαγάγετε τον πίνακα-στόχο "sum_sal_deptwise" στον χάρτηping.
- Εισαγάγετε τον πίνακα προέλευσης "emp".
Και οι δύο ορισμοί εμφανίζονται τώρα στον καμβά, όπως φαίνεται παρακάτω.
Βήμα 3) Στον χάρτηping,
- Από το Προσδιορισμός πηγής, διαγράψτε τις στήλες empno, ename, job, mgr, hiredate και comm, αφήνοντας μόνο τις στήλες deptno και sal.
- Δημιουργήστε έναν νέο μετασχηματισμό Συγκεντρωτή χρησιμοποιώντας το μενού εργαλείων, όπως φαίνεται στο στιγμιότυπο οθόνης. Όταν κάνετε κλικ στο εικονίδιο του συγκεντρωτή, θα δημιουργηθεί ένας νέος μετασχηματισμός Συγκεντρωτή.
Το νέο αντικείμενο AGGTRANS εμφανίζεται δίπλα στον περικομμένο προσδιοριστή πηγαίου κώδικα.
Βήμα 4) Σύρετε και αποθέστε τις στήλες SAL και DEPTNO από τον Προσδιοριστή Πηγής (SQ_EMP) στον μετασχηματισμό Aggregator. Οι δύο θύρες είναι πλέον συνδεδεμένες στο AGGTRANS.
Βήμα 5) Double-κάντε κλικ στον μετασχηματισμό Aggregator για να ανοίξετε τις ιδιότητές του και, στη συνέχεια,
- Προσθέστε μια νέα θύρα στον μετασχηματισμό
- Μετονομάστε τη θύρα σε SUM_SAL
- Αλλάξτε τον τύπο δεδομένων αυτής της νέας θύρας σε διπλάσιο
- Ορίστε αυτήν τη θύρα ως θύρα εξόδου επιλέγοντας το πλαίσιο ελέγχου της θύρας εξόδου
- Κάντε κλικ στην επιλογή έκφρασης
Η καρτέλα "Θύρες" παραθέτει πλέον τις SAL, DEPTNO και τη νέα θύρα εξόδου SUM_SAL.
Βήμα 6) Στο παράθυρο του Επεξεργαστή Εκφράσεων
- Προσθέστε την έκφραση sum(SAL)· πρέπει να γράψετε αυτήν την έκφραση μόνοι σας.
- Επιλέξτε το κουμπί OK, αυτό θα επαναφέρει το παράθυρο Επεξεργασία μετασχηματισμών.
Ο Επεξεργαστής Εκφράσεων εμφανίζει την συγκεντρωτική έκφραση που έχει αντιστοιχιστεί στο SUM_SAL.
Βήμα 7) Στο παράθυρο Επεξεργασία Μετασχηματισμών, επιλέξτε την επιλογή «Ομαδοποίηση κατά» επιλέγοντας το πλαίσιο ελέγχου δίπλα στη στήλη deptno και κάντε κλικ στο OK. Επιλέγοντας ομαδοποίηση κατά έναντι deptno, δίνουμε εντολή στην Informatica να ομαδοποιήσει τους μισθούς κατά deptno.
Βήμα 8) Συνδέστε τις στήλες deptno και sum_sal από τον μετασχηματισμό Aggregator με τον πίνακα προορισμού. Ο χάρτηςping στη συνέχεια ολοκληρώνεται από την πηγή στον στόχο.
Τώρα αποθηκεύστε τον χάρτηping και εκτελέστε το αφού δημιουργήσετε ένα νέο Συνεδρίαση για αυτόν τον χάρτηpingΟ πίνακας-στόχος θα περιέχει το άθροισμα των μισθών ανά τμήμα. Με αυτόν τον τρόπο, μπορούμε να χρησιμοποιήσουμε τον μετασχηματισμό Aggregator για να υπολογίσουμε τα συγκεντρωτικά αποτελέσματα.
Ομαδοποίηση κατά θύρες στον μετασχηματισμό του αθροιστή
Το παραπάνω βήμα επισήμανε μια μεμονωμένη θύρα ως Ομαδοποίηση κατά, η οποία μετέτρεψε ένα σύνολο σε ολόκληρη την εταιρεία σε ένα σύνολο ανά τμήμα. Οποιαδήποτε είσοδος, είσοδος/έξοδος, έξοδος ή μεταβλητή θύρα μπορεί να επισημανθεί με τον ίδιο τρόπο.
Τρεις κανόνες διέπουν το σύνολο αποτελεσμάτων:
- Μία σειρά ανά ομάδα. Όταν οι τιμές ομαδοποιούνται, η Υπηρεσία Ενοποίησης παράγει μία γραμμή για κάθε μοναδικό συνδυασμό της ομάδας ανά θύρα.
- Χωρίς ομαδοποίηση, μία σειρά. Εάν δεν έχει επισημανθεί καμία θύρα, ολόκληρη η είσοδος αντιμετωπίζεται ως μία ομάδα και επιστρέφεται μία γραμμή για όλες τις γραμμές εισόδου.
- Η τελευταία σειρά κερδίζει. Παράλληλα με το συνολικό αποτέλεσμα, η Υπηρεσία Ενοποίησης συνήθως μεταβιβάζει την τελευταία γραμμή που λαμβάνεται στην ομάδα, εκτός εάν μια συνάρτηση όπως η FIRST ονομάζει διαφορετική γραμμή.
Όπου σημειώνονται πολλά λιμάνια, η σειρά των λιμένων καθορίζει την ομάδα.ping σειρά, και η σειρά μπορεί να αλλάξει το αποτέλεσμα. Ομάδαping από το DEPTNO και στη συνέχεια το JOB δεν είναι το ίδιο με το grouping από JOB και στη συνέχεια DEPTNO, επειδή οι τιμές της δεύτερης στήλης δεν είναι απαραίτητα μοναδικές.
Ιδιότητες μετασχηματισμού συσσωρευτή
Η καρτέλα Ιδιότητες του παραθύρου Επεξεργασία Μετασχηματισμών περιέχει τις ρυθμίσεις που καθορίζουν πού βρίσκεται η προσωρινή μνήμη και πόσο από αυτήν θα χρησιμοποιηθεί. Ο παρακάτω πίνακας τις παραθέτει.
| Ρύθμιση | Τι ελέγχει |
|---|---|
| Κατάλογος προσωρινής μνήμης | Τοπικός κατάλογος στον οποίο η Υπηρεσία Ενοποίησης δημιουργεί τα αρχεία ευρετηρίου και προσωρινής μνήμης δεδομένων. Η προεπιλογή είναι η μεταβλητή διεργασίας $PMCacheDir που έχει οριστεί στο Workflow Manager. |
| TracΕπίπεδο ing | Ποσότητα λεπτομερειών που εγγράφηκαν στο αρχείο καταγραφής περιόδου λειτουργίας για αυτόν τον μετασχηματισμό. |
| Ταξινομημένη Είσοδος | Δηλώνει ότι τα εισερχόμενα δεδομένα έχουν ήδη ταξινομηθεί κατά ομάδα ανά θύρα. Επιλέξτε το μόνο όταν ο χάρτηςping πραγματικά παρέχει ταξινομημένα δεδομένα. |
| Μέγεθος προσωρινής μνήμης δεδομένων συγκεντρωτή | Μέγεθος της προσωρινής μνήμης δεδομένων. Η προεπιλογή είναι 2,000,000 byte και η επιλογή "Αυτόματα" επιτρέπει στην Υπηρεσία Ενοποίησης να το ορίσει ως μέγεθος. |
| Μέγεθος προσωρινής μνήμης ευρετηρίου συγκεντρωτή | Μέγεθος της προσωρινής μνήμης ευρετηρίου. Η προεπιλογή είναι 1,000,000 byte και η επιλογή "Αυτόματα" επιτρέπει στην Υπηρεσία Ενοποίησης να το ορίσει ως μέγεθος. |
| Πεδίο εφαρμογής μετασχηματισμού | Εφαρμόζει τη λογική σε κάθε συναλλαγή ή σε όλα τα εισερχόμενα δεδομένα. Η επιλογή "Όλες οι εισροές" καταργεί τα όρια των εισερχόμενων συναλλαγών. |
Όταν είναι ενεργοποιημένη η σταδιακή συνάθροιση, η Υπηρεσία Ενοποίησης εγγράφει ένα αντίγραφο ασφαλείας των αρχείων προσωρινής μνήμης σε κάθε εκτέλεση, επομένως ο κατάλογος προσωρινής μνήμης πρέπει να περιέχει δύο σύνολα αρχείων αντί για ένα.
Κανόνες Συγκεντρωτικών Εκφράσεων και Συμβουλές Απόδοσης
Μια συγκεντρωτική έκφραση μπορεί να συνδυάζει μια συγκεντρωτική συνάρτηση με όρους υπό όρους και μη συγκεντρωτικές συναρτήσεις, γεγονός που καθιστά δυνατά τα αθροίσματα και τους αριθμούς υπό όρους μέσα σε μία θύρα. Δύο κανόνες περιορίζουν τι μπορεί να γραφτεί.
- Ένα επίπεδο φωλιάσματος. Μόνο μία συγκεντρωτική συνάρτηση μπορεί να είναι ένθετη μέσα σε μια άλλη και η εσωτερική έκφραση αξιολογείται πρώτα.
- Χωρίς ανάμειξη. Ένας μετασχηματισμός μπορεί να περιέχει συναρτήσεις ενός επιπέδου ή ένθετες συναρτήσεις, ποτέ και τις δύο. Εάν περιέχει και τις δύο, ο Σχεδιαστής επισημαίνει τον χάρτη.ping άκυρο, επομένως διαιρέστε τη λογική σε δύο μετασχηματισμούς Aggregator.
Από την πλευρά του συντονισμού, τρεις ρυθμίσεις κάνουν το μεγαλύτερο μέρος της δουλειάς:
- Ταξινομημένη εισαγωγή. Όταν οι γραμμές φτάνουν ταξινομημένες κατά ομάδα ανά θύρα, κάθε ομάδα μπορεί να αποδεσμευτεί μόλις φτάσει η τελευταία γραμμή της, με αποτέλεσμα λιγότερα δεδομένα να αποθηκεύονται προσωρινά και η συνεδρία να εκτελείται πιο γρήγορα. Η ταξινομημένη εισαγωγή δεν μπορεί να συνδυαστεί με σταδιακή συγκέντρωση.
- Σταδιακή συσσωμάτωση. Νέες γραμμές πηγής περνούν μέσω του χάρτηping και σε συνδυασμό με την ιστορική προσωρινή μνήμη αντί για τον επανυπολογισμό του ιστορικού, κάτι που ταιριάζει σε μια νυχτερινή φόρτωση σε ένα τρέχον σύνολο.
- Φιλτράρετε νωρίς. Οι γραμμές που δεν θα συμβάλουν ποτέ σε ένα σύνολο θα πρέπει να παραλείπονται πριν από τον Συγκεντρωτή, είτε στο ερώτημα Προσδιοριστής Πηγής είτε σε ένα Μετασχηματισμός φίλτρου, επειδή κάθε γραμμή που φτάνει στον Συγκεντρωτή κοστίζει προσωρινή μνήμη. Αυτός είναι ένας από τους τυπικούς ελέγχους κατά τη διάρκεια συντονισμός απόδοσης.







