Aggregator Transformation στην Informatica με Παράδειγμα

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

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

  • 🧮 Ομαδοποιημένος υπολογισμός: Η ομαδοποίηση ανά θύρα ορίζει τις ομάδες και η Υπηρεσία ενοποίησης επιστρέφει μία γραμμή για κάθε μοναδικό συνδυασμό.
  • 💾 Δύο κρυφές μνήμες: Οι τιμές ομάδων διατηρούνται στην προσωρινή μνήμη ευρετηρίου, ενώ τα δεδομένα γραμμών διατηρούνται στην προσωρινή μνήμη δεδομένων.
  • 🧪 Λειτουργικό παράδειγμα: Η έκφραση sum(SAL) ομαδοποιημένη κατά DEPTNO φορτώνει τα σύνολα των τμημάτων στο SUM_SAL_DEPTWISE.
  • 🔀 Ταξινομημένη εισαγωγή: Η προταξινόμηση της ομάδας ανά θύρα επιτρέπει στην Υπηρεσία Ενοποίησης να αποδεσμεύει κάθε ομάδα νωρίς και να αποθηκεύει στην προσωρινή μνήμη πολύ λιγότερα δεδομένα.
  • 📈 Σταδιακές διαδρομές: Η σταδιακή συνάθροιση επαναχρησιμοποιεί την ιστορική προσωρινή μνήμη, επομένως υπολογίζονται μόνο οι νέες γραμμές προέλευσης.
  • 🚫 Όριο ένθεσης: Ένας μόνο μετασχηματισμός μπορεί να περιέχει συναρτήσεις ενός επιπέδου ή ένθετες συναρτήσεις, ποτέ και τις δύο.

Aggregator Transformation στην 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 Σχεδιαστής, οπότε πρέπει να

  1. Εισαγάγετε τον πίνακα-στόχο "sum_sal_deptwise" στον χάρτηping.
  2. Εισαγάγετε τον πίνακα προέλευσης "emp".

Και οι δύο ορισμοί εμφανίζονται τώρα στον καμβά, όπως φαίνεται παρακάτω.

Χάρτηςping Σχεδιαστής με την προέλευση EMP, SQ_EMP και τον εισαγόμενο στόχο SUM_SAL_DEPTWISE

Βήμα 3) Στον χάρτηping,

  1. Από το Προσδιορισμός πηγής, διαγράψτε τις στήλες empno, ename, job, mgr, hiredate και comm, αφήνοντας μόνο τις στήλες deptno και sal.
  2. Δημιουργήστε έναν νέο μετασχηματισμό Συγκεντρωτή χρησιμοποιώντας το μενού εργαλείων, όπως φαίνεται στο στιγμιότυπο οθόνης. Όταν κάνετε κλικ στο εικονίδιο του συγκεντρωτή, θα δημιουργηθεί ένας νέος μετασχηματισμός Συγκεντρωτή.

Το νέο αντικείμενο AGGTRANS εμφανίζεται δίπλα στον περικομμένο προσδιοριστή πηγαίου κώδικα.

Εικονίδιο αθροιστή στη γραμμή εργαλείων που δημιουργεί AGGTRANS δίπλα στο κομμένο SQ_EMP

Βήμα 4) Σύρετε και αποθέστε τις στήλες SAL και DEPTNO από τον Προσδιοριστή Πηγής (SQ_EMP) στον μετασχηματισμό Aggregator. Οι δύο θύρες είναι πλέον συνδεδεμένες στο AGGTRANS.

Οι θύρες SAL και DEPTNO μεταφέρθηκαν από το SQ_EMP στον μετασχηματισμό Aggregator AGGTRANS

Βήμα 5) Double-κάντε κλικ στον μετασχηματισμό Aggregator για να ανοίξετε τις ιδιότητές του και, στη συνέχεια,

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

Η καρτέλα "Θύρες" παραθέτει πλέον τις SAL, DEPTNO και τη νέα θύρα εξόδου SUM_SAL.

Καρτέλα "Θύρες" του AGGTRANS με τη νέα θύρα εξόδου SUM_SAL ορισμένη στον διπλό τύπο δεδομένων

