Amazon RedShift είναι μια βάση δεδομένων αποθήκης δεδομένων cloud που παρέχει γρήγορη, συνεπή απόδοση εκτελώντας σύνθετα αναλυτικά ερωτήματα σε τεράστια σύνολα δεδομένων που κλιμακώνονται σε petabyte και ακόμη και exabyte με Φάσμα Amazon Redshift. Παρόλο που το Amazon Redshift έχει εξαιρετική απόδοση ερωτήματος εκτός συσκευασίας, με έως τρεις φορές καλύτερη απόδοση τιμής από άλλες αποθήκες δεδομένων cloud, μπορείτε να βελτιώσετε περαιτέρω την απόδοσή του συντονίζοντας φυσικά τους πίνακες σε ένα μοντέλο δεδομένων. Αυτό γίνεται ταξινομώντας σειρές πίνακα και αναδιατάσσοντας σειρές στους κόμβους ενός συμπλέγματος. Στο Amazon Redshift, μπορείτε να το εφαρμόσετε αυτό ορίζοντας χαρακτηριστικά πίνακα κλειδιών ταξινόμησης και διανομής.
Στο παρελθόν, η ρύθμιση των κλειδιών ταξινόμησης και διανομής ήταν μια μη αυτόματη διαδικασία που απαιτούσε έναν εξειδικευμένο πόρο για την ανάλυση του φόρτου εργασίας ενός συμπλέγματος και την επιλογή και την εφαρμογή των σωστών κλειδιών για κάθε πίνακα στο μοντέλο δεδομένων. Πιο πρόσφατα, ο Amazon Redshift Advisor παρείχε προτάσεις, αλλά αυτές έπρεπε να εφαρμοστούν χειροκίνητα. Στο AWS re:Invent 2020, το Amazon Redshift ανακοίνωσε μια νέα δυνατότητα για την αυτοματοποίηση αυτής της διαδικασίας: αυτόματη βελτιστοποίηση πίνακα (ATO). Το ATO παρακολουθεί αυτόματα το φόρτο εργασίας και τα μεταδεδομένα πίνακα ενός συμπλέγματος, εκτελεί αλγόριθμους τεχνητής νοημοσύνης πάνω από τις παρατηρήσεις και εφαρμόζει κλειδιά ταξινόμησης και διανομής στο διαδίκτυο στο παρασκήνιο, χωρίς να απαιτείται χειροκίνητη παρέμβαση και χωρίς να διακόπτει τυχόν εκτελούμενα ερωτήματα.
Σε αυτήν την ανάρτηση, εξηγώ τι είναι τα κλειδιά ταξινόμησης και διανομής και πώς βελτιώνουν την απόδοση του ερωτήματος. Εξηγώ επίσης πώς λειτουργεί το ATO και πώς να το ενεργοποιήσετε και να το απενεργοποιήσετε. Στη συνέχεια, περιγράφω τα βήματα για τη ρύθμιση και εκτέλεση μιας δοκιμής του ATO στο σημείο αναφοράς του Cloud DW που προέρχεται από το TPC-H χρησιμοποιώντας ένα σύνολο δεδομένων 30 TB. Τέλος, παρουσιάζω τα αποτελέσματα μιας δοκιμής που δείχνει βελτιωμένη απόδοση του ATO σε αυτό το σημείο αναφοράς, χωρίς να απαιτείται χειροκίνητος συντονισμός.
Πλήκτρα διανομής και ταξινόμησης
Σε αυτήν την ενότητα, δίνω μια επισκόπηση υψηλού επιπέδου των κλειδιών διανομής και ταξινόμησης και, στη συνέχεια, εξηγώ πώς ορίζονται αυτόματα από το ATO.
Κλειδιά διανομής
Το Amazon Redshift έχει μια αρχιτεκτονική μαζικά παράλληλης επεξεργασίας (MPP), όπου τα δεδομένα κατανέμονται σε πολλούς κόμβους υπολογιστών (δείτε το ακόλουθο διάγραμμα). Αυτό επιτρέπει στο Amazon Redshift να εκτελεί ερωτήματα σε κάθε υπολογιστικό κόμβο παράλληλα, αυξάνοντας δραματικά την απόδοση ερωτημάτων.
Για να επιτευχθεί η καλύτερη δυνατή απόδοση ερωτημάτων, τα δεδομένα πρέπει να διανέμονται στους κόμβους υπολογισμού με τρόπο που να είναι βέλτιστος για τον συγκεκριμένο φόρτο εργασίας που εκτελείται στο σύμπλεγμα. Για παράδειγμα, ο βέλτιστος τρόπος διανομής δεδομένων για πίνακες που συνήθως ενώνονται είναι η αποθήκευση σειρών με ταιριαστά κλειδιά σύνδεσης στους ίδιους κόμβους. Αυτό επιτρέπει στο Amazon Redshift να ενώνει τις σειρές τοπικά σε κάθε κόμβο χωρίς να χρειάζεται να μετακινεί δεδομένα στους κόμβους. Η διανομή δεδομένων επηρεάζει επίσης την απόδοση των λειτουργιών GROUP BY.
Στο Amazon Redshift, το μοτίβο διανομής δεδομένων καθορίζεται από δύο ρυθμίσεις φυσικού πίνακα: στυλ διανομής (DISTSTYLE) και κλειδί διανομής (DISTKEY).
Το Amazon Redshift έχει τρία στυλ διανομής:
- Όλα – Ένα αντίγραφο ολόκληρου του πίνακα αντιγράφεται σε κάθε κόμβο
- Even – Τα δεδομένα στον πίνακα κατανέμονται ομοιόμορφα στους κόμβους σε ένα σύμπλεγμα σε μια στρογγυλή κατανομή
- Κλειδί – Τα δεδομένα κατανέμονται στους κόμβους με τις τιμές στη στήλη που ορίζονται ως DISTKEY
Εάν το στυλ διανομής ενός πίνακα είναι βασικό, τότε μια στήλη στον πίνακα μπορεί να οριστεί ως DISTKEY.
Ταξινόμηση πλήκτρων
Τα πλήκτρα ταξινόμησης καθορίζουν τον τρόπο φυσικής ταξινόμησης των σειρών σε έναν πίνακα. Η ταξινόμηση των σειρών του πίνακα βελτιώνει την απόδοση των ερωτημάτων με φίλτρα περιορισμένης περιοχής. Το Amazon Redshift αποθηκεύει τις ελάχιστες και μέγιστες τιμές κάθε μπλοκ δεδομένων του σε μεταδεδομένα. Όταν ένα ερώτημα φιλτράρει σε μια στήλη (ή σε πολλές στήλες), η μηχανή εκτέλεσης μπορεί να χρησιμοποιήσει τα μεταδεδομένα για να παρακάμψει μπλοκ που βρίσκονται εκτός του εύρους του φίλτρου. Για παράδειγμα, εάν ένας πίνακας έχει ένα κλειδί ταξινόμησης στη στήλη created_date
και ένα ερώτημα έχει φίλτρο WHERE created_date BETWEEN '2020-02-01' AND '2020-02-02'
, η μηχανή εκτέλεσης μπορεί να προσδιορίσει ποια μπλοκ δεν περιέχουν δεδομένα για την 1 και 2 Φεβρουαρίου, δεδομένων των μεταδεδομένων τους. Ο μηχανισμός εκτέλεσης μπορεί στη συνέχεια να παρακάμψει αυτά τα μπλοκ, μειώνοντας τον όγκο των δεδομένων που διαβάζονται και τον αριθμό των σειρών που πρέπει να υλοποιηθούν και να υποβληθούν σε επεξεργασία, γεγονός που βελτιώνει την απόδοση του ερωτήματος.
Τα κλειδιά ταξινόμησης μπορούν να οριστούν σε μία στήλη σε έναν πίνακα ή σε πολλές στήλες (γνωστές ως α κλειδί σύνθετης ταξινόμησης). Μπορούν επίσης να είναι παρεμβάλλεται.
Μη αυτόματη ρύθμιση πλήκτρων διανομής και ταξινόμησης
Όταν δημιουργείτε έναν πίνακα στο Amazon Redshift, μπορείτε να ορίσετε μη αυτόματα το στυλ και το κλειδί διανομής και το κλειδί ταξινόμησης στο Δημιουργία πίνακα DDL.
Ο παρακάτω κώδικας δείχνει δύο απλοποιημένα παραδείγματα δηλώσεων DDL για τη δημιουργία ενός πίνακα διαστάσεων και γεγονότων σε ένα τυπικό μοντέλο σχήματος αστεριού που ορίζει χειροκίνητα κλειδιά διανομής και ταξινόμησης:
Και τα δύο τραπέζια έχουν το customer_key
στήλη που ορίζεται ως κλειδί διανομής (DISTKEY). Όταν εισάγονται σειρές σε αυτούς τους πίνακες, το Amazon Redshift τις κατανέμει σε όλο το σύμπλεγμα με βάση τις τιμές του customer_key
στήλη. Για παράδειγμα, όλες οι σειρές με α customer_key
των 100 μετακινούνται στον ίδιο κόμβο, και ομοίως όλες οι σειρές με a customer_key
των 101 μετακινούνται επίσης στον ίδιο κόμβο (αυτός μπορεί να μην είναι ο ίδιος κόμβος με το κλειδί του 100) και ούτω καθεξής για κάθε γραμμή του πίνακα.
Στο sale_fact
τραπέζι, το date_key
στήλη έχει οριστεί ως κλειδί ταξινόμησης (SORTKEY). Όταν εισάγονται σειρές σε αυτόν τον πίνακα, ταξινομούνται φυσικά στο δίσκο με τη σειρά ημερομηνιών στο date_key
στήλη.
Αφού φορτωθούν τα δεδομένα στους πίνακες, μπορούμε να χρησιμοποιήσουμε το svv_table_info προβολή συστήματος για να δείτε ποια κλειδιά έχουν οριστεί:
Ο παρακάτω πίνακας δείχνει τα αποτελέσματά μας.
τραπέζι | diststyle | κλειδί ταξινόμησης 1 |
client_dim | KEY (κλειδί_πελάτη) | AUTO (SORTKEY) |
πώληση_γεγονός | KEY (κλειδί_πελάτη) | ημερομηνία_κλειδί |
Το κλειδί ταξινόμησης για customer_dim
έχει οριστεί σε AUTO(SORTKEY)
, το οποίο εξηγώ στην επόμενη ενότητα.
Τώρα, εάν συμπληρώσουμε αυτούς τους πίνακες και εκτελέσουμε ένα ερώτημα επιχειρηματικών αναλυτικών στοιχείων σε αυτούς, όπως το παρακάτω απλοποιημένο ερώτημα, μπορούμε να δούμε πώς τα κλειδιά διανομής και ταξινόμησης βελτιώνουν την απόδοση του ερωτήματος:
Η customer_dim
ο πίνακας ενώνεται με το sale_fact
τραπέζι στο customer_key
στήλη. Επειδή και οι δύο σειρές του πίνακα κατανέμονται στο customer_key
στήλη, αυτό σημαίνει τις σχετικές σειρές (όπως π.χ customer_key
των 100) βρίσκονται στον ίδιο κόμβο, επομένως όταν το Amazon Redshift εκτελεί το ερώτημα σε αυτόν τον κόμβο, δεν χρειάζεται να μετακινήσει σχετικές σειρές στο σύμπλεγμα από άλλους κόμβους (μια διαδικασία γνωστή ως ανακατανομή) για την ένωση. Επίσης, υπάρχει ένα φίλτρο δεσμευμένου εύρους στο date_key
στήλη (WHERE sf.date_key BETWEEN '2021-03-01' AND '2021-03-07'
). Επειδή υπάρχει ένα κλειδί ταξινόμησης σε αυτήν τη στήλη, η μηχανή εκτέλεσης Amazon Redshift μπορεί να παρακάμψει πιο αποτελεσματικά μπλοκ που βρίσκονται εκτός της εμβέλειας του φίλτρου.
Αυτόματη ρύθμιση των πλήκτρων διανομής και ταξινόμησης
Το Amazon Redshift ATO είναι ενεργοποιημένο από προεπιλογή. Όταν δημιουργείτε έναν πίνακα και δεν ορίζετε ρητά κλειδιά διανομής ή ταξινόμησης στο CREATE TABLE DDL (όπως στο προηγούμενο παράδειγμα), συμβαίνει το εξής:
- Το στυλ διανομής έχει οριστεί σε
AUTO(ALL)
για τραπεζάκια καιAUTO(EVEN)
για μεγάλα τραπέζια. - Το κλειδί ταξινόμησης έχει ρυθμιστεί σε
AUTO(SORTKEY)
. Αυτό σημαίνει ότι δεν υπάρχει επί του παρόντος κλειδί ταξινόμησης στον πίνακα.
Η λέξη-κλειδί AUTO υποδηλώνει ότι το στυλ και το κλειδί διαχειρίζονται από το ATO.
Για παράδειγμα, μπορούμε να δημιουργήσουμε έναν πίνακα χωρίς ρητά καθορισμένα κλειδιά:
Στη συνέχεια εισάγουμε κάποια δεδομένα και κοιτάμε τα αποτελέσματα από svv_table_info
:
Ο παρακάτω πίνακας δείχνει τα αποτελέσματά μας.
τραπέζι | diststyle | κλειδί ταξινόμησης 1 |
client_dim | ΑΥΤΟΜΑΤΗ (ΟΛΑ) | AUTO (SORTKEY) |
Η διαχείριση του κλειδιού διανομής και ταξινόμησης γίνεται από την ATO και το στυλ διανομής έχει ήδη οριστεί σε ALL.
Το ATO παρακολουθεί τώρα τα ερωτήματα που έχουν πρόσβαση customer_dim
και αναλύει τα μεταδεδομένα του πίνακα και κάνει αρκετές παρατηρήσεις. Ένα παράδειγμα παρατήρησης είναι η ποσότητα των δεδομένων που μετακινούνται στους κόμβους για να πραγματοποιηθεί μια ένωση ή ο αριθμός των φορών που χρησιμοποιήθηκε μια στήλη σε ένα φίλτρο σάρωσης εύρους που θα είχε ωφεληθεί από τα ταξινομημένα δεδομένα.
Στη συνέχεια, το ATO αναλύει τις παρατηρήσεις χρησιμοποιώντας αλγόριθμους AI για να προσδιορίσει εάν η εισαγωγή ή η αλλαγή ενός κλειδιού διανομής ή ταξινόμησης θα βελτιώσει την απόδοση του φόρτου εργασίας.
Για τα κλειδιά διανομής, το Amazon Redshift κατασκευάζει μια αναπαράσταση γραφήματος του ιστορικού σύνδεσης SQL και χρησιμοποιεί αυτό το γράφημα για να υπολογίσει τη βέλτιστη κατανομή πίνακα για να μειώσει τη μεταφορά δεδομένων μεταξύ των κόμβων κατά την ένωση πινάκων (δείτε το ακόλουθο διάγραμμα). Μπορείτε να βρείτε περισσότερες λεπτομέρειες αυτής της διαδικασίας στην επιστημονική εργασία Σύσταση κλειδιού γρήγορης και αποτελεσματικής διανομής για το Amazon Redshift.
Για τα κλειδιά ταξινόμησης, τα ερωτήματα ενός πίνακα παρακολουθούνται για στήλες που χρησιμοποιούνται συχνά σε κατηγορήματα φιλτραρίσματος και ένωσης. Στη συνέχεια επιλέγεται μια στήλη με βάση τη συχνότητα και την επιλεκτικότητα αυτών των κατηγορημάτων.
Όταν βρεθεί μια βέλτιστη διαμόρφωση, το ATO εφαρμόζει τα νέα κλειδιά στο παρασκήνιο, ανακατανέμοντας σειρές σε όλο το σύμπλεγμα και ταξινομώντας πίνακες. Για τα πλήκτρα ταξινόμησης, μια άλλη δυνατότητα του Amazon Redshift, αυτόματη ταξινόμηση πίνακα, χειρίζεται τη φυσική ταξινόμηση των σειρών στον πίνακα και διατηρεί τη σειρά ταξινόμησης με την πάροδο του χρόνου.
Όλη αυτή η διαδικασία, από την παρακολούθηση έως την υλοποίηση, ολοκληρώνεται σε ώρες έως ημέρες, ανάλογα με τον αριθμό των ερωτημάτων που εκτελούνται.
Μετατροπή υπαρχόντων πινάκων σε αυτόματη βελτιστοποίηση
Μπορείτε να ενεργοποιήσετε το ATO σε υπάρχοντες πίνακες ορίζοντας το στυλ διανομής και το κλειδί ταξινόμησης σε AUTO με το ΠΙΝΑΚΑΣ ΕΝΑΛΛΑΓΗΣ δήλωση. Για παράδειγμα:
Εάν ο πίνακας έχει υπάρχοντα κλειδιά ταξινόμησης ή/και διανομής που έχουν οριστεί ρητά, τότε προς το παρόν θα διατηρηθούν και δεν θα αλλάξουν από το ATO.
Απενεργοποιήστε την αυτόματη βελτιστοποίηση πίνακα
Για να απενεργοποιήσετε το ATO σε έναν πίνακα, μπορείτε να ορίσετε ρητά ένα στυλ διανομής ή ένα κλειδί. Για παράδειγμα:
Στη συνέχεια, μπορείτε να ορίσετε ρητά ένα κλειδί ταξινόμησης ή να ορίσετε το κλειδί ταξινόμησης σε NONE:
Δοκιμή απόδοσης και αποτελέσματα
Σημείο αναφοράς Cloud DW που προέρχεται από το TPC-H
Το TPC-H είναι ένα πρότυπο βιομηχανικής αξιολόγησης που έχει σχεδιαστεί για τη μέτρηση της ad hoc απόδοσης ερωτημάτων για φόρτους εργασίας επιχειρηματικών αναλυτικών στοιχείων. Αποτελείται από 8 πίνακες και 22 ερωτήματα που έχουν σχεδιαστεί για να προσομοιώνουν ένα πραγματικό σύστημα υποστήριξης αποφάσεων. Για πλήρεις λεπτομέρειες του TPC-H, βλ TPC BENCHMARK H.
Το παρακάτω διάγραμμα δείχνει τους οκτώ πίνακες στο μοντέλο δεδομένων TPC-H.
Η Cloud DW Benchmark προέρχεται από το TPC-H και χρησιμοποιεί το ίδιο σύνολο πινάκων, ερωτημάτων και ένα σύνολο δεδομένων 30 TB στο Απλή υπηρεσία αποθήκευσης Amazon (Amazon S3), το οποίο δημιουργήθηκε με τη χρήση της επίσημης γεννήτριας δεδομένων TPC-H. Αυτό παρέχει έναν εύκολο τρόπο για να ρυθμίσετε και να εκτελέσετε τη δοκιμή στο δικό σας σύμπλεγμα Amazon Redshift.
Επειδή το σημείο αναφοράς του Cloud DW προέρχεται από το σημείο αναφοράς TPC-H, δεν είναι συγκρίσιμο με τα δημοσιευμένα αποτελέσματα TPC-H, επειδή τα αποτελέσματα των δοκιμών μας δεν συμμορφώνονται πλήρως με τις προδιαγραφές. Αυτή η ανάρτηση χρησιμοποιεί το σημείο αναφοράς του Cloud DW.
Ρυθμίστε τη δοκιμή
Τα παρακάτω βήματα περιγράφουν πώς να ρυθμίσετε τους πίνακες TPC-H σε ένα σύμπλεγμα Amazon Redshift, να εισάγετε τα δεδομένα και να ρυθμίσετε τον προγραμματιστή Amazon Redshift για την εκτέλεση των ερωτημάτων.
Δημιουργήστε ένα σύμπλεγμα Amazon Redshift
Συνιστούμε να εκτελέσετε αυτήν τη δοκιμή σε ένα σύμπλεγμα πέντε κόμβων ra3.16xlarge. Μπορείτε να εκτελέσετε τη δοκιμή σε μικρότερο σύμπλεγμα, αλλά οι χρόνοι εκτέλεσης του ερωτήματος θα είναι πιο αργοί και ίσως χρειαστεί να προσαρμόσετε τη συχνότητα στην οποία εκτελούνται τα ερωτήματα δοκιμής, όπως κάθε 4 ώρες αντί για κάθε 3 ώρες. Για περισσότερες πληροφορίες σχετικά με τη δημιουργία ενός συμπλέγματος, βλ Βήμα 2: Δημιουργήστε ένα δείγμα συμπλέγματος Amazon Redshift. Συνιστούμε επίσης τη δημιουργία του συμπλέγματος στην περιοχή us-east-1 για να μειωθεί ο χρόνος που απαιτείται για την αντιγραφή των δεδομένων δοκιμής.
Ρύθμιση αδειών
Για αυτήν τη δοκιμή, χρειάζεστε δικαιώματα για την εκτέλεση της εντολής COPY στο Amazon Redshift για τη φόρτωση των δεδομένων δοκιμής και δικαιώματα στον προγραμματιστή Amazon Redshift για την εκτέλεση των ερωτημάτων δοκιμής.
AWS Ταυτότητα και πρόσβαση Διαχείρισης Οι ρόλοι (IAM) παραχωρούν άδειες σε υπηρεσίες AWS. Τα παρακάτω βήματα περιγράφουν τον τρόπο δημιουργίας και ρύθμισης δύο ξεχωριστών ρόλων με τα απαιτούμενα δικαιώματα.
Η RedshiftCopyRole
Ο ρόλος παρέχει στο Amazon Redshift πρόσβαση μόνο για ανάγνωση στο Amazon S3, ώστε να μπορεί να αντιγράψει τα δεδομένα δοκιμής.
- Στην κονσόλα IAM, στο Ρόλος σελίδα, δημιουργήστε έναν νέο ρόλο που ονομάζεται
RedshiftCopyRole
χρησιμοποιώντας Redshift – Προσαρμόσιμο ως περίπτωση χρήσης αξιόπιστης οντότητας. - Επισυνάψτε την πολιτική
amazonS3ReadOnlyAccess
.
Η RedshiftATOTestingRole
Ο ρόλος χορηγεί τα απαιτούμενα δικαιώματα για τη ρύθμιση και την εκτέλεση του προγραμματιστή Amazon Redshift.
- Στην κονσόλα IAM, δημιουργήστε έναν νέο ρόλο που ονομάζεται
RedshiftATOTestingRole
χρησιμοποιώντας Redshift – Προσαρμόσιμο ως περίπτωση χρήσης αξιόπιστης οντότητας. - Επισυνάψτε τις ακόλουθες πολιτικές:
amazonRedshiftDataFullAccess
amazonEventBridgeFullAccess
- Δημιουργήστε μια νέα πολιτική που ονομάζεται
RedshiftTempCredPolicy
με το ακόλουθο JSON και επισυνάψτε το στο ρόλο. Αντικαθιστώ {DB_USER_NAME} με το όνομα του χρήστη της βάσης δεδομένων Amazon Redshift που εκτελεί το ερώτημα.
Αυτή η πολιτική εκχωρεί προσωρινά διαπιστευτήρια για να επιτρέψει στον προγραμματιστή να συνδεθεί στο Amazon Redshift.
- Ελέγξτε ότι ο ρόλος έχει τις πολιτικές
RedshiftTempCredPolicy
,amazonEventBridgeFullAccess
, ναamazonEventBridgeFullAccess
συνημμένο. - Τώρα επεξεργαστείτε τις σχέσεις εμπιστοσύνης του ρόλου και προσθέστε την ακόλουθη πολιτική:
Ο ρόλος θα πρέπει τώρα να έχει τις αξιόπιστες οντότητες όπως φαίνεται στο παρακάτω στιγμιότυπο οθόνης.
Τώρα μπορείτε να επισυνάψετε τον ρόλο στο σύμπλεγμα σας.
- Στην κονσόλα Amazon Redshift, επιλέξτε το σύμπλεγμα δοκιμών σας.
- Στις Ιδιοκτησίες καρτέλα, επιλέξτε Δικαιώματα συμπλέγματος.
- Αγορά Διαχείριση ρόλων IAM και επισυνάψτε
RedshiftCopyRole
.
Μπορεί να χρειαστούν μερικά λεπτά για να εφαρμοστούν οι ρόλοι.
Ο χρήστης IAM που ρυθμίζει και εκτελεί τον προγραμματιστή Amazon Redshift πρέπει επίσης να έχει τα σωστά δικαιώματα. Τα ακόλουθα βήματα περιγράφουν τον τρόπο εκχώρησης των απαιτούμενων δικαιωμάτων στο χρήστη.
- Στην κονσόλα IAM, στο Χρήστες σελίδα, επιλέξτε τον χρήστη που θα καθορίσει το χρονοδιάγραμμα.
- Επισυνάψτε την πολιτική
amazonEventBridgeFullAccess
απευθείας στον χρήστη. - Δημιουργήστε μια νέα πολιτική που ονομάζεται
AssumeATOTestingRolePolicy
με το ακόλουθο JSON και επισυνάψτε το στον χρήστη. Αντικαθιστώ {AWS ACCOUNT_NUMBER} με τον αριθμό λογαριασμού σας AWS.
Αυτή η πολιτική επιτρέπει στον χρήστη να αναλάβει τον ρόλο RedshiftATOTestingRole
, το οποίο έχει απαιτούμενα δικαιώματα για τον προγραμματιστή.
Ο χρήστης θα πρέπει τώρα να έχει το AssumeATOTestingRolePolicy
και amazonEventBridgeFullAccess
πολιτικές που συνδέονται άμεσα.
Δημιουργήστε τους πίνακες βάσης δεδομένων και αντιγράψτε τα δεδομένα δοκιμής
Το ακόλουθο σενάριο είναι μια μη συντονισμένη έκδοση του TPC-H ddl.sql
αρχείο που δημιουργεί όλους τους απαιτούμενους πίνακες για τη δοκιμή και τους φορτώνει με την εντολή COPY. Για να αποσυντονίσετε τους πίνακες, όλα τα κλειδιά ταξινόμησης και διανομής έχουν αφαιρεθεί. Η αρχική συντονισμένη έκδοση είναι διαθέσιμη στο amazon-redshift-utils Repo GitHub.
Αντιγράψτε το σενάριο στον πελάτη Amazon Redshift SQL της επιλογής σας και αντικαταστήστε το συμβολοσειρά με τον αριθμό λογαριασμού AWS και εκτελέστε το σενάριο. Σε ένα σύμπλεγμα πέντε κόμβων ra3.16xμεγάλο σύμπλεγμα στο us-east-1
Περιοχή, το αντίγραφο πρέπει να διαρκέσει περίπου 3 ώρες.
Το σενάριο δημιουργεί πίνακες στο προεπιλεγμένο σχήμα public
. Για αυτήν τη δοκιμή, έχω δημιουργήσει μια βάση δεδομένων που ονομάζεται tpch_30tb
, στο οποίο εκτελείται το σενάριο.
Όταν ολοκληρωθούν οι εντολές αντιγραφής, εκτελέστε τα ακόλουθα ερωτήματα για να δείτε τις φυσικές ρυθμίσεις του πίνακα:
Η έξοδος αυτού του ερωτήματος δείχνει ότι ορισμένες βελτιστοποιήσεις έχουν ήδη εφαρμοστεί από την εντολή COPY. Οι μικρότεροι πίνακες έχουν το diststyle ορισμένο σε ALL (αναπαράγοντας όλες τις σειρές σε όλους τους κόμβους δεδομένων) και οι μεγαλύτεροι πίνακες έχουν οριστεί σε EVEN (μια στρογγυλή κατανομή σειρών στους κόμβους δεδομένων). Επίσης, έχει οριστεί η κωδικοποίηση (συμπίεση) για όλους τους πίνακες.
τραπέζι | tbl_rows | μέγεθος | diststyle | κλειδί ταξινόμησης 1 | αριθμός_κλειδιού ταξινόμησης | κωδικοποιούνται |
περιοχή | 5 | 30 | ΑΥΤΟΜΑΤΗ (ΟΛΑ) | AUTO (SORTKEY) | 0 | Υ, ΑΥΤΟΜΑΤΟ(ΚΩΔΙΚΟΠΟΙΗΣΗ) |
έθνος | 25 | 35 | ΑΥΤΟΜΑΤΗ (ΟΛΑ) | AUTO (SORTKEY) | 0 | Υ, ΑΥΤΟΜΑΤΟ(ΚΩΔΙΚΟΠΟΙΗΣΗ) |
προμηθευτής | 300000000 | 25040 | ΑΥΤΟΜΑΤΗ (ΖΩΗ) | AUTO (SORTKEY) | 0 | Υ, ΑΥΤΟΜΑΤΟ(ΚΩΔΙΚΟΠΟΙΗΣΗ) |
μέρος | 6000000000 | 316518 | ΑΥΤΟΜΑΤΗ (ΖΩΗ) | AUTO (SORTKEY) | 0 | Υ, ΑΥΤΟΜΑΤΟ(ΚΩΔΙΚΟΠΟΙΗΣΗ) |
πελάτης | 4500000000 | 399093 | ΑΥΤΟΜΑΤΗ (ΖΩΗ) | AUTO (SORTKEY) | 0 | Υ, ΑΥΤΟΜΑΤΟ(ΚΩΔΙΚΟΠΟΙΗΣΗ) |
Partupp | 24000000000 | 1521893 | ΑΥΤΟΜΑΤΗ (ΖΩΗ) | AUTO (SORTKEY) | 0 | Υ, ΑΥΤΟΜΑΤΟ(ΚΩΔΙΚΟΠΟΙΗΣΗ) |
παραγγελιών | 45000000000 | 2313421 | ΑΥΤΟΜΑΤΗ (ΖΩΗ) | AUTO (SORTKEY) | 0 | Υ, ΑΥΤΟΜΑΤΟ(ΚΩΔΙΚΟΠΟΙΗΣΗ) |
στοιχείο γραμμής | 179997535081 | 8736977 | ΑΥΤΟΜΑΤΗ (ΖΩΗ) | AUTO (SORTKEY) | 0 | Υ, ΑΥΤΟΜΑΤΟ(ΚΩΔΙΚΟΠΟΙΗΣΗ) |
Αυτή η έξοδος δείχνει το σύνολο τύπων κωδικοποίησης για κάθε στήλη του customer
τραπέζι. Επειδή το Amazon Redshift είναι μια βάση δεδομένων στηλών, η συμπίεση μπορεί να ρυθμιστεί διαφορετικά για κάθε στήλη, σε αντίθεση με μια βάση δεδομένων που βασίζεται σε γραμμές, η οποία μπορεί να ορίσει τη συμπίεση μόνο σε επίπεδο γραμμής.
όνομα πίνακα | στήλη | κωδικοποίησης |
πελάτης | c_custkey | az64 |
πελάτης | c_name | lzo |
πελάτης | γ_διεύθυνση | lzo |
πελάτης | c_nationkey | az64 |
πελάτης | c_phone | lzo |
πελάτης | c_acctbal | az64 |
πελάτης | c_mktsegment | lzo |
πελάτης | c_comment | lzo |
Προγραμματίστε τα ερωτήματα δοκιμής
Το σημείο αναφοράς TPC-H χρησιμοποιεί ένα σύνολο 22 ερωτημάτων που έχουν μεγάλη ποικιλία πολυπλοκότητας, ποσότητας δεδομένων που σαρώθηκαν, μέγεθος συνόλου απαντήσεων και χρόνο που έχει παρέλθει. Για αυτήν τη δοκιμή, τα ερωτήματα εκτελούνται σε σειρά από ένα μόνο αρχείο δέσμης ενεργειών query0.sql. Επειδή το ερώτημα 11 (Q11) επιστρέφει μεγάλο αριθμό σειρών και ο στόχος αυτής της δοκιμής ήταν η μέτρηση του χρόνου εκτέλεσης, αυτό το σημείο αναφοράς περιλάμβανε ένα limit 1000
δήλωση σχετικά με το ερώτημα για να διασφαλιστεί ότι ο χρόνος που μετρήθηκε ήταν κυρίως χρόνος εκτέλεσης και όχι χρόνος επιστροφής. Αυτό το σενάριο είναι διαθέσιμο στο amazon-redshift-utils Αποθετήριο GitHub κάτω από το src/BlogContent/ATO
Κατάλογο.
Στην κορυφή του σεναρίου, enable_result_cache_for_session
είναι απενεργοποιημένη. Αυτό αναγκάζει το Amazon Redshift να εκτελεί ξανά τα ερωτήματα σε κάθε δοκιμαστική εκτέλεση και όχι απλώς να επιστρέφει τα αποτελέσματα των ερωτημάτων από την προσωρινή μνήμη αποτελεσμάτων.
Χρησιμοποιήστε τα παρακάτω βήματα για να προγραμματίσετε το σενάριο δοκιμής:
- Λήψη query0.sql από το GitHub.
- Βεβαιωθείτε ότι ο χρήστης IAM έχει λάβει τα απαραίτητα δικαιώματα (που ορίστηκαν σε προηγούμενο βήμα).
- Στην κονσόλα Amazon Redshift, ανοίξτε το πρόγραμμα επεξεργασίας ερωτημάτων.
- Εάν η τρέχουσα καρτέλα είναι κενή, εισαγάγετε οποιοδήποτε κείμενο για να ενεργοποιήσετε το Πρόγραμμα κουμπί.
- Επιλέξτε Πρόγραμμα.
- Κάτω από Δικαιώματα προγραμματιστή for IAM ρόλο, καθορίστε τον ρόλο IAM που δημιουργήσατε σε προηγούμενο βήμα (
RedshiftATOTestingRole
). - Για συστάδα, επιλέξτε το σύμπλεγμα σας.
- Εισαγάγετε τιμές για Ονομα βάσης δεδομένων και Χρήστης βάσης δεδομένων.
- Κάτω από Ερώτηση πληροφοριών, Για Προγραμματισμένο όνομα ερωτήματος, εισάγετε
tpch-30tb-test
. - Επιλέξτε Μεταφόρτωση ερωτήματος Και επιλέξτε το
query0.sql
αρχείο που κατεβάσατε σε προηγούμενο βήμα. - Κάτω από Επιλογές προγραμματισμού, αλλαγή Επαναλάβετε κάθε: έως 3 ώρες.
Εάν έχετε μικρότερο σύμπλεγμα, κάθε δοκιμαστική εκτέλεση απαιτεί περισσότερο χρόνο. Για να προσδιορίσετε το χρόνο που χρειάζεται, τρέξτε query0.sql
μία φορά για να καθορίσετε το χρόνο εκτέλεσης και να προσθέσετε μία ώρα για να εκτελέσει το ATO την επεξεργασία του.
Τα ερωτήματα δοκιμής έχουν πλέον ρυθμιστεί να εκτελούνται στο παρασκήνιο στο δεδομένο χρονοδιάγραμμα. Αφήστε το πρόγραμμα να λειτουργεί για περίπου 48 ώρες για να εκτελέσετε μια πλήρη δοκιμή.
Ελέγξτε τις αλλαγές του πίνακα
Το Amazon Redshift παρακολουθεί αυτόματα το φόρτο εργασίας στο σύμπλεγμα και χρησιμοποιεί αλγόριθμους τεχνητής νοημοσύνης για τον υπολογισμό των βέλτιστων κλειδιών ταξινόμησης και διανομής. Στη συνέχεια, η ATO υλοποιεί τις αλλαγές πίνακα online, χωρίς να διακόπτει τα ερωτήματα που εκτελούνται.
Τα ακόλουθα ερωτήματα δείχνουν τις αλλαγές που έκανε η ATO και πότε έγιναν:
Ο παρακάτω πίνακας δείχνει την παραγωγή μας.
τραπέζι | diststyle | κλειδί ταξινόμησης 1 |
πελάτης | AUTO(KEY(c_custkey)) | AUTO (SORTKEY) |
στοιχείο γραμμής | AUTO(KEY(l_orderkey)) | AUTO(SORTKEY(l_ημερομηνία αποστολής)) |
έθνος | ΑΥΤΟΜΑΤΗ (ΟΛΑ) | AUTO (SORTKEY) |
παραγγελιών | AUTO(KEY(o_orderkey)) | AUTO(SORTKEY(o_orderdate)) |
μέρος | AUTO(KEY(p_partkey)) | AUTO(SORTKEY(p_type)) |
Partupp | AUTO(KEY(ps_partkey)) | AUTO (SORTKEY) |
περιοχή | ΑΥΤΟΜΑΤΗ (ΟΛΑ) | AUTO (SORTKEY) |
προμηθευτής | AUTO(KEY(s_suppkey)) | AUTO(SORTKEY(s_nationkey)) |
Τώρα μπορούμε να δούμε όλα τα κλειδιά διανομής και ταξινόμησης που έχουν οριστεί από την ATO.
svl_auto_worker_action είναι μια προβολή συστήματος Amazon Redshift που μας επιτρέπει να δούμε ένα αρχείο καταγραφής των αλλαγών που έγιναν από το ATO:
Τα δεδομένα στον παρακάτω πίνακα έχουν συντομευτεί για εξοικονόμηση χώρου.
τραπέζι | τύπος | κατάσταση | ώρα εκδήλωσης | προηγούμενη_κατάσταση |
προμηθευτής | κλειδί δίσκου | Αρχική | 2021-06-25 04:16:54.628556 | |
προμηθευτής | κλειδί δίσκου | Ολοκληρώθηκε: 100% | 2021-06-25 04:17:13.083246 | DIST STYLE: diststyle ακόμη. |
μέρος | κλειδί δίσκου | Αρχική | 2021-06-25 04:20:13.087554 | |
μέρος | κλειδί δίσκου | Σημείο ελέγχου: πρόοδος 11.400000% | 2021-06-25 04:20:36.626592 | |
μέρος | κλειδί δίσκου | Αρχική | 2021-06-25 04:20:46.627278 | |
μέρος | κλειδί δίσκου | Σημείο ελέγχου: πρόοδος 22.829400% | 2021-06-25 04:21:06.137430 | |
... | ... | ... | ... | ... |
μέρος | κλειδί δίσκου | Αρχική | 2021-06-25 04:23:17.421084 | |
μέρος | κλειδί δίσκου | Σημείο ελέγχου: πρόοδος 80.055012% | 2021-06-25 04:23:36.653153 | |
μέρος | κλειδί δίσκου | Αρχική | 2021-06-25 04:23:46.653869 | |
μέρος | κλειδί δίσκου | Ολοκληρώθηκε: 100% | 2021-06-25 04:24:47.052317 | DIST STYLE: diststyle ακόμη. |
παραγγελιών | κλειδί δίσκου | Αρχική | 2021-06-25 04:27:47.057053 | |
παραγγελιών | κλειδί δίσκου | Σημείο ελέγχου: πρόοδος 1.500000% | 2021-06-25 04:28:03.040231 | |
παραγγελιών | κλειδί δίσκου | Αρχική | 2021-06-25 04:28:13.041467 | |
παραγγελιών | κλειδί δίσκου | Σημείο ελέγχου: πρόοδος 2.977499% | 2021-06-25 04:28:28.049088 | |
... | ... | ... | ... | ... |
παραγγελιών | κλειδί δίσκου | Αρχική | 2021-06-25 04:57:46.254614 | |
παραγγελιών | κλειδί δίσκου | Σημείο ελέγχου: πρόοδος 97.512168% | 2021-06-25 04:58:07.643284 | |
παραγγελιών | κλειδί δίσκου | Αρχική | 2021-06-25 04:58:17.644326 | |
παραγγελιών | κλειδί δίσκου | Ολοκληρώθηκε: 100% | 2021-06-25 05:01:44.110385 | DIST STYLE: diststyle ακόμη. |
πελάτης | κλειδί δίσκου | Αρχική | 2021-06-25 05:04:44.115405 | |
πελάτης | κλειδί δίσκου | Σημείο ελέγχου: πρόοδος 9.000000% | 2021-06-25 05:04:56.730455 | |
πελάτης | κλειδί δίσκου | Αρχική | 2021-06-25 05:05:06.731523 | |
πελάτης | κλειδί δίσκου | Σημείο ελέγχου: πρόοδος 18.008868% | 2021-06-25 05:05:19.295817 | |
... | ... | ... | ... | ... |
πελάτης | κλειδί δίσκου | Αρχική | 2021-06-25 05:08:03.054506 | |
πελάτης | κλειδί δίσκου | Σημείο ελέγχου: πρόοδος 90.127292% | 2021-06-25 05:08:14.604731 | |
πελάτης | κλειδί δίσκου | Αρχική | 2021-06-25 05:08:24.605273 | |
πελάτης | κλειδί δίσκου | Ολοκληρώθηκε: 100% | 2021-06-25 05:09:19.532081 | DIST STYLE: diststyle ακόμη. |
Partupp | κλειδί δίσκου | Αρχική | 2021-06-26 04:34:14.548875 | |
Partupp | κλειδί δίσκου | Σημείο ελέγχου: πρόοδος 2.300000% | 2021-06-26 04:34:33.730693 | |
Partupp | κλειδί δίσκου | Αρχική | 2021-06-26 04:34:43.731784 | |
Partupp | κλειδί δίσκου | Σημείο ελέγχου: πρόοδος 4.644800% | 2021-06-26 04:34:59.185233 | |
... | ... | ... | ... | ... |
Partupp | κλειδί δίσκου | Αρχική | 2021-06-26 04:52:42.980895 | |
Partupp | κλειδί δίσκου | Σημείο ελέγχου: πρόοδος 95.985631% | 2021-06-26 04:52:59.498615 | |
Partupp | κλειδί δίσκου | Αρχική | 2021-06-26 04:53:09.499277 | |
Partupp | κλειδί δίσκου | Ολοκληρώθηκε: 100% | 2021-06-26 04:55:55.539695 | DIST STYLE: diststyle ακόμη. |
στοιχείο γραμμής | κλειδί δίσκου | Αρχική | 2021-06-26 04:58:55.544631 | |
στοιχείο γραμμής | κλειδί δίσκου | Σημείο ελέγχου: πρόοδος 0.400000% | 2021-06-26 04:59:18.864780 | |
στοιχείο γραμμής | κλειδί δίσκου | Αρχική | 2021-06-26 04:59:28.865949 | |
στοιχείο γραμμής | κλειδί δίσκου | Σημείο ελέγχου: πρόοδος 0.798400% | 2021-06-26 04:59:46.540671 | |
... | ... | ... | ... | ... |
στοιχείο γραμμής | κλειδί δίσκου | Αρχική | 2021-06-26 08:31:43.484178 | |
στοιχείο γραμμής | κλειδί δίσκου | Σημείο ελέγχου: πρόοδος 99.525163% | 2021-06-26 08:32:05.838456 | |
στοιχείο γραμμής | κλειδί δίσκου | Αρχική | 2021-06-26 08:32:15.839239 | |
στοιχείο γραμμής | κλειδί δίσκου | Ολοκληρώθηκε: 100% | 2021-06-26 08:41:17.083716 | DIST STYLE: diststyle ακόμη. |
προμηθευτής | κλειδί ταξινόμησης | Αρχική | 2021-06-26 16:17:50.458629 | |
προμηθευτής | κλειδί ταξινόμησης | Ολοκληρώθηκε: 100% | 2021-06-26 16:17:51.381247 | SORTKEY: Κανένα. |
μέρος | κλειδί ταξινόμησης | Αρχική | 2021-06-26 16:17:51.381595 | |
μέρος | κλειδί ταξινόμησης | Ολοκληρώθηκε: 100% | 2021-06-26 16:17:52.253288 | SORTKEY: Κανένα. |
παραγγελιών | κλειδί ταξινόμησης | Αρχική | 2021-06-26 16:17:52.253648 | |
παραγγελιών | κλειδί ταξινόμησης | Ολοκληρώθηκε: 100% | 2021-06-26 16:17:53.164057 | SORTKEY: Κανένα. |
στοιχείο γραμμής | κλειδί ταξινόμησης | Αρχική | 2021-06-26 16:17:53.164408 | |
στοιχείο γραμμής | κλειδί ταξινόμησης | Ολοκληρώθηκε: 100% | 2021-06-26 16:17:54.289620 | SORTKEY: Κανένα. |
Μπορούμε να δούμε πότε εφαρμόστηκε κάθε αλλαγή από την ATO. Αρχικά, προστέθηκε ένα DISTKEY στο supplier
πίνακας στις 4:17 π.μ. στις 25 Ιουνίου. Επειδή αυτός ο πίνακας είναι σχετικά μικρός (300 εκατομμύρια σειρές), η ATO μπόρεσε να εφαρμόσει το DISTKEY σε ένα βήμα.
Στη συνέχεια, η ATO άρχισε να εφαρμόζει ένα DISTKEY στο part
τραπέζι στις 4:20 π.μ. Για αλλαγές DISTKEY σε μεγάλα τραπέζια (part
έχει 6 δισεκατομμύρια σειρές), το ATO δημιουργεί ένα αντίγραφο του πίνακα προέλευσης στο παρασκήνιο (ένας πίνακας σκιών) και στη συνέχεια αντιγράφει δεδομένα από τον πίνακα προέλευσης στον πίνακα σκιών, αναδιανέμοντας τα δεδομένα σύμφωνα με το νέο DISTKEY. Αυτή η διαδικασία γίνεται σε παρτίδες γνωστές ως σημεία ελέγχου. Αφού αντιγραφούν όλα τα δεδομένα, τα μεταδεδομένα ενημερώνονται, ανταλλάσσοντας τον πίνακα σκιών με τον πίνακα προέλευσης. Υπήρχαν επτά σημεία ελέγχου για part
, και η πλήρης μετατροπή ολοκληρώθηκε στις 4:24 π.μ.
Στη συνέχεια, από τις 4:27 π.μ. της 25ης Ιουνίου έως τις 4:55 π.μ. της 26ης Ιουνίου, εφαρμόστηκαν τα κλειδιά διανομής στις orders
, customer
, να partsupp
. Στη συνέχεια, το τελευταίο DISTKEY εφαρμόστηκε στον μεγαλύτερο πίνακα του μοντέλου lineitem
(179 δισεκατομμύρια σειρές), τερματισμός στις 8:41 π.μ. Επειδή αυτό το τραπέζι ήταν τόσο μεγάλο, υπήρχαν 261 σημεία ελέγχου.
Τέλος, ταξινομήστε τα πλήκτρα supplier
, part
, orders
και lineitem
δημιουργήθηκαν στις 4:17 της 26 Ιουνίου.
Δείτε τα αποτελέσματα των δοκιμών
Τώρα εξετάζουμε το αποτέλεσμα της δοκιμής και βλέπουμε τι αντίκτυπο είχαν οι αλλαγές της ATO στη συνολική απόδοση.
Το παρακάτω γραμμικό γράφημα δείχνει το χρόνο εκτέλεσης του query0.sql
σενάριο με την πάροδο του χρόνου. Οι κάθετες γραμμές αναφοράς δείχνουν πότε το ATO άλλαξε ένα DISTKEY ή SORTKEY. Τα πρώτα κλειδιά διανομής δημιουργήθηκαν πριν αρχίσει πραγματικά η δοκιμή. Αυτό οφείλεται στο γεγονός ότι το ATO μπόρεσε να χρησιμοποιήσει ιδιότητες πίνακα όπως περιορισμούς για να καθορίσει τα κατάλληλα κλειδιά διανομής. Με την πάροδο του χρόνου, η ATO μπορεί να αλλάξει αυτά τα κλειδιά διανομής με βάση τις παρατηρήσεις του φόρτου εργασίας.
Στη συνέχεια προστέθηκαν τα υπόλοιπα κλειδιά διανομής και, τέλος, τα πλήκτρα ταξινόμησης, μειώνοντας τον χρόνο εκτέλεσης από περίπου 4,750 δευτερόλεπτα σε 3,597.
Τα δεδομένα για αυτό το γράφημα προέρχονται από το ακόλουθο ερώτημα:
Ο παρακάτω πίνακας δείχνει τα αποτελέσματά μας.
pid | num_queries | ώρα έναρξης | τέλος χρόνου | παρήλθε_δευτερόλεπτο | πέρασε_ώρα | compile_time_sec | exec_time_sec | % βελτίωση |
1758 | 32 | 2021-06-25 12:00:02.475253 | 2021-06-25 13:39:58.554643 | 5996 | 1.67 | 35 | 5961 | |
25569 | 32 | 2021-06-25 15:00:02.699906 | 2021-06-25 16:18:54.603617 | 4732 | 1.31 | 5 | 4727 | |
4226 | 32 | 2021-06-25 18:00:02.113902 | 2021-06-25 19:19:12.088981 | 4750 | 1.32 | 0 | 4750 | ΒΑΣΗ |
35145 | 32 | 2021-06-25 21:00:02.625849 | 2021-06-25 22:19:28.852209 | 4766 | 1.32 | 0 | 4766 | 0.34% |
12862 | 32 | 2021-06-26 00:00:02.226747 | 2021-06-26 01:19:20.345285 | 4758 | 1.32 | 0 | 4758 | 0.17% |
36919 | 32 | 2021-06-26 03:00:01.794476 | 2021-06-26 04:18:54.110546 | 4733 | 1.31 | 0 | 4733 | -0.36% |
11631 | 32 | 2021-06-26 06:00:02.300287 | 2021-06-26 07:19:52.082589 | 4790 | 1.33 | 21 | 4769 | 0.40% |
33833 | 32 | 2021-06-26 09:00:02.281647 | 2021-06-26 10:05:40.694966 | 3938 | 1.09 | 27 | 3911 | -17.66% |
3830 | 32 | 2021-06-26 12:00:01.873699 | 2021-06-26 13:06:37.702817 | 3996 | 1.11 | 0 | 3996 | -15.87% |
24134 | 32 | 2021-06-26 15:00:02.203329 | 2021-06-26 16:06:24.548732 | 3982 | 1.11 | 0 | 3982 | -16.17% |
48465 | 32 | 2021-06-26 18:00:02.215612 | 2021-06-26 19:13:07.665636 | 4385 | 1.22 | 6 | 4379 | -7.81% |
26016 | 32 | 2021-06-26 21:00:02.298997 | 2021-06-26 22:05:38.413672 | 3936 | 1.09 | 0 | 3936 | -17.14% |
2076 | 32 | 2021-06-27 00:00:02.297759 | 2021-06-27 01:01:09.826855 | 3667 | 1.02 | 0 | 3667 | -22.80% |
26222 | 32 | 2021-06-27 03:00:02.485152 | 2021-06-27 04:00:39.922720 | 3637 | 1.01 | 0 | 3637 | -23.43% |
1518 | 32 | 2021-06-27 06:00:02.075845 | 2021-06-27 07:00:33.151602 | 3631 | 1.01 | 0 | 3631 | -23.56% |
23629 | 32 | 2021-06-27 09:00:01.776684 | 2021-06-27 10:00:08.432630 | 3607 | 1 | 0 | 3607 | -24.06% |
42169 | 32 | 2021-06-27 12:00:02.341020 | 2021-06-27 13:00:13.290535 | 3611 | 1 | 0 | 3611 | -23.98% |
13299 | 32 | 2021-06-27 15:00:02.394744 | 2021-06-27 16:00:00.383514 | 3598 | 1 | 1 | 3597 | -24.27% |
Κάνουμε μια βασική μέτρηση του χρόνου εκτέλεσης στην τρίτη εκτέλεση, η οποία διασφαλίζει ότι τυχόν επιπλέον χρόνος μεταγλώττισης αποκλείεται από τη δοκιμή. Όταν κοιτάμε τις δοκιμαστικές διαδρομές από τα μεσάνυχτα της 26ης Ιουνίου (αφού η ATO έκανε τις αλλαγές της), μπορούμε να δούμε τη βελτίωση της απόδοσης.
εκκαθάριση
Αφού προβάλετε τα αποτελέσματα των δοκιμών και τις αλλαγές ATO, φροντίστε να παροπλίσετε το σύμπλεγμα σας για να αποφύγετε να χρειαστεί να πληρώσετε για αχρησιμοποίητους πόρους. Επίσης, διαγράψτε την πολιτική IAM RedshiftTempCredPolicy
και τους ρόλους του IAM RedshiftCopyRole
και RedshiftATOTestingRole
.
Σημείο αναφοράς Cloud DW που προέρχεται από αποτελέσματα TPC-H 3 TB
Κάναμε το ίδιο τεστ χρησιμοποιώντας το 3 TB έκδοση του δείκτη αναφοράς Cloud DW που προέρχεται από το TPC-H. Έτρεχε σε ένα σύμπλεγμα 10 κόμβων ra3.4xlarge με query0.sql
τρέχετε κάθε 30 λεπτά. Τα αποτελέσματα της δοκιμής έδειξαν ότι η ATO πέτυχε σημαντική αύξηση στην απόδοση έως και 25%.
Χαρακτηριστικά
Με την αυτόματη βελτιστοποίηση πίνακα, το Amazon Redshift αύξησε περαιτέρω τις δυνατότητες αυτοματοποίησής του για να καλύψει τη ρύθμιση απόδοσης ερωτημάτων εκτός από τις εργασίες διαχείρισης.
Σε αυτήν την ανάρτηση, εξήγησα πώς τα κλειδιά διανομής και ταξινόμησης βελτιώνουν την απόδοση και πώς ορίζονται αυτόματα από το ATO. Έδειξα πώς το ATO αύξησε την απόδοση έως και 24% σε ένα βιομηχανικό πρότυπο αναφοράς 30 TB χωρίς να απαιτείται χειροκίνητος συντονισμός. Περιέγραψα επίσης τα βήματα για τη ρύθμιση του ίδιου τεστ μόνοι σας.
Σας ενθαρρύνω να δοκιμάσετε το ATO μέχρι δημιουργώντας ένα σύμπλεγμα Amazon Redshift και εκτέλεση της δοκιμής ή ενεργοποίηση του ATO σε υπάρχοντες και νέους πίνακες στο τρέχον σύμπλεγμα και παρακολούθηση των αποτελεσμάτων.
Σχετικά με το Συγγραφέας
Άνταμ Γκατ είναι Senior Specialist Solution Architect για Analytics στο AWS. Έχει πάνω από 20 χρόνια εμπειρίας στην αποθήκευση δεδομένων και δεδομένων και βοηθά τους πελάτες να δημιουργήσουν ισχυρές, επεκτάσιμες και υψηλής απόδοσης λύσεις ανάλυσης στο cloud.
- '
- 100
- 11
- 2020
- 39
- 7
- 77
- 9
- 98
- πρόσβαση
- Λογαριασμός
- Ενέργειες
- Ad
- Πρόσθετος
- σύμβουλος
- AI
- αλγόριθμοι
- Όλα
- Amazon
- analytics
- ανακοίνωσε
- αρχιτεκτονική
- γύρω
- τεχνητή νοημοσύνη
- αυτόματη
- Αυτοματοποίηση
- AWS
- AWS re: Εφευρέστε
- Baseline
- αναφοράς
- ΚΑΛΎΤΕΡΟΣ
- Δισεκατομμύριο
- Κουτί
- χτίζω
- επιχείρηση
- αλλαγή
- Backup
- κωδικός
- Στήλη
- Υπολογίστε
- Μετατροπή
- δημιουργία
- Διαπιστεύσεις
- Ρεύμα
- Πελάτες
- ημερομηνία
- αποθήκη δεδομένων
- βάση δεδομένων
- Ημερομηνίες
- Dev
- Διάσταση
- συντάκτης
- Αποτελεσματικός
- εκδηλώσεις
- εκτέλεση
- εμπειρία
- FAST
- Χαρακτηριστικό
- Φίλτρα
- Τελικά
- Όνομα
- πλήρη
- GitHub
- επιχορηγήσεις
- Group
- ιστορία
- Πως
- Πώς να
- HTTPS
- τεράστιος
- IAM
- προσδιορίσει
- Επίπτωση
- Αυξάνουν
- βιομηχανία
- πληροφορίες
- Νοημοσύνη
- συμμετέχουν
- IT
- ενταχθούν
- Κλειδί
- πλήκτρα
- large
- Επίπεδο
- γραμμή
- φορτίο
- τοπικά
- μέτρο
- εκατομμύριο
- μοντέλο
- παρακολούθηση
- μετακινήσετε
- νέα δυνατότητα
- κόμβων
- επίσημος ανώτερος υπάλληλος
- διαδικτυακά (online)
- ανοίξτε
- λειτουργίες
- τάξη
- ΑΛΛΑ
- Χαρτί
- πρότυπο
- Πληρωμή
- επίδοση
- φυσικός
- Πολιτικές
- πολιτική
- παρόν
- τιμή
- Κύριος
- δημόσιο
- σειρά
- RE
- μείωση
- Σχέσεις
- πόρος
- Υποστηρικτικό υλικό
- ΠΕΡΙΦΕΡΕΙΑ
- Αποτελέσματα
- Επιστροφές
- τρέξιμο
- τρέξιμο
- απολέπιση
- Υπηρεσίες
- σειρά
- τον καθορισμό
- σκιά
- Απλούς
- Μέγεθος
- small
- So
- Λύσεις
- Χώρος
- διάδοση
- SQL
- ξεκίνησε
- Δήλωση
- Κατάσταση
- χώρος στο δίσκο
- κατάστημα
- καταστήματα
- υποστήριξη
- σύστημα
- TD
- προσωρινή
- δοκιμή
- Δοκιμαστικό τρέξιμο
- δοκιμές
- Η Πηγη
- ώρα
- κορυφή
- Εμπιστευθείτε
- us
- Δες
- Αποθήκη
- Αποθήκευση
- λειτουργεί
- χρόνια