Οι υλοποιημένες προβολές είναι ένα χαρακτηριστικό που διατίθεται με πολλές βάσεις δεδομένων για την αποθήκευση των αποτελεσμάτων ενός ερωτήματος που εκτελείται συχνά, έτσι ώστε να είναι δυνατή η επανειλημμένη πρόσβαση στην ίδια προβολή χωρίς να υποχρεώνεται η βάση δεδομένων να εκτελεί εκ νέου το ερώτημα κάθε φορά. Αυτό επιτρέπει ταχύτερη πρόσβαση στα δεδομένα, καθώς τα αποτελέσματα του ερωτήματος δεν χρειάζεται να υπολογίζονται κάθε φορά που ζητείται η προβολή
Καθώς τα υποκείμενα δεδομένα αλλάζουν, οι υλοποιημένες προβολές πρέπει να ανανεωθούν για να διατηρούνται ενημερωμένα τα δεδομένα στην προβολή. Αλλά αυτό μπορεί να είναι μια διαδικασία έντασης πόρων. Πολλές βάσεις δεδομένων δυσκολεύονται να διατηρήσουν ενημερωμένες τις υλοποιημένες προβολές με δεδομένα που αλλάζουν συχνά ή για προβολές από πολύπλοκα ερωτήματα με πολλαπλές ενώσεις, συναθροίσεις και υποερωτήματα.
Για παράδειγμα, εξετάστε μια ροή δεδομένων χιλιάδων λιανικών συναλλαγών κάθε δευτερόλεπτο. Μια παραδοσιακή υλοποιημένη προβολή που είναι χτισμένη πάνω σε αυτήν τη ροή συναλλαγών μπορεί να ενημερώνεται μόνο μία φορά κάθε μέρα ή ίσως ακόμη και τόσο σπάνια όσο μία φορά την εβδομάδα – εάν το ερώτημα είναι πραγματικά πολύπλοκο. Ως αποτέλεσμα, καταλήγετε σε πίνακες εργαλείων και αναλυτικά εργαλεία που δεν συμβαδίζουν με τη ροή δεδομένων σε πραγματικό χρόνο.
Ο ισχυρός διανυσματικός κινητήρας της Kinetica καταργεί αυτόν τον περιορισμό, επιτρέποντάς σας να δημιουργήσετε και να διατηρήσετε σύνθετες υλοποιημένες προβολές για δεδομένα που αλλάζουν συνεχώς. Αυτό επιτρέπει σε μεγάλους όγκους ταυτόχρονων χρηστών που έχουν πρόσβαση σε μια υλοποιημένη προβολή και θα βλέπουν πάντα την πιο ενημερωμένη έκδοση των αποτελεσμάτων.
Τι είναι μια υλοποιημένη άποψη;
Ας καταλάβουμε πρώτα τι είναι άποψη. Οι προβολές SQL είναι εικονικοί πίνακες που είναι αποτέλεσμα αποθηκευμένων ερωτημάτων. Είναι σαν ένας κανονικός πίνακας στη βάση δεδομένων και περιέχουν σειρές και στήλες δεδομένων, αλλά τα δεδομένα δεν αποθηκεύονται φυσικά στη βάση δεδομένων. Αντίθετα, όταν καλείται μια προβολή, εκτελεί το ερώτημα και επιστρέφει το σύνολο αποτελεσμάτων.
Μια υλοποιημένη προβολή είναι παρόμοια με μια κανονική προβολή, καθώς βασίζεται σε έναν ή περισσότερους υποκείμενους πίνακες, αλλά τα δεδομένα στην υλοποιημένη προβολή αποθηκεύονται στην πραγματικότητα στο δίσκο όπως ένας κανονικός πίνακας. Αυτά τα δεδομένα μπορούν στη συνέχεια να υποβληθούν απευθείας στο ερώτημα, χωρίς να χρειάζεται να εκτελεστεί ξανά το υποκείμενο ερώτημα.
Οι παραδοσιακές βάσεις δεδομένων δεν μπορούν να ενημερώνουν συνεχώς υλοποιημένες προβολές
Οι υλοποιημένες προβολές χρησιμοποιούνται συνήθως για τη βελτίωση της απόδοσης ερωτημάτων που περιλαμβάνουν τη συγκέντρωση μεγάλων ποσοτήτων δεδομένων ή τη σύνδεση πολλών πινάκων. Δεδομένου ότι τα αποτελέσματα του ερωτήματος είναι ήδη αποθηκευμένα (και ευρετηριασμένα) σε έναν πίνακα, είναι δυνατή η άμεση πρόσβαση σε αυτόν, αντί να υπολογίζονται αμέσως κάθε φορά που εκτελείται το ερώτημα.
Αλλά υπάρχει μια άλλη πλευρά σε αυτό το κέρδος απόδοσης, που είναι το γενικό κόστος διατήρησης και ανανέωσης μιας υλοποιημένης άποψης. Αυτή η επιβάρυνση εξαρτάται από την πολυπλοκότητα του ερωτήματος που χρησιμοποιείται για τη δημιουργία της προβολής και τη συχνότητα με την οποία πρέπει να ανανεωθεί. Μπορεί να είναι αρκετά δαπανηρό η διατήρηση μιας υλοποιημένης προβολής εάν τα υποκείμενα δεδομένα αλλάζουν ή ενημερώνονται συνεχώς.
Το κύριο κόστος που σχετίζεται με τη διατήρηση υλοποιημένων προβολών είναι ο χρόνος εκτέλεσης του ερωτήματος. Εάν το ερώτημα που χρησιμοποιείται για τον ορισμό της προβολής είναι πολύπλοκο ή απαιτεί ενώσεις μεταξύ πινάκων, μπορεί να χρειαστεί πολύς χρόνος για να εκτελεστεί κάθε φορά που χρειάζεται ανανέωση της προβολής. Επιπλέον, εάν τα υποκείμενα δεδομένα αλλάζουν συχνά ή υπάρχουν συχνές ενημερώσεις, θα χρειαστεί περισσότερος χρόνος για να ανανεωθεί η προβολή, καθώς πρέπει να λαμβάνει υπόψη όλες αυτές τις αλλαγές κάθε φορά που ενημερώνεται.
Πώς διατηρεί η Kinetica συνεχώς ενημερωμένες υλοποιημένες απόψεις;
Η Kinetica αξιοποιεί τις ενσωματωμένες διανυσματικές και κατανεμημένες δυνατότητες επεξεργασίας ερωτημάτων της για να ξεπεράσει τα υπολογιστικά εμπόδια και να παρέχει συνεχώς ενημερωμένες υλοποιημένες προβολές.
Η διανυσματοποίηση, για να το θέσω απλά, είναι η δυνατότητα εκτέλεσης κάθε εντολής – όπως, ας πούμε, η προσθήκη δύο αριθμών – σε πολλά κομμάτια δεδομένων ταυτόχρονα. Αυτός είναι χιλιάδες φορές ταχύτερος από τον παραδοσιακό διαδοχικό τρόπο εκτέλεσης, όπου κάθε τμήμα δεδομένων λειτουργεί με τη σειρά, το ένα μετά το άλλο.

