AWS Glue Studio είναι μια γραφική διεπαφή που διευκολύνει τη δημιουργία, εκτέλεση και παρακολούθηση εργασιών εξαγωγής, μετατροπής και φόρτωσης (ETL) σε Κόλλα AWS. Σας επιτρέπει να συνθέσετε οπτικά ροές εργασίας μετασχηματισμού δεδομένων χρησιμοποιώντας κόμβους που αντιπροσωπεύουν διαφορετικά βήματα χειρισμού δεδομένων, τα οποία αργότερα μετατρέπονται αυτόματα σε κώδικα για εκτέλεση.
AWS Glue Studio κυκλοφόρησε πρόσφατα 10 ακόμη οπτικοί μετασχηματισμοί που επιτρέπουν τη δημιουργία πιο προηγμένων εργασιών με οπτικό τρόπο χωρίς δεξιότητες κωδικοποίησης. Σε αυτήν την ανάρτηση, συζητάμε περιπτώσεις πιθανών χρήσεων που αντικατοπτρίζουν κοινές ανάγκες ETL.
Οι νέοι μετασχηματισμοί που θα παρουσιαστούν σε αυτήν την ανάρτηση είναι: Συνένωση, Διαχωρισμός συμβολοσειράς, Πίνακας σε στήλες, Προσθήκη τρέχουσας χρονικής σφραγίδας, Συγκεντρωτικές γραμμές σε στήλες, Κατάργηση περιστροφής στηλών σε γραμμές, αναζήτηση, Έκρηξη πίνακα ή αντιστοίχιση σε στήλες, παράγωγη στήλη και επεξεργασία αυτόματης ισορροπίας .
Επισκόπηση λύσεων
Σε αυτήν την περίπτωση χρήσης, έχουμε ορισμένα αρχεία JSON με λειτουργίες επιλογής μετοχών. Θέλουμε να κάνουμε μερικούς μετασχηματισμούς πριν από την αποθήκευση των δεδομένων για να διευκολύνουμε την ανάλυση και θέλουμε επίσης να δημιουργήσουμε μια ξεχωριστή σύνοψη δεδομένων.
Σε αυτό το σύνολο δεδομένων, κάθε σειρά αντιπροσωπεύει μια συναλλαγή συμβάσεων προαίρεσης. Τα δικαιώματα προαίρεσης είναι χρηματοπιστωτικά μέσα που παρέχουν το δικαίωμα —αλλά όχι την υποχρέωση— αγοράς ή πώλησης μετοχών σε σταθερή τιμή (καλούμενη τιμή απεργίας) πριν από μια καθορισμένη ημερομηνία λήξης.
Εισαγωγή δεδομένων
Τα δεδομένα ακολουθούν το ακόλουθο σχήμα:
- order_id – Μια μοναδική ταυτότητα
- σύμβολο – Ένας κωδικός που βασίζεται γενικά σε λίγα γράμματα για τον προσδιορισμό της εταιρείας που εκπέμπει τις υποκείμενες μετοχές
- όργανο – Το όνομα που προσδιορίζει τη συγκεκριμένη επιλογή που αγοράζεται ή πωλείται
- νόμισμα – Ο κωδικός νομίσματος ISO στον οποίο εκφράζεται η τιμή
- τιμή – Το ποσό που καταβλήθηκε για την αγορά κάθε συμβολαίου δικαιώματος προαίρεσης (στα περισσότερα χρηματιστήρια, ένα συμβόλαιο σάς επιτρέπει να αγοράσετε ή να πουλήσετε 100 μετοχές)
- ανταλλαγή – Ο κωδικός του κέντρου ανταλλαγής ή του τόπου όπου έγινε η διαπραγμάτευση του δικαιώματος
- πωλούνται – Μια λίστα με τον αριθμό των συμβολαίων που διατέθηκαν για την πλήρωση της εντολής πώλησης όταν πρόκειται για συναλλαγή πώλησης
- αγόρασε – Μια λίστα με τον αριθμό των συμβολαίων που διατέθηκαν για την πλήρωση της εντολής αγοράς όταν πρόκειται για συναλλαγή αγοράς
Το παρακάτω είναι ένα δείγμα των συνθετικών δεδομένων που δημιουργήθηκαν για αυτήν την ανάρτηση:
Απαιτήσεις ETL
Αυτά τα δεδομένα έχουν μια σειρά από μοναδικά χαρακτηριστικά, όπως συχνά συναντώνται σε παλαιότερα συστήματα, που κάνουν τα δεδομένα πιο δύσκολο στη χρήση.
Οι ακόλουθες είναι οι απαιτήσεις ETL:
- Το όνομα του οργάνου έχει πολύτιμες πληροφορίες που προορίζονται να κατανοήσουν οι άνθρωποι. θέλουμε να το κανονικοποιήσουμε σε ξεχωριστές στήλες για ευκολότερη ανάλυση.
- Οι ιδιότητες
bought
καιsold
Αποκλείονται αμοιβαία· Μπορούμε να τα ενοποιήσουμε σε μία στήλη με τους αριθμούς συμβολαίων και να έχουμε μια άλλη στήλη που να δείχνει εάν τα συμβόλαια αγοράστηκαν ή πουλήθηκαν με αυτήν τη σειρά. - Θέλουμε να διατηρήσουμε τις πληροφορίες σχετικά με τις εκχωρήσεις μεμονωμένων συμβολαίων αλλά ως μεμονωμένες σειρές αντί να αναγκάζουμε τους χρήστες να ασχολούνται με μια σειρά αριθμών. Θα μπορούσαμε να αθροίσουμε τους αριθμούς, αλλά θα χάναμε πληροφορίες σχετικά με τον τρόπο ολοκλήρωσης της παραγγελίας (υποδεικνύοντας τη ρευστότητα της αγοράς). Αντίθετα, επιλέγουμε να αποκανονικοποιήσουμε τον πίνακα, ώστε κάθε σειρά να έχει έναν μόνο αριθμό συμβάσεων, χωρίζοντας τις παραγγελίες με πολλούς αριθμούς σε ξεχωριστές σειρές. Σε μια συμπιεσμένη μορφή στηλών, το επιπλέον μέγεθος δεδομένων αυτής της επανάληψης είναι συχνά μικρό όταν εφαρμόζεται συμπίεση, επομένως είναι αποδεκτό να διευκολύνουμε το ερώτημα για το σύνολο δεδομένων.
- Θέλουμε να δημιουργήσουμε έναν συνοπτικό πίνακα όγκου για κάθε τύπο επιλογής (call and put) για κάθε μετοχή. Αυτό παρέχει μια ένδειξη του κλίματος της αγοράς για κάθε μετοχή και την αγορά γενικότερα (απληστία εναντίον φόβου).
- Για να ενεργοποιήσουμε τις συνολικές περιλήψεις συναλλαγών, θέλουμε να παρέχουμε για κάθε πράξη το συνολικό σύνολο και να τυποποιούμε το νόμισμα σε δολάρια ΗΠΑ, χρησιμοποιώντας μια κατά προσέγγιση αναφορά μετατροπής.
- Θέλουμε να προσθέσουμε την ημερομηνία που έγιναν αυτοί οι μετασχηματισμοί. Αυτό θα μπορούσε να είναι χρήσιμο, για παράδειγμα, να υπάρχει αναφορά σχετικά με το πότε έγινε η μετατροπή νομίσματος.
Με βάση αυτές τις απαιτήσεις, η εργασία θα παράγει δύο αποτελέσματα:
- Ένα αρχείο CSV με μια περίληψη του αριθμού των συμβάσεων για κάθε σύμβολο και τύπο
- Ένας πίνακας καταλόγου για τη διατήρηση ιστορικού της παραγγελίας, αφού γίνουν οι μετασχηματισμοί που υποδεικνύονται
Προϋποθέσεις
Θα χρειαστείτε τον δικό σας κάδο S3 για να ακολουθήσετε αυτήν την περίπτωση χρήσης. Για να δημιουργήσετε έναν νέο κάδο, ανατρέξτε στο Δημιουργία κάδου.
Δημιουργήστε συνθετικά δεδομένα
Για να ακολουθήσετε αυτήν την ανάρτηση (ή να πειραματιστείτε με αυτό το είδος δεδομένων μόνοι σας), μπορείτε να δημιουργήσετε αυτό το σύνολο δεδομένων συνθετικά. Το ακόλουθο σενάριο Python μπορεί να εκτελεστεί σε περιβάλλον Python με εγκατεστημένο το Boto3 και πρόσβαση σε αυτό Απλή υπηρεσία αποθήκευσης Amazon (Amazon S3).
Για να δημιουργήσετε τα δεδομένα, ολοκληρώστε τα ακόλουθα βήματα:
- Στο AWS Glue Studio, δημιουργήστε μια νέα εργασία με την επιλογή Πρόγραμμα επεξεργασίας σεναρίων κελύφους Python.
- Δώστε στην εργασία ένα όνομα και στο Λεπτομέρειες εργασίας καρτέλα, επιλέξτε α κατάλληλο ρόλο και ένα όνομα για το σενάριο Python.
- Στο Λεπτομέρειες εργασίας ενότητα, επέκταση Προηγμένες ιδιότητες και μετακινηθείτε προς τα κάτω Παράμετροι εργασίας.
- Εισαγάγετε μια παράμετρο με όνομα
--bucket
και αντιστοιχίστε ως τιμή το όνομα του κάδου που θέλετε να χρησιμοποιήσετε για να αποθηκεύσετε τα δείγματα δεδομένων. - Εισαγάγετε το ακόλουθο σενάριο στο πρόγραμμα επεξεργασίας κελύφους AWS Glue:
- Εκτελέστε την εργασία και περιμένετε μέχρι να εμφανιστεί ως επιτυχώς ολοκληρωμένη στην καρτέλα Εκτέλεση (θα χρειαστούν μόνο λίγα δευτερόλεπτα).
Κάθε εκτέλεση θα δημιουργήσει ένα αρχείο JSON με 1,000 σειρές κάτω από τον καθορισμένο κάδο και το πρόθεμα transformsblog/inputdata/
. Μπορείτε να εκτελέσετε την εργασία πολλές φορές εάν θέλετε να δοκιμάσετε με περισσότερα αρχεία εισόδου.
Κάθε γραμμή στα συνθετικά δεδομένα είναι μια σειρά δεδομένων που αντιπροσωπεύει ένα αντικείμενο JSON όπως το ακόλουθο:
Δημιουργήστε την οπτική εργασία AWS Glue
Για να δημιουργήσετε την οπτική εργασία AWS Glue, ολοκληρώστε τα παρακάτω βήματα:
- Μεταβείτε στο AWS Glue Studio και δημιουργήστε μια εργασία χρησιμοποιώντας την επιλογή Οπτική με έναν κενό καμβά.
- Αλλαγή
Untitled job
να του δώσετε ένα όνομα και να του αναθέσετε ρόλος κατάλληλος για κόλλα AWS σχετικά με την Λεπτομέρειες εργασίας Tab. - Προσθέστε μια πηγή δεδομένων S3 (μπορείτε να την ονομάσετε
JSON files source
) και εισαγάγετε τη διεύθυνση URL S3 κάτω από την οποία αποθηκεύονται τα αρχεία (για παράδειγμα,s3://<your bucket name>/transformsblog/inputdata/
), στη συνέχεια επιλέξτε JSON ως μορφή δεδομένων. - Αγορά Σχήμα συμπερασμάτων οπότε ορίζει το σχήμα εξόδου με βάση τα δεδομένα.
Από αυτόν τον κόμβο πηγής, θα συνεχίσετε να αλυσιδώνετε μετασχηματισμούς. Όταν προσθέτετε κάθε μετασχηματισμό, βεβαιωθείτε ότι ο επιλεγμένος κόμβος είναι ο τελευταίος που προστέθηκε, ώστε να εκχωρηθεί ως γονέας, εκτός εάν υποδεικνύεται διαφορετικά στις οδηγίες.
Εάν δεν επιλέξατε τον σωστό γονέα, μπορείτε πάντα να επεξεργαστείτε τον γονέα επιλέγοντάς τον και επιλέγοντας έναν άλλο γονέα στο παράθυρο διαμόρφωσης.
Για κάθε κόμβο που προστίθεται, θα του δώσετε ένα συγκεκριμένο όνομα (έτσι ο σκοπός του κόμβου φαίνεται στο γράφημα) και μια διαμόρφωση στο Μεταμορφώστε Tab.
Κάθε φορά που ένας μετασχηματισμός αλλάζει το σχήμα (για παράδειγμα, προσθέστε μια νέα στήλη), το σχήμα εξόδου πρέπει να ενημερώνεται, ώστε να είναι ορατό στους μετασχηματισμούς κατάντη. Μπορείτε να επεξεργαστείτε μη αυτόματα το σχήμα εξόδου, αλλά είναι πιο πρακτικό και ασφαλέστερο να το κάνετε χρησιμοποιώντας την προεπισκόπηση δεδομένων.
Επιπλέον, με αυτόν τον τρόπο μπορείτε να επαληθεύσετε ότι ο μετασχηματισμός λειτουργεί όσο αναμένεται. Για να το κάνετε αυτό, ανοίξτε το Προεπισκόπηση δεδομένων καρτέλα με επιλεγμένο τον μετασχηματισμό και ξεκινήστε μια περίοδο λειτουργίας προεπισκόπησης. Αφού επαληθεύσετε ότι τα μετασχηματισμένα δεδομένα φαίνονται όπως αναμένεται, μεταβείτε στο Σχήμα εξόδου καρτέλα και επιλέξτε Χρησιμοποιήστε το σχήμα προεπισκόπησης δεδομένων για αυτόματη ενημέρωση του σχήματος.
Καθώς προσθέτετε νέα είδη μετασχηματισμών, η προεπισκόπηση ενδέχεται να εμφανίζει ένα μήνυμα σχετικά με μια εξάρτηση που λείπει. Όταν συμβεί αυτό, επιλέξτε Τέλος συνεδρίας και ξεκινά ένα νέο, έτσι η προεπισκόπηση επιλέγει το νέο είδος κόμβου.
Εξαγωγή πληροφοριών οργάνου
Ας ξεκινήσουμε ασχολούμενοι με τις πληροφορίες σχετικά με το όνομα του οργάνου για να τις κανονικοποιήσουμε σε στήλες που είναι ευκολότερη η πρόσβαση στον πίνακα εξόδου που προκύπτει.
- Προσθέστε μια Χωρισμένη χορδή κόμβο και ονομάστε τον
Split instrument
, το οποίο θα κάνει tokenize τη στήλη του οργάνου χρησιμοποιώντας ένα regex κενού διαστήματος:s+
(ένας μόνος χώρος θα έκανε σε αυτήν την περίπτωση, αλλά αυτός ο τρόπος είναι πιο ευέλικτος και οπτικά πιο καθαρός). - Θέλουμε να διατηρήσουμε τις αρχικές πληροφορίες του οργάνου ως έχουν, επομένως εισαγάγετε ένα νέο όνομα στήλης για τον διαχωρισμένο πίνακα:
instrument_arr
. - Προσθέστε ένα Πίνακας σε στήλες κόμβο και ονομάστε τον
Instrument columns
για να μετατρέψετε τη στήλη του πίνακα που μόλις δημιουργήθηκε σε νέα πεδία, εκτός απόsymbol
, για το οποίο έχουμε ήδη στήλη. - Επιλέξτε τη στήλη
instrument_arr
, παραλείψτε το πρώτο διακριτικό και πείτε του να εξαγάγει τις στήλες εξόδουmonth, day, year, strike_price, type
χρησιμοποιώντας ευρετήρια2, 3, 4, 5, 6
(τα κενά μετά τα κόμματα είναι για αναγνωσιμότητα, δεν επηρεάζουν τη διαμόρφωση).
Το έτος που εξάγεται εκφράζεται μόνο με δύο ψηφία. Ας βάλουμε ένα ενδιάμεσο κενό για να υποθέσουμε ότι είναι σε αυτόν τον αιώνα αν χρησιμοποιούν απλώς δύο ψηφία.
- Προσθέστε μια Παράγωγη στήλη κόμβο και ονομάστε τον
Four digits year
. - εισάγετε
year
ως παραγόμενη στήλη, την αντικαθιστά και εισαγάγετε την ακόλουθη έκφραση SQL:CASE WHEN length(year) = 2 THEN ('20' || year) ELSE year END
Για ευκολία, κατασκευάζουμε ένα expiration_date
πεδίο που μπορεί να έχει ένας χρήστης ως αναφορά της τελευταίας ημερομηνίας που μπορεί να ασκηθεί η επιλογή.
- Προσθέστε μια Συνενώστε στήλες κόμβο και ονομάστε τον
Build expiration date
. - Ονομάστε τη νέα στήλη
expiration_date
, επιλέξτε τις στήλεςyear
,month
, ναday
(με αυτή τη σειρά), και μια παύλα ως διαχωριστικό.
Το διάγραμμα μέχρι στιγμής θα πρέπει να μοιάζει με το παρακάτω παράδειγμα.
Η προεπισκόπηση δεδομένων των νέων στηλών μέχρι στιγμής θα πρέπει να μοιάζει με το παρακάτω στιγμιότυπο οθόνης.
Κανονικοποιήστε τον αριθμό των συμβάσεων
Κάθε μία από τις σειρές στα δεδομένα υποδεικνύει τον αριθμό των συμβολαίων κάθε επιλογής που αγοράστηκαν ή πουλήθηκαν και τις παρτίδες στις οποίες εκπληρώθηκαν οι παραγγελίες. Χωρίς να χάσουμε τις πληροφορίες σχετικά με τις μεμονωμένες παρτίδες, θέλουμε να έχουμε κάθε ποσότητα σε μια μεμονωμένη σειρά με μία τιμή ποσότητας, ενώ οι υπόλοιπες πληροφορίες αναπαράγονται σε κάθε σειρά που παράγεται.
Αρχικά, ας συγχωνεύσουμε τα ποσά σε μία στήλη.
- Προσθέστε ένα Αναίρεση περιστροφής στηλών σε γραμμές κόμβο και ονομάστε τον
Unpivot actions
. - Επιλέξτε τις στήλες
bought
καιsold
για να καταργήσετε την περιστροφή και να αποθηκεύσετε τα ονόματα και τις τιμές στις στήλες που ονομάζονταιaction
καιcontracts
, Αντίστοιχα.
Παρατηρήστε στην προεπισκόπηση ότι η νέα στήληcontracts
εξακολουθεί να είναι ένας πίνακας αριθμών μετά από αυτόν τον μετασχηματισμό.
- Προσθέστε ένα Αναπτύξτε τον πίνακα ή τον χάρτη σε σειρές σειρά με όνομα
Explode contracts
. - Επιλέξτε
contracts
στήλη και εισάγετεcontracts
ως νέα στήλη για να την αντικαταστήσουμε (δεν χρειάζεται να διατηρήσουμε τον αρχικό πίνακα).
Η προεπισκόπηση δείχνει τώρα ότι κάθε σειρά έχει ένα μοναδικό contracts
ποσό και τα υπόλοιπα πεδία είναι ίδια.
Αυτό σημαίνει επίσης ότι order_id
δεν είναι πλέον μοναδικό κλειδί. Για τις δικές σας περιπτώσεις χρήσης, πρέπει να αποφασίσετε πώς να μοντελοποιήσετε τα δεδομένα σας και εάν θέλετε να αποκανονικοποιήσετε ή όχι.
Το παρακάτω στιγμιότυπο οθόνης είναι ένα παράδειγμα του πώς μοιάζουν οι νέες στήλες μετά τους μετασχηματισμούς μέχρι στιγμής.
Δημιουργήστε έναν συνοπτικό πίνακα
Τώρα δημιουργείτε έναν συνοπτικό πίνακα με τον αριθμό των συμβολαίων που διαπραγματεύονται για κάθε τύπο και κάθε σύμβολο μετοχής.
Ας υποθέσουμε για λόγους επεξήγησης ότι τα αρχεία που υποβλήθηκαν σε επεξεργασία ανήκουν σε μία ημέρα, επομένως αυτή η σύνοψη παρέχει στους επιχειρηματίες χρήστες πληροφορίες σχετικά με το ενδιαφέρον και το συναίσθημα της αγοράς εκείνη την ημέρα.
- Προσθέστε μια Επιλέξτε Πεδία κόμβο και επιλέξτε τις ακόλουθες στήλες που θα διατηρήσετε για τη σύνοψη:
symbol
,type
, ναcontracts
. - Προσθέστε μια Συγκεντρώστε τις γραμμές σε στήλες κόμβο και ονομάστε τον
Pivot summary
. - Συγκεντρωτικό στο
contracts
στήλη χρησιμοποιώνταςsum
και επιλέξτε να μετατρέψετε τοtype
στήλη.
Κανονικά, θα το αποθηκεύατε σε κάποια εξωτερική βάση δεδομένων ή αρχείο για αναφορά. Σε αυτό το παράδειγμα, το αποθηκεύουμε ως αρχείο CSV στο Amazon S3.
- Προσθέστε ένα Επεξεργασία αυτόματης ισορροπίας κόμβο και ονομάστε τον
Single output file
. - Αν και αυτός ο τύπος μετασχηματισμού χρησιμοποιείται συνήθως για τη βελτιστοποίηση του παραλληλισμού, εδώ τον χρησιμοποιούμε για να μειώσουμε την έξοδο σε ένα μόνο αρχείο. Επομένως, εισάγετε
1
στη διαμόρφωση του αριθμού των κατατμήσεων. - Προσθέστε έναν στόχο S3 και ονομάστε τον
CSV Contract summary
. - Επιλέξτε CSV ως μορφή δεδομένων και εισαγάγετε μια διαδρομή S3 όπου ο ρόλος εργασίας επιτρέπεται να αποθηκεύει αρχεία.
Το τελευταίο μέρος της εργασίας θα πρέπει τώρα να μοιάζει με το ακόλουθο παράδειγμα.
- Αποθηκεύστε και εκτελέστε την εργασία. Χρησιμοποιήστε το Τρέχει καρτέλα για να ελέγξετε πότε ολοκληρώθηκε με επιτυχία.
Θα βρείτε ένα αρχείο κάτω από αυτήν τη διαδρομή που είναι CSV, παρόλο που δεν έχει αυτήν την επέκταση. Μάλλον θα χρειαστεί να προσθέσετε την επέκταση μετά τη λήψη της για να την ανοίξετε.
Σε ένα εργαλείο που μπορεί να διαβάσει το CSV, η σύνοψη θα πρέπει να μοιάζει με το ακόλουθο παράδειγμα.
Καθαρίστε τις προσωρινές στήλες
Προετοιμάζοντας την αποθήκευση των παραγγελιών σε έναν ιστορικό πίνακα για μελλοντική ανάλυση, ας καθαρίσουμε ορισμένες προσωρινές στήλες που δημιουργήθηκαν στην πορεία.
- Προσθέστε μια Πεδία απόθεσης κόμβος με το
Explode contracts
ο κόμβος που επιλέχθηκε ως γονέας του (διακλαδίζουμε τη γραμμή δεδομένων για να δημιουργήσουμε μια ξεχωριστή έξοδο). - Επιλέξτε τα πεδία που θα απορριφθούν:
instrument_arr
,month
,day
, ναyear
.
Τα υπόλοιπα θέλουμε να κρατήσουμε, ώστε να αποθηκευτούν στον ιστορικό πίνακα που θα δημιουργήσουμε αργότερα.
Τυποποίηση νομισμάτων
Αυτά τα συνθετικά δεδομένα περιέχουν φανταστικές πράξεις σε δύο νομίσματα, αλλά σε ένα πραγματικό σύστημα θα μπορούσατε να λάβετε νομίσματα από αγορές σε όλο τον κόσμο. Είναι χρήσιμο να τυποποιούνται τα νομίσματα που χρησιμοποιούνται σε ένα ενιαίο νόμισμα αναφοράς, ώστε να μπορούν εύκολα να συγκριθούν και να συγκεντρωθούν για αναφορά και ανάλυση.
Χρησιμοποιούμε Αμαζόν Αθηνά για την προσομοίωση ενός πίνακα με κατά προσέγγιση μετατροπές νομισμάτων που ενημερώνεται περιοδικά (εδώ υποθέτουμε ότι επεξεργαζόμαστε τις παραγγελίες αρκετά έγκαιρα ώστε η μετατροπή να είναι εύλογη αντιπροσωπευτική για λόγους σύγκρισης).
- Ανοίξτε την κονσόλα Athena στην ίδια περιοχή όπου χρησιμοποιείτε το AWS Glue.
- Εκτελέστε το ακόλουθο ερώτημα για να δημιουργήσετε τον πίνακα ορίζοντας μια θέση S3 όπου και οι ρόλοι σας Athena και AWS Glue μπορούν να διαβάζουν και να γράφουν. Επίσης, μπορεί να θέλετε να αποθηκεύσετε τον πίνακα σε διαφορετική βάση δεδομένων από αυτήν
default
(εάν το κάνετε αυτό, ενημερώστε το κατάλληλο όνομα πίνακα ανάλογα στα παραδείγματα που παρέχονται). - Εισαγάγετε μερικά δείγματα μετατροπών στον πίνακα:
INSERT INTO default.exchange_rates VALUES ('usd', 1.0), ('eur', 1.09), ('gbp', 1.24);
- Θα πρέπει τώρα να μπορείτε να προβάλετε τον πίνακα με το ακόλουθο ερώτημα:
SELECT * FROM default.exchange_rates
- Επιστρέψτε στην οπτική εργασία AWS Glue, προσθέστε ένα Lookup κόμβος (ως παιδί του
Drop Fields
) και ονομάστε τοExchange rate
. - Εισαγάγετε το όνομα ποιότητας του πίνακα που μόλις δημιουργήσατε, χρησιμοποιώντας
currency
ως κλειδί και επιλέξτε τοexchange_rate
πεδίο για χρήση.
Επειδή το πεδίο έχει το ίδιο όνομα τόσο στα δεδομένα όσο και στον πίνακα αναζήτησης, μπορούμε απλώς να εισαγάγουμε το όνομαcurrency
και δεν χρειάζεται να ορίσετε μια αντιστοίχιση.
Τη στιγμή της σύνταξης αυτού του κειμένου, ο μετασχηματισμός αναζήτησης δεν υποστηρίζεται στην προεπισκόπηση δεδομένων και θα εμφανίσει ένα σφάλμα ότι ο πίνακας δεν υπάρχει. Αυτό είναι μόνο για την προεπισκόπηση δεδομένων και δεν εμποδίζει τη σωστή εκτέλεση της εργασίας. Τα λίγα βήματα που απομένουν της ανάρτησης δεν απαιτούν από εσάς να ενημερώσετε το σχήμα. Εάν πρέπει να εκτελέσετε μια προεπισκόπηση δεδομένων σε άλλους κόμβους, μπορείτε να αφαιρέσετε προσωρινά τον κόμβο αναζήτησης και στη συνέχεια να τον επαναφέρετε. - Προσθέστε μια Παράγωγη στήλη κόμβο και ονομάστε τον
Total in usd
. - Ονομάστε τη στήλη που προκύπτει
total_usd
και χρησιμοποιήστε την ακόλουθη έκφραση SQL:round(contracts * price * exchange_rate, 2)
- Προσθέστε μια Προσθήκη τρέχουσας χρονοσήμανσης κόμβο και ονομάστε τη στήλη
ingest_date
. - Χρησιμοποιήστε τη μορφή
%Y-%m-%d
για τη χρονική σας σήμανση (για λόγους επίδειξης, χρησιμοποιούμε απλώς την ημερομηνία, μπορείτε να την κάνετε πιο ακριβή αν θέλετε).
Αποθηκεύστε τον πίνακα ιστορικών παραγγελιών
Για να αποθηκεύσετε τον πίνακα παραγγελιών ιστορικού, ολοκληρώστε τα παρακάτω βήματα:
- Προσθέστε έναν κόμβο στόχο S3 και ονομάστε τον
Orders table
. - Διαμορφώστε τη μορφή Parquet με γρήγορη συμπίεση και παρέχετε μια διαδρομή στόχου S3 κάτω από την οποία θα αποθηκεύονται τα αποτελέσματα (χωριστά από τη σύνοψη).
- Αγορά Δημιουργήστε έναν πίνακα στον Κατάλογο Δεδομένων και στις επόμενες εκτελέσεις, ενημερώστε το σχήμα και προσθέστε νέα διαμερίσματα.
- Εισαγάγετε μια βάση δεδομένων προορισμού και ένα όνομα για τον νέο πίνακα, για παράδειγμα:
option_orders
.
Το τελευταίο μέρος του διαγράμματος θα πρέπει τώρα να μοιάζει με το παρακάτω, με δύο κλάδους για τις δύο ξεχωριστές εξόδους.
Αφού εκτελέσετε την εργασία με επιτυχία, μπορείτε να χρησιμοποιήσετε ένα εργαλείο όπως το Athena για να ελέγξετε τα δεδομένα που έχει δημιουργήσει η εργασία υποβάλλοντας ερώτημα στον νέο πίνακα. Μπορείτε να βρείτε τον πίνακα στη λίστα Athena και να επιλέξετε Πίνακας προεπισκόπησης ή απλώς εκτελέστε ένα ερώτημα SELECT (ενημερώνοντας το όνομα του πίνακα με το όνομα και τον κατάλογο που χρησιμοποιήσατε):
SELECT * FROM default.option_orders limit 10
Το περιεχόμενο του πίνακα σας θα πρέπει να μοιάζει με το παρακάτω στιγμιότυπο οθόνης.
εκκαθάριση
Εάν δεν θέλετε να διατηρήσετε αυτό το παράδειγμα, διαγράψτε τις δύο εργασίες που δημιουργήσατε, τους δύο πίνακες στο Athena και τις διαδρομές S3 όπου ήταν αποθηκευμένα τα αρχεία εισόδου και εξόδου.
Συμπέρασμα
Σε αυτήν την ανάρτηση, δείξαμε πώς οι νέοι μετασχηματισμοί στο AWS Glue Studio μπορούν να σας βοηθήσουν να κάνετε πιο προηγμένους μετασχηματισμούς με ελάχιστη διαμόρφωση. Αυτό σημαίνει ότι μπορείτε να εφαρμόσετε περισσότερες περιπτώσεις χρήσης ETL χωρίς να χρειάζεται να γράψετε και να διατηρήσετε κώδικα. Οι νέοι μετασχηματισμοί είναι ήδη διαθέσιμοι στο AWS Glue Studio, ώστε να μπορείτε να χρησιμοποιήσετε τους νέους μετασχηματισμούς σήμερα στις οπτικές σας εργασίες.
Σχετικά με τον Συγγραφέα
Γκονσάλο Ερέρος είναι Senior Big Data Architect στην ομάδα AWS Glue.
- SEO Powered Content & PR Distribution. Ενισχύστε σήμερα.
- PlatoAiStream. Web3 Data Intelligence. Ενισχύθηκε η γνώση. Πρόσβαση εδώ.
- Minting the Future με την Adryenn Ashley. Πρόσβαση εδώ.
- Αγορά και πώληση μετοχών σε εταιρείες PRE-IPO με το PREIPO®. Πρόσβαση εδώ.
- πηγή: https://aws.amazon.com/blogs/big-data/ten-new-visual-transforms-in-aws-glue-studio/
- :έχει
- :είναι
- :δεν
- :που
- $UP
- 000
- 1
- 10
- 100
- 102
- 11
- 12
- 13
- 14
- 15%
- 20
- 23
- 24
- 26
- 28
- 30
- 49
- 67
- 7
- 8
- 9
- 937
- 98
- a
- Ικανός
- Σχετικά
- αποδεκτό
- πρόσβαση
- αναλόγως
- προσθέτω
- προστιθέμενη
- προσθήκη
- προηγμένες
- Μετά το
- Όλα
- διατεθεί
- κατανομών
- επιτρέπουν
- επιτρέπει
- κατά μήκος
- ήδη
- Επίσης
- πάντοτε
- Amazon
- ποσό
- Ποσά
- an
- ανάλυση
- αναλύσει
- και
- Άλλος
- κάθε
- εφαρμοσμένος
- κατά προσέγγιση
- Απρ
- ΕΙΝΑΙ
- επιχείρημα
- Παράταξη
- AS
- ανατεθεί
- At
- γνωρίσματα
- αυτομάτως
- διαθέσιμος
- AWS
- Κόλλα AWS
- πίσω
- βασίζονται
- BE
- πριν
- είναι
- Μεγάλος
- Big Data
- κενό
- BMW
- και οι δύο
- αγόρασε
- υποκαταστήματα
- χτίζω
- επιχείρηση
- αλλά
- αγορά
- by
- κλήση
- CAN
- περίπτωση
- περιπτώσεις
- κατάλογος
- Κέντρο
- Αιώνας
- Αλλαγές
- χαρακτηριστικά
- έλεγχος
- παιδί
- Επιλέξτε
- επιλέγοντας
- σαφέστερη
- κωδικός
- Κωδικοποίηση
- Στήλη
- Στήλες
- Κοινός
- σύγκριση
- σύγκριση
- πλήρης
- Ολοκληρώθηκε το
- διαμόρφωση
- πρόξενος
- παγιώνω
- Περιέχει
- περιεχόμενο
- σύμβαση
- συμβάσεις
- ευκολία
- Μετατροπή
- μετατροπές
- μετατρέψετε
- μετατρέπονται
- ΕΤΑΙΡΕΙΑ
- θα μπορούσε να
- δημιουργία
- δημιουργήθηκε
- δημιουργία
- νομίσματα
- Νόμισμα
- Ρεύμα
- DAG
- ημερομηνία
- βάση δεδομένων
- Ημερομηνία
- Ημερομηνίες
- ημερομηνία
- ημέρα
- συμφωνία
- μοιρασιά
- αποφασίζει
- Προεπιλογή
- ορίζεται
- κατέδειξε
- Εξάρτηση
- Συμπληρωματικός
- Παρά
- καθέκαστα
- διαφορετικές
- ψηφία
- συζητήσουν
- do
- Όχι
- πράξη
- δολάρια
- Μην
- διπλασιαστεί
- κάτω
- Πτώση
- έπεσε
- κάθε
- ευκολότερη
- εύκολα
- εύκολος
- συντάκτης
- ενεργοποιήσετε
- αρκετά
- εισάγετε
- Περιβάλλον
- σφάλμα
- Αιθέρας (ΕΤΗ)
- EUR
- παράδειγμα
- παραδείγματα
- Εκτός
- ανταλλαγή
- Χρηματιστήρια
- Αποκλειστικό
- υπάρχουν
- Ανάπτυξη
- αναμένεται
- πείραμα
- λήξη
- εξέφρασε την
- επέκταση
- εξωτερικός
- επιπλέον
- εκχύλισμα
- μακριά
- φόβος
- λίγοι
- μυθιστορηματικός
- πεδίο
- Πεδία
- Αρχεία
- Αρχεία
- συμπληρώστε
- γεμάτο
- οικονομικός
- Χρηματοοικονομικά μέσα
- Εύρεση
- Όνομα
- καθορίζεται
- εύκαμπτος
- ακολουθήστε
- Εξής
- εξής
- Για
- μορφή
- Βρέθηκαν
- από
- μελλοντικός
- GBP
- General
- γενικά
- παράγουν
- παράγεται
- παίρνω
- Δώστε
- δίνει
- Go
- γραφική παράσταση
- Απληστία
- Χειρισμός
- συμβαίνει
- Έχω
- που έχει
- βοήθεια
- εδώ
- ιστορικών
- ιστορία
- Πως
- Πώς να
- HTML
- http
- HTTPS
- Οι άνθρωποι
- i
- αναγνωρίζει
- προσδιορίσει
- if
- Επίπτωση
- εφαρμογή
- εισαγωγή
- in
- δείκτες
- υποδεικνύεται
- υποδηλώνει
- υποδεικνύοντας
- ένδειξη
- ατομικές
- πληροφορίες
- εισαγωγή
- παράδειγμα
- αντί
- οδηγίες
- όργανο
- μέσων
- τόκος
- περιβάλλον λειτουργίας
- σε
- ISO
- IT
- ΤΟΥ
- Δουλειά
- Θέσεις εργασίας
- jpg
- json
- μόλις
- Διατήρηση
- Κλειδί
- Είδος
- Επίθετο
- αργότερα
- Μου αρέσει
- LIMIT
- γραμμή
- Ρευστότητα
- Λίστα
- φορτίο
- τοποθεσία
- πλέον
- ματιά
- μοιάζει
- ΦΑΊΝΕΤΑΙ
- αναζήτηση
- χάνουν
- να χάσει
- που
- διατηρήσουν
- κάνω
- ΚΑΝΕΙ
- χειροκίνητα
- χάρτη
- χαρτης
- αγορά
- το αίσθημα της αγοράς
- αγορές
- Ενδέχεται..
- μέσα
- πηγαίνω
- μήνυμα
- ενδέχεται να
- ελάχιστο
- Λείπει
- μοντέλο
- Παρακολούθηση
- περισσότερο
- πλέον
- πολλαπλούς
- αμοιβαίως
- όνομα
- Ονομάστηκε
- ονόματα
- Ανάγκη
- ανάγκες
- Νέα
- Όχι.
- κόμβος
- κόμβων
- Κανονικά
- τώρα
- αριθμός
- αριθμοί
- αντικείμενο
- of
- συχνά
- on
- ONE
- αποκλειστικά
- ανοίξτε
- λειτουργία
- λειτουργίες
- Βελτιστοποίηση
- Επιλογή
- Επιλογές
- or
- τάξη
- παραγγελιών
- πρωτότυπο
- ΑΛΛΑ
- αλλιώς
- παραγωγή
- επί
- φόρμες
- καταπατώ
- δική
- καταβλήθηκε
- παράθυρο
- παράμετρος
- μέρος
- μονοπάτι
- Επιλογές
- αγωγού
- άξονας περιστροφής
- Μέρος
- Πλάτων
- Πληροφορία δεδομένων Plato
- Πλάτωνα δεδομένα
- Θέση
- δυναμικού
- Πρακτικός
- ανάγκη
- πρόληψη
- Προβολή
- τιμή
- πιθανώς
- διαδικασια μας
- μεταποίηση
- παράγει
- Παράγεται
- παρέχουν
- παρέχεται
- παρέχει
- αγορά
- σκοπός
- σκοποί
- βάζω
- Python
- αρμόδιος
- αύξηση
- τυχαίος
- Διάβασε
- πραγματικός
- λογικός
- μείωση
- αντανακλούν
- περιοχή
- υπόλοιπα
- αφαιρέστε
- επαναλαμβάνεται
- Αναφορά
- εκπροσωπώ
- εκπρόσωπος
- εκπροσωπούν
- αντιπροσωπεύει
- απαιτούν
- απαιτήσεις
- Απαιτεί
- αντίστοιχα
- ΠΕΡΙΦΕΡΕΙΑ
- με αποτέλεσμα
- Αποτελέσματα
- ανασκόπηση
- Ρόλος
- ρόλους
- ΣΕΙΡΑ
- τρέξιμο
- τρέξιμο
- Ασφαλέστερο
- ίδιο
- SAP
- Αποθήκευση
- οικονομία
- πάπυρος
- δευτερόλεπτα
- επιλέγονται
- επιλογή
- πωλούν
- αρχαιότερος
- συναίσθημα
- ξεχωριστό
- Συνεδρίαση
- Σέτς
- τον καθορισμό
- Μερίδια
- κέλυφος
- θα πρέπει να
- δείχνουν
- Δείχνει
- παρόμοιες
- Απλούς
- ενιαίας
- Μέγεθος
- δεξιότητες
- small
- So
- μέχρι τώρα
- πωλούνται
- μερικοί
- κάτι
- Πηγή
- Χώρος
- χώρων
- συγκεκριμένες
- καθορίζεται
- διαίρεση
- Υπολογιστικό φύλλο
- SQL
- Εκκίνηση
- Βήματα
- Ακόμη
- στοκ
- χώρος στο δίσκο
- κατάστημα
- αποθηκεύονται
- Σπάγγος
- στούντιο
- μεταγενέστερος
- Επιτυχώς
- κατάλληλος
- ΠΕΡΙΛΗΨΗ
- υποστηριζόνται!
- σύμβολο
- συνθετικός
- συνθετικά δεδομένα
- συνθετικώς
- σύστημα
- συστήματα
- τραπέζι
- Πάρτε
- στόχος
- πει
- προσωρινή
- δέκα
- δοκιμή
- από
- ότι
- Η
- Το γράφημα
- οι πληροφορίες
- ο κόσμος
- Τους
- τότε
- επομένως
- Αυτοί
- αυτοί
- αυτό
- εκείνοι
- ώρα
- φορές
- timestamp
- προς την
- σήμερα
- ένδειξη
- συμβολίζω
- πήρε
- εργαλείο
- Σύνολο
- εμπόριο
- διαπραγματεύονται
- Μεταμορφώστε
- Μεταμόρφωση
- μετασχηματισμούς
- μετασχηματίζεται
- δύο
- τύπος
- υπό
- υποκείμενες
- καταλαβαίνω
- μοναδικός
- μέχρι
- Ενημέρωση
- ενημερώθηκε
- ενημέρωση
- URL
- us
- Δολάρια ΗΠΑ
- USD
- χρήση
- περίπτωση χρήσης
- μεταχειρισμένος
- Χρήστες
- Χρήστες
- χρησιμοποιώντας
- Πολύτιμος
- Πολύτιμες πληροφορίες
- αξία
- Αξίες
- Χώρος δεξίωσης
- επαληθεύεται
- επαληθεύει
- Δες
- ορατός
- τόμος
- vs
- περιμένετε
- θέλω
- ήταν
- Τρόπος..
- we
- ήταν
- Τι
- πότε
- Ποιό
- ενώ
- θα
- με
- χωρίς
- ροές εργασίας
- εργαζόμενος
- κόσμος
- θα
- γράφω
- γραφή
- έτος
- εσείς
- Σας
- zephyrnet