Βήμα 6) Στο παράθυρο του Επεξεργαστή Εκφράσεων

  1. Προσθέστε την έκφραση sum(SAL)· πρέπει να γράψετε αυτήν την έκφραση μόνοι σας.
  2. Επιλέξτε το κουμπί OK, αυτό θα επαναφέρει το παράθυρο Επεξεργασία μετασχηματισμών.

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

Επεξεργαστής έκφρασης για τη θύρα SUM_SAL που περιέχει την συγκεντρωτική έκφραση sum(SAL)

Βήμα 7) Στο παράθυρο Επεξεργασία Μετασχηματισμών, επιλέξτε την επιλογή «Ομαδοποίηση κατά» επιλέγοντας το πλαίσιο ελέγχου δίπλα στη στήλη deptno και κάντε κλικ στο OK. Επιλέγοντας ομαδοποίηση κατά έναντι deptno, δίνουμε εντολή στην Informatica να ομαδοποιήσει τους μισθούς κατά deptno.

Καρτέλα Θύρες με επιλεγμένο το πλαίσιο ελέγχου Ομαδοποίηση κατά τη θύρα DEPTNO

Βήμα 8) Συνδέστε τις στήλες deptno και sum_sal από τον μετασχηματισμό Aggregator με τον πίνακα προορισμού. Ο χάρτηςping στη συνέχεια ολοκληρώνεται από την πηγή στον στόχο.

Τα DEPTNO και SUM_SAL συνδέονται από το AGGTRANS με τον ορισμό στόχου SUM_SAL_DEPTWISE

Τώρα αποθηκεύστε τον χάρτη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 και σε συνδυασμό με την ιστορική προσωρινή μνήμη αντί για τον επανυπολογισμό του ιστορικού, κάτι που ταιριάζει σε μια νυχτερινή φόρτωση σε ένα τρέχον σύνολο.
  • Φιλτράρετε νωρίς. Οι γραμμές που δεν θα συμβάλουν ποτέ σε ένα σύνολο θα πρέπει να παραλείπονται πριν από τον Συγκεντρωτή, είτε στο ερώτημα Προσδιοριστής Πηγής είτε σε ένα Μετασχηματισμός φίλτρου, επειδή κάθε γραμμή που φτάνει στον Συγκεντρωτή κοστίζει προσωρινή μνήμη. Αυτός είναι ένας από τους τυπικούς ελέγχους κατά τη διάρκεια συντονισμός απόδοσης.

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

Οι συνολικές οικογενειακές καλύψεις AVG, COUNT (ΠΛΗΘΟΣ), FIRST (ΠΡΩΤΟ), LAST (ΕΠΙΣΤΗΜΟΝΟ), MAX (ΜΕΓΙΣΤΟ), MEDIAN (ΔΙΑΜΕΣΟΣ), MIN (ΕΛΑΧΙΣΤΟ), PERCENTILE (ΕΚΤΟΣΟΣΤΗ), STDDEV (ΤΡΙΤΗ ΑΠΟΔΕΙΞΗ ΜΕΓΙΣΤΗΣ ΠΟΙΟΤΗΤΑΣ), SUM (ΑΓΩΝΑΣ ΜΕΓΙΣΤΗΣ ΠΟΙΟΤΗΤΑΣ) και VARIANCE (ΔΙΑΦΟΡΑ). Κάθε ένα επιστρέφει μια συνοπτική τιμή για τις μη μηδενικές τιμές στην επιλεγμένη θύρα.

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

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

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

Από προεπιλογή, η Υπηρεσία Ενοποίησης αντιμετωπίζει τις τιμές null ως NULL και τις παραλείπει, επομένως ένα άθροισμα αγνοεί τους κενούς μισθούς. Η υπηρεσία μπορεί αντ' αυτού να ρυθμιστεί ώστε να αντιμετωπίζει τις τιμές null σε συναρτήσεις συγκεντρωτικών αποτελεσμάτων ως μηδέν.

Στον κατάλογο που ονομάζεται από τη ρύθμιση Cache Directory, η οποία από προεπιλογή έχει τη μεταβλητή διεργασίας $PMCacheDir που έχει ρυθμιστεί στο Workflow Manager. Βεβαιωθείτε ότι αυτός ο κατάλογος υπάρχει και έχει αρκετό ελεύθερο χώρο στο δίσκο.

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

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

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