Διαδοχική λειτουργία

Vectorized (Πολλαπλά δεδομένα μιας εντολής)
Αυτά τα κέρδη απόδοσης τεκμηριώνονται από δείκτες αναφοράς που δείχνουν ότι η Kinetica είναι 8 Χ πιο γρήγορα από το Databricks 9.1 LTS (Photon), 50 Χ πιο γρήγορα από το Clickhouse και 240 X ταχύτερα από το PostGIS.
Η Kinetica διαθέτει μια τεράστια βιβλιοθήκη με λειτουργίες εντός βάσης δεδομένων που είναι πλήρως διανυσματικά και έχει εγγενείς συνδέσεις για πηγές δεδομένων ροής όπως π.χ ο Κάφκα. Αυτό του επιτρέπει να επεξεργάζεται γρήγορα δεδομένα ροής υψηλής συχνότητας και να εκτελεί πραγματικά πολύπλοκα διανυσματικά ερωτήματα που εκτελούνται πολύ πιο γρήγορα από άλλες βάσεις δεδομένων. Ως αποτέλεσμα, το Kinetica μπορεί να χρησιμοποιηθεί για τη ρύθμιση πάντα σε αναλυτικούς αγωγούς που διατηρούν τις υλοποιημένες προβολές συνεχώς ενημερωμένες ώστε να αντικατοπτρίζουν πάντα την πιο πρόσφατη έκδοση των δεδομένων.
Για παράδειγμα, το παρακάτω ερώτημα, από ένα από τα παραδείγματά μας βιβλία εργασίας, δημιουργεί μια υλοποιημένη προβολή που αποθηκεύει συνοπτικά στατιστικά στοιχεία για το πλοίο κομμάτια στην περιοχή του Κόλπου του Μεξικού. Ο υποκείμενος πίνακας για αυτό το ερώτημα – ship_tracks
– λαμβάνει μερικές χιλιάδες εγγραφές ανά δευτερόλεπτο από ένα θέμα του Κάφκα που περιέχει πληροφορίες για νέες τοποθεσίες πλοίων. Παρατηρήστε το REFRESH ON CHANGE
επιλογή, η Kinetica είναι σε θέση να επεξεργάζεται όλα αυτά τα δεδομένα και να εκτελεί πολύπλοκα γεωχωρικά ερωτήματα για να διατηρεί αυτή την προβολή ενημερωμένη σε πραγματικό χρόνο.
CREATE OR REPLACE MATERIALIZED VIEW track_summary
REFRESH ON CHANGE AS
SELECT TRACKID,
COUNT(*) AS n_obs,
ROUND(ST_TRACKLENGTH(Y, X,TIMESTAMP, 1) / 1000) AS track_length_km,
ROUND(ST_TRACKDURATION(HOUR,TIMESTAMP)) as duration,
ROUND((ST_TRACKLENGTH(x,y,TIMESTAMP,1) / 1000)/ST_TRACKDURATION(HOUR,TIMESTAMP)) as avg_speed,
MIN(X) AS min_longitude,
MAX(X) AS max_longitude,
MIN(Y) AS min_latitude,
MAX(Y) AS max_latitude
FROM ship_tracks
GROUP BY TRACKID
ORDER BY track_length_km DESC;
Αυτό απλά δεν είναι δυνατό με άλλες τεχνολογίες.
Μπορείτε να το δοκιμάσετε δωρεάν εκτελώντας το παράδειγμα παρακολούθησης οντοτήτων Ο πάγκος εργασίας της Kinetica. Εναλλακτικά, μπορείτε να αποκτήσετε πρόσβαση στο βιβλίο εργασίας και στον κώδικα από το δικό μας παραδείγματα αποθέματος στο GitHub.
Περιπτώσεις Χρήσης για Συνεχώς Ενημερωμένες Υλοποιημένες Προβολές
Η ικανότητα της Kinetica να διατηρεί σύνθετες υλοποιημένες προβολές πάνω από πηγές δεδομένων ροής, ανοίγει νέες δυνατότητες.
- Αναλύσεις και αναφορές σε πραγματικό χρόνο: Οι υλοποιημένες προβολές επιτρέπουν στους χρήστες να αναζητούν γρήγορα και να αναλύουν μεγάλα σύνολα δεδομένων σε πραγματικό χρόνο.
- Συστήματα συμβάντων: Η μεγάλη γκάμα λειτουργιών στη βάση δεδομένων της Kinetica μπορεί να συνδυαστεί με συνεχώς ενημερωμένες υλοποιημένες προβολές για τη δημιουργία συστημάτων πάντα σε συμβάντα που εντοπίζουν συμβάντα καθώς εκτυλίσσονται και ενεργοποιούν ειδοποιήσεις κατάντη.
- Πίνακες εργαλείων σε πραγματικό χρόνο για εξερεύνηση δεδομένων: Οι πίνακες εργαλείων και τα γραφήματα θα αντικατοπτρίζουν πάντα τα πιο πρόσφατα δεδομένα και υπολογισμούς. Αυτά είναι εξαιρετικά χρήσιμα για κλάδους όπως η χρηματοοικονομική, όπου οι αναλυτές πρέπει να παρατηρούν και να ανταποκρίνονται σε γεγονότα σε πραγματικό χρόνο.
- Μοντέλα μηχανικής μάθησης: Μία από τις προκλήσεις με τη λειτουργικότητα των μοντέλων μηχανικής μάθησης είναι η αδυναμία εξυπηρέτησης των πιο ενημερωμένων εκδόσεων σύνθετων παραγόμενων μεταβλητών σε αυτά τα μοντέλα για εξαγωγή συμπερασμάτων. Οι συνεχώς ενημερωμένες υλοποιημένες προβολές επιλύουν αυτό το πρόβλημα.
- Αντικατάσταση παραδοσιακού φόρτου εργασίας: Οι υπολογιστικοί περιορισμοί που επιβάλλονται από τις παραδοσιακές βάσεις δεδομένων δεν αποτελούν πρόβλημα με το Kinetica. Έτσι, οι λιγότερο αποδοτικές υλοποιημένες προβολές από αυτές τις βάσεις δεδομένων μπορούν να ενισχυθούν τόσο από άποψη απόδοσης όσο και από άποψη κλίμακας με τη μετάβαση στο Kinetica.
Είμαστε μια παγκόσμια ομάδα και μπορείτε να επικοινωνήσετε μαζί μας Χαλαρότητα με τις ερωτήσεις σας και θα επικοινωνήσουμε άμεσα μαζί σας.