Με την άνοδο του μεγάλα δεδομένα και την επιστήμη των δεδομένων, πολλοί μηχανικοί ρόλοι αμφισβητούνται και επεκτείνονται. Ένας ρόλος νέας εποχής είναι μηχανική δεδομένων .
Αρχικά, ο σκοπός της μηχανικής δεδομένων ήταν η φόρτωση εξωτερικών πηγών δεδομένων και ο σχεδιασμός βάσεων δεδομένων (σχεδιασμός και ανάπτυξη αγωγών για τη συλλογή, χειρισμό, αποθήκευση και ανάλυση δεδομένων).
Από τότε έχει αναπτυχθεί για να υποστηρίξει τον όγκο και την πολυπλοκότητα των μεγάλων δεδομένων. Έτσι, η μηχανική δεδομένων ενσωματώνει τώρα ένα ευρύ φάσμα δεξιοτήτων, από ανίχνευση ιστού, καθαρισμό δεδομένων, κατανεμημένους υπολογιστές και αποθήκευση και ανάκτηση δεδομένων.
Για τη μηχανική δεδομένων και τους μηχανικούς δεδομένων, η αποθήκευση και η ανάκτηση δεδομένων είναι το κρίσιμο στοιχείο του αγωγού μαζί με τον τρόπο με τον οποίο τα δεδομένα μπορούν να χρησιμοποιηθούν και να αναλυθούν.
Τα τελευταία χρόνια, έχουν προκύψει πολλές νέες και διαφορετικές τεχνολογίες αποθήκευσης δεδομένων. Ωστόσο, ποιο είναι το πιο κατάλληλο και έχει τα πιο κατάλληλα χαρακτηριστικά για τη μηχανική δεδομένων;
Οι περισσότεροι μηχανικοί είναι εξοικειωμένοι με βάσεις δεδομένων SQL, όπως PostgreSQL, MSSQL και MySQL, οι οποίες είναι δομημένοι σε σχεσιακούς πίνακες δεδομένων με αποθήκευση προσανατολισμένη στη σειρά.
Δεδομένου του πόσο πανταχού υπάρχουν αυτές οι βάσεις δεδομένων, δεν θα τις συζητήσουμε σήμερα. Αντ 'αυτού, διερευνούμε τρεις τύπους εναλλακτικών αποθηκευτικών δεδομένων που αυξάνονται σε δημοτικότητα και που έχουν εισαγάγει διαφορετικές προσεγγίσεις για την αντιμετώπιση δεδομένων.
Στο πλαίσιο της μηχανικής δεδομένων, αυτές οι τεχνολογίες είναι μηχανές αναζήτησης, καταστήματα εγγράφων και καταστήματα στήλης.
LIKE
, οι μηχανές αναζήτησης προσφέρουν υψηλότερες δυνατότητες ερωτήματος και καλύτερη απόδοση εκτός κουτιού.SUM
και AVG
, είναι πολύ ταχύτερα σε στήλες, καθώς τα δεδομένα της ίδιας στήλης αποθηκεύονται πιο κοντά στον σκληρό δίσκο.Σε αυτό το άρθρο, διερευνούμε και τις τρεις τεχνολογίες: Ελαστική αναζήτηση ως μηχανή αναζήτησης, MongoDB ως κατάστημα εγγράφων, και Amazon Redshift ως στήλη.
Κατανοώντας την εναλλακτική αποθήκευση δεδομένων, μπορούμε να επιλέξουμε την καταλληλότερη για κάθε περίπτωση.
Για να συγκρίνουμε αυτές τις τεχνολογίες, θα εξετάσουμε τον τρόπο με τον οποίο ευρετηριάζουν, συντρίβουν και συγκεντρώνουν δεδομένα.
Σε αντίθεση με τα δεδομένα στις βάσεις δεδομένων, τα δεδομένα στις αποθήκες δεδομένων είναι:
Κάθε στρατηγική ευρετηρίασης δεδομένων βελτιώνει ορισμένα ερωτήματα ενώ εμποδίζει άλλα.
Η γνώση των ερωτημάτων που χρησιμοποιούνται πιο συχνά μπορεί να επηρεάσει το χώρο αποθήκευσης δεδομένων που θα υιοθετήσει.
Το Sharding, μια μεθοδολογία με την οποία οι βάσεις δεδομένων διαιρούν τα δεδομένα της σε κομμάτια, καθορίζει πώς θα αναπτυχθεί η υποδομή καθώς απορροφούνται περισσότερα δεδομένα.
Η επιλογή ενός που να ταιριάζει με το σχέδιο ανάπτυξης και τον προϋπολογισμό μας είναι κρίσιμη και αυτό ισχύει για οποιοδήποτε εταιρεία επιστήμης δεδομένων , ανεξάρτητα από το μέγεθος.
Τέλος, αυτές οι τεχνολογίες συγκεντρώνουν κάθε ένα τα δεδομένα τους πολύ διαφορετικά.
Όταν ασχολούμαστε με gigabyte και terabyte δεδομένων, η λανθασμένη στρατηγική συγκέντρωσης μπορεί να περιορίσει τους τύπους και τις επιδόσεις των αναφορών που μπορούμε να δημιουργήσουμε.
Ως μηχανικοί δεδομένων, πρέπει να εξετάσουμε και τις τρεις πτυχές κατά την αξιολόγηση διαφορετικών αποθηκευτικών δεδομένων.
Η Elasticsearch κέρδισε γρήγορα τη δημοτικότητα μεταξύ των συνομηλίκων της για την επεκτασιμότητα και την ευκολία ενσωμάτωσής της. Χτισμένο πάνω από Apache Lucene , προσφέρει μια ισχυρή, λειτουργικότητα αναζήτησης και ευρετηρίασης κειμένου εκτός του πλαισίου. Εκτός από τις παραδοσιακές εργασίες μηχανών αναζήτησης, την αναζήτηση κειμένου και τα ερωτήματα ακριβούς αξίας, η Elasticsearch προσφέρει επίσης δυνατότητες συγκέντρωσης σε στρώσεις.
Σε αυτό το σημείο, το MongoDB μπορεί να θεωρηθεί ως βάση δεδομένων NoSQL. Η ευχρηστία και η ευελιξία του κέρδισαν γρήγορα τη δημοτικότητά του. Το MongoDB υποστηρίζει πλούσια και προσαρμόσιμα ερωτήματα για την αναζήτηση σε σύνθετα έγγραφα. Τα πεδία με συχνά ερωτήματα μπορούν να επιταχυνθούν μέσω ευρετηρίασης και όταν συγκεντρώνουν ένα μεγάλο κομμάτι δεδομένων, το MongoDB προσφέρει έναν αγωγό πολλαπλών σταδίων.
Παράλληλα με την ανάπτυξη της δημοτικότητας της NoSQL, οι στήλες βάσεων δεδομένων έχουν επίσης συγκεντρώσει την προσοχή, ειδικά για την ανάλυση δεδομένων. Αποθηκεύοντας δεδομένα σε στήλες αντί για τις συνηθισμένες σειρές, οι εργασίες συνάθροισης μπορούν να εκτελεστούν απευθείας από το δίσκο, αυξάνοντας σημαντικά την απόδοση. Πριν από λίγα χρόνια, η Amazon κυκλοφόρησε την φιλοξενούμενη υπηρεσία της για ένα κατάστημα στήλης που ονομάζεται Redshift.
Με πολλούς τρόπους, οι μηχανές αναζήτησης είναι καταστήματα δεδομένων που ειδικεύονται στην ευρετηρίαση κειμένων.
Ενώ άλλα καταστήματα δεδομένων δημιουργούν δείκτες με βάση τις ακριβείς τιμές του πεδίου, οι μηχανές αναζήτησης επιτρέπουν την ανάκτηση με μόνο ένα τμήμα του πεδίου (συνήθως κειμένου).
Από προεπιλογή, αυτή η ανάκτηση γίνεται αυτόματα για κάθε πεδίο μέσω αναλυτών.
Ενα αναλυτής είναι μια ενότητα που δημιουργεί πολλαπλά πλήκτρα ευρετηρίου αξιολογώντας τις τιμές πεδίου και χωρίζοντάς τις σε μικρότερες τιμές.
Για παράδειγμα, ένας βασικός αναλυτής μπορεί να εξετάσει «η γρήγορη καφέ αλεπού πήδηξε πάνω από τον τεμπέλης σκύλο» σε λέξεις, όπως «η», «γρήγορη», «καφέ», «αλεπού» και ούτω καθεξής.
Αυτή η μέθοδος επιτρέπει στους χρήστες να βρίσκουν τα δεδομένα αναζητώντας τμήματα εντός των αποτελεσμάτων, ταξινομημένα κατά πόσα τμήματα αντιστοιχούν στα ίδια δεδομένα εγγράφων.
Ένας πιο εξελιγμένος αναλυτής θα μπορούσε να χρησιμοποιήσει επεξεργασία αποστάσεων , n-γραμμάρια και φιλτράρετε κατά λέξεις-κλειδιά , για να δημιουργήσετε ένα περιεκτικό ευρετήριο ανάκτησης.
Ως γενικό κατάστημα δεδομένων, το MongoDB έχει μεγάλη ευελιξία για την ευρετηρίαση δεδομένων.
Σε αντίθεση με την Elasticsearch, ευρετηριάζει μόνο το _id
από προεπιλογή, και πρέπει να δημιουργήσουμε δείκτες για τα πεδία που συνήθως υποβάλλονται σε ερώτηση με μη αυτόματο τρόπο.
Σε σύγκριση με την Elasticsearch, ο αναλυτής κειμένου της MongoDB δεν είναι τόσο ισχυρός. Αλλά παρέχει μεγάλη ευελιξία με μεθόδους ευρετηρίασης, από την ένωση και το γεωχωρικό για βέλτιστη αναζήτηση έως το TTL και αραιά για τη μείωση της αποθήκευσης.
Σε αντίθεση με το Elasticsearch, το MongoDB ή ακόμα και τις παραδοσιακές βάσεις δεδομένων, συμπεριλαμβανομένης της PostgreSQL, το Amazon Redshift δεν υποστηρίζει μια μέθοδο ευρετηρίασης.
Αντ 'αυτού, μειώνει τον χρόνο ερωτήσεώς του διατηρώντας μια συνεπή ταξινόμηση στο δίσκο.
Ως χρήστες, μπορούμε να διαμορφώσουμε ένα ταξινομημένο σύνολο τιμών στηλών ως κλειδί ταξινόμησης πίνακα. Με τα δεδομένα ταξινομημένα στο δίσκο, το Redshift μπορεί να παραλείψει ένα ολόκληρο μπλοκ κατά την ανάκτηση εάν η τιμή του πέσει έξω από το εύρος ερωτήσεων, ενισχύοντας σημαντικά την απόδοση.
Το Elasticsearch χτίστηκε στην κορυφή του Λουκένιου για οριζόντια κλίμακα και έτοιμο για παραγωγή.
Η κλιμάκωση γίνεται με τη δημιουργία πολλαπλών παρουσιών Lucene (θραύσματα) και τη διανομή τους σε πολλούς κόμβους (διακομιστές) μέσα σε ένα σύμπλεγμα.
Από προεπιλογή, κάθε έγγραφο δρομολογείται στο αντίστοιχο θραύσμα του μέσω του _id
πεδίο.
Κατά την ανάκτηση, ο κύριος κόμβος στέλνει σε κάθε θραύσμα ένα αντίγραφο του ερωτήματος πριν τελικά συγκεντρώσει και ταξινομήσει τα για έξοδο.
Σε ένα σύμπλεγμα MongoDB, υπάρχουν τρεις τύποι διακομιστών: router, config και shard.
Με την κλιμάκωση του δρομολογητή, οι διακομιστές μπορούν να δεχτούν περισσότερα αιτήματα, αλλά η βαριά ανύψωση συμβαίνει στους διακομιστές θραυσμάτων.
Όπως με την Elasticsearch, τα έγγραφα MongoDB δρομολογούνται (από προεπιλογή) μέσω _id
στα αντίστοιχα θραύσματά τους. Κατά τη στιγμή του ερωτήματος, ο διακομιστής ρυθμίσεων ειδοποιεί το δρομολογητή, ο οποίος θραύει το ερώτημα και ο διακομιστής δρομολογητή διανέμει το ερώτημα και συγκεντρώνει τα αποτελέσματα.
Ένα σύμπλεγμα Amazon Redshift αποτελείται από έναν κόμβο ηγέτη και πολλούς κόμβους υπολογισμού.
Ο κόμβος ηγέτης χειρίζεται τη συλλογή και τη διανομή των ερωτημάτων καθώς και τη συγκέντρωση των ενδιάμεσων αποτελεσμάτων.
Σε αντίθεση με τους διακομιστές δρομολογητών της MongoDB, ο κόμβος του ηγέτη είναι συνεπής και δεν μπορεί να κλιμακωθεί οριζόντια.
Ενώ αυτό δημιουργεί ένα σημείο συμφόρησης, επιτρέπει επίσης την αποτελεσματική αποθήκευση αποθηκευμένων σχεδίων εκτέλεσης για δημοφιλή ερωτήματα.
Τα έγγραφα εντός του Elasticsearch μπορούν να αποθηκευτούν με ακριβείς τιμές, εύρος τιμών ή ακόμη και χρονικές και γεωγραφικές τιμές.
Αυτοί οι κάδοι μπορούν περαιτέρω να ομαδοποιηθούν σε λεπτότερη κοκκοποίηση μέσω ένθετης συσσωμάτωσης.
Οι μετρήσεις, συμπεριλαμβανομένων των μέσων και των τυπικών αποκλίσεων, μπορούν να υπολογιστούν για κάθε επίπεδο, το οποίο παρέχει τη δυνατότητα υπολογισμού μιας ιεραρχίας αναλύσεων σε ένα μόνο ερώτημα.
Ως χώρος αποθήκευσης βάσει εγγράφων, υποφέρει από τον περιορισμό των συγκρίσεων πεδίου εντός εγγράφων.
Για παράδειγμα, ενώ είναι καλό να φιλτράρετε εάν ένα πεδίο ακόλουθοι είναι μεγαλύτερο από 10, δεν μπορούμε να ελέγξουμε αν ακόλουθοι είναι μεγαλύτερο από ένα άλλο πεδίο ΕΠΟΜΕΝΟ .
Εναλλακτικά, μπορούμε να εισάγουμε σενάρια ως προσαρμοσμένες κατηγορίες. Αυτή η δυνατότητα είναι ιδανική για εφάπαξ ανάλυση, αλλά η απόδοση υποφέρει στην παραγωγή.
ο Αγωγός συγκέντρωσης είναι ισχυρό και γρήγορο.
Όπως υποδηλώνει το όνομά του, λειτουργεί με δεδομένα που επιστρέφονται κατά τρόπο σταδιακό.
Κάθε βήμα μπορεί να φιλτράρει, να συγκεντρώσει και να μετατρέψει τα έγγραφα, να εισαγάγει νέες μετρήσεις ή να χαλαρώσει ομάδες που είχαν συγκεντρωθεί προηγουμένως.
Επειδή αυτές οι λειτουργίες γίνονται με σταδιακό τρόπο, και διασφαλίζοντας ότι τα έγγραφα και τα πεδία μειώνονται σε φιλτράρισμα μόνο, το κόστος της μνήμης μπορεί να ελαχιστοποιηθεί. Σε σύγκριση με το Elasticsearch και ακόμη και το Redshift, το Aggregation Pipeline είναι ένας εξαιρετικά ευέλικτος τρόπος προβολής των δεδομένων.
Παρά την προσαρμοστικότητα του, το MongoDB υποφέρει από την ίδια έλλειψη σύγκρισης πεδίου εντός εγγράφων με το Elasticsearch.
Επιπλέον, ορισμένες λειτουργίες, συμπεριλαμβανομένων των $group
, απαιτούν τη μετάδοση των αποτελεσμάτων στον κύριο κόμβο.
Έτσι, δεν αξιοποιούν τον κατανεμημένο υπολογιστή.
Όσοι δεν είναι εξοικειωμένοι με τον υπολογισμό του σταδιακού αγωγού θα βρουν ορισμένες εργασίες άσκοπες. Για παράδειγμα, το άθροισμα του αριθμού των στοιχείων σε ένα πεδίο πίνακα θα απαιτούσε δύο βήματα: πρώτα, το $unwind
και μετά το $group
λειτουργία.
Τα οφέλη του Amazon Redshift δεν μπορούν να υποτιμηθούν.
Η απογοητευτική επιβράδυνση των συγκεντρώσεων στο MongoDB κατά την ανάλυση της κίνησης για κινητά επιλύεται γρήγορα από το Amazon Redshift.
Υποστηρίζοντας τη SQL, οι παραδοσιακοί μηχανικοί βάσεων δεδομένων θα έχουν έναν εύκολο χρόνο να μεταφέρουν τα ερωτήματά τους στο Redshift.
Εκτός από το χρόνο επιβίβασης, το SQL είναι μια αποδεδειγμένη, επεκτάσιμη και ισχυρή γλώσσα ερωτημάτων, υποστηρίζοντας τις συγκρίσεις πεδίων μεταξύ εγγράφων / γραμμών με ευκολία. Το Amazon Redshift βελτιώνει περαιτέρω την απόδοσή του συγκεντρώνοντας και προσωρινά αποθηκεύοντας δημοφιλή ερωτήματα που εκτελούνται στους κόμβους υπολογιστών.
συγκρότηση λογιστικού σχεδίου
Ως σχεσιακή βάση δεδομένων, το Amazon Redshift δεν έχει την ευελιξία σχήματος που έχουν οι MongoDB και Elasticsearch. Βελτιστοποιημένο για λειτουργίες ανάγνωσης, υποφέρει επιτυχίες απόδοσης κατά τη διάρκεια ενημερώσεων και διαγραφών.
Για να διατηρηθεί ο καλύτερος χρόνος ανάγνωσης, οι σειρές πρέπει να ταξινομηθούν, προσθέτοντας επιπλέον επιχειρησιακές προσπάθειες.
Προσαρμοσμένο σε άτομα με προβλήματα μεγέθους petabyte, δεν είναι φθηνό και πιθανότατα δεν αξίζει την επένδυση, εκτός εάν υπάρχουν προβλήματα κλιμάκωσης με άλλες βάσεις δεδομένων.
Σε αυτό το άρθρο, εξετάσαμε τρεις διαφορετικές τεχνολογίες - Elasticsearch, MongoDB και Amazon Redshift - στο πλαίσιο της μηχανικής δεδομένων. Ωστόσο, δεν υπάρχει σαφής νικητής καθώς καθεμία από αυτές τις τεχνολογίες είναι πρωτοπόρος στην κατηγορία τύπων αποθήκευσης.
Για τη μηχανική δεδομένων, ανάλογα με την περίπτωση χρήσης, ορισμένες επιλογές είναι καλύτερες από άλλες.