Προγραμματισμός

Greenplum 6 κριτική: Jack of all trades, master of some

Μια βάση δεδομένων MPP (μαζικά παράλληλη επεξεργασία) διανέμει δεδομένα και ερωτήματα σε κάθε κόμβο σε ένα σύμπλεγμα διακομιστών εμπορευμάτων. Η προσέγγιση της Greenplum στη δημιουργία αποθήκης δεδομένων MPP είναι μοναδική. Χτίζοντας σε μια καθιερωμένη βάση δεδομένων ανοιχτού κώδικα, PostgreSQL, είναι σε θέση να εστιάσουν τις μηχανικές προσπάθειες στην προστιθέμενη αξία όπου μετράει: παραλληλισμός και σχετικός σχεδιασμός ερωτημάτων, μια στήλη στήλης δεδομένων για αναλυτικά στοιχεία και δυνατότητες διαχείρισης.

Το Greenplum ανήκει και αναπτύσσεται από την Pivotal, με υποστήριξη από την κοινότητα ανοιχτού κώδικα, και διατίθεται δωρεάν υπό την άδεια Apache 2. Η τελευταία έκδοση, Greenplum 6.0, προχωρά πολύ προς την επανένταξη του Greenplum core με την PostgreSQL, ενσωματώνοντας σχεδόν έξι χρόνια βελτιώσεων από το έργο PostgreSQL. Αυτές οι προσπάθειες σημαίνουν ότι, προς τα εμπρός, η Greenplum θα αποκτήσει νέες δυνατότητες και βελτιώσεις για «δωρεάν», ενώ το Pivotal επικεντρώνεται στο να κάνει αυτές τις προσθήκες να λειτουργούν καλά σε ένα παράλληλο περιβάλλον.

Αρχιτεκτονική Greenplum

Μια βάση δεδομένων MPP χρησιμοποιεί αυτό που είναι γνωστό ως δεν μοιράστηκε τίποτα αρχιτεκτονική. Σε αυτήν την αρχιτεκτονική, μεμονωμένοι διακομιστές βάσης δεδομένων (βασισμένοι στην PostgreSQL), γνωστοί ως τμήματα, κάθε επεξεργάζεται ένα τμήμα των δεδομένων πριν επιστρέψει τα αποτελέσματα σε έναν κεντρικό κεντρικό υπολογιστή. Παρόμοιες αρχιτεκτονικές παρατηρούνται σε άλλα συστήματα επεξεργασίας δεδομένων, όπως το Spark ή το Solr. Αυτό είναι ένα από τα βασικά αρχιτεκτονικά χαρακτηριστικά που επιτρέπει στο Greenplum να ενσωματώνει άλλα παράλληλα συστήματα, όπως μηχανική εκμάθηση ή αναλυτικά κείμενα.

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

Κεντρικός

Ανάπτυξη του Greenplum

Το Greenplum μπορεί να αναπτυχθεί με διάφορους τρόπους: και στα τρία μεγάλα σύννεφα μέσω των αντίστοιχων αγορών τους, σε εμπορευματοκιβώτια ή σε γυμνά μέταλλα. Όπως συμβαίνει με οποιαδήποτε εφαρμογή συμπλέγματος, η καλύτερη απόδοση επιτυγχάνεται σε ειδικές μηχανές γυμνών μετάλλων. Ανέπτυξα ένα σύμπλεγμα δύο κόμβων στο Google Cloud Platform με όλα τα κουδούνια και τους σφυρίχτρες σε λίγα λεπτά. Και εγκατέστησα το Greenplum τοπικά σε ένα VM χρησιμοποιώντας τα προκατασκευασμένα δυαδικά αρχεία σε περίπου μία ώρα.

Η τοπική εγκατάσταση ήταν απαραίτητη επειδή το Greenplum 6 δεν είναι ακόμη διαθέσιμο στα σύννεφα. λήγει τον Νοέμβριο του 2019. Η τοπική εγκατάσταση μου έδωσε επίσης την ευκαιρία να αξιολογήσω την ποιότητα της τεκμηρίωσης του Greenplum. Όπως θα περίμενε κανείς από ένα παλιό κλειστό, ιδιόκτητο προϊόν, είναι εξαιρετικό.

Η ύπαρξη πολλαπλών επιλογών ανάπτυξης επιτρέπει στις εταιρείες να προσαρμόσουν τις αναπτύξεις τους ώστε να ανταποκρίνονται στις επιχειρησιακές απαιτήσεις. Για παράδειγμα, τα μοντέλα μπορούν να εκπαιδευτούν σε ένα γυμνό μεταλλικό σύμπλεγμα πολλαπλών κόμβων για γρήγορη ανάπτυξη μοντέλου και στη συνέχεια να αναπτυχθούν σε μία μόνο παρουσία Pivotal Postgres που εκτελεί ένα REST τελικό σημείο σε ένα κοντέινερ για να λειτουργήσει το μοντέλο.

Ενοποιημένα ερωτήματα Greenplum

Τα δεδομένα σήμερα είναι παντού — σε διαφορετικές τοποθεσίες, διαφορετικές μορφές και διαφορετικές “θερμοκρασίες”. Το Pivotal Extension Framework (PXF), που εισήχθη στο Greenplum 5, αναπτύχθηκε από τον παλιό σύνδεσμο HDFS σε μια μέθοδο γενικής χρήσης για πρόσβαση σε εξωτερικούς πίνακες δεδομένων στο Greenplum. Το PXF συνδέεται επίσης με διαφορετικές μορφές δεδομένων, όπως αρχεία κειμένου (π.χ. αρχεία καταγραφής ιστού), ξένες βάσεις δεδομένων, ORC, Parquet και HBase. Νέες πηγές δεδομένων μπορούν να προστεθούν στο PFX χρησιμοποιώντας ένα Java API.

Συνδυάζοντας το PXF με τις δυνατότητες εξωτερικής πρόσβασης με το PostgreSQL 9.4, η Greenplum μπορεί να εκτελέσει ενοποιημένα ερωτήματα σε τοποθεσίες δεδομένων, συμπεριλαμβανομένων των ροών Kafka, HDFS, Spark και καταστημάτων αντικειμένων Amazon S3. Η τελευταία ικανότητα, ερωτώντας τα καταστήματα αντικειμένων Amazon S3, περιλαμβάνει το εγγενές API S3 SELECT του Amazon, βελτιώνοντας την απόδοση φιλτράροντας στην άκρη.

Τα ενοποιημένα ερωτήματα μπορεί να είναι πιο χρήσιμα από ό, τι φαντάζεστε. Για παράδειγμα, ας υποθέσουμε ότι θέλουμε να εντοπίσουμε όλα τα άτομα που:

δουλέψτε στο "" και γνωρίστε ο ένας τον άλλον "άμεσα" και των οποίων τα ονόματα ακούγονται σαν "Doug" ή "Steve" και έχουν πραγματοποιήσει ένα τηλεφώνημα ο ένας στον άλλο εντός 24 ωρών από τη Σιγκαπούρη ή το Σαν Φρανσίσκο

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

Αναλυτικά στοιχεία και εκμάθηση μηχανών Greenplum

Η επέκταση MADlib του Greenplum, μια βιβλιοθήκη βασισμένη σε SQL για ανάλυση δεδομένων και μηχανική μάθηση, αναπτύχθηκε αρχικά από διάφορα πανεπιστήμια και την Greenplum. Το MADlib σχεδιάστηκε για να λειτουργεί με την κοινόχρηστη παράλληλη αρχιτεκτονική του Greenplum. Δεν μπορούν να γίνουν παράλληλοι όλοι οι αλγόριθμοι μηχανικής μάθησης, αλλά για εκείνους που μπορούν, το MADlib επιτυγχάνει λίγο πολύ γραμμική επεκτασιμότητα με το μέγεθος του συνόλου δεδομένων, αποφεύγοντας ταυτόχρονα τη μεταφορά δεδομένων. Το MADlib περιλαμβάνει λίγο περισσότερο από 50 από τους αλγόριθμους μηχανικής μάθησης που χρησιμοποιούνται πιο συχνά.

Ένα από τα πιο χρήσιμα χαρακτηριστικά του MADlib είναι η διασύνδεση SQL, επιτρέποντας στον επιστήμονα δεδομένων πολιτών να προσθέσει αξία χωρίς να χρειάζεται να ανέβει στην καμπύλη εκμάθησης της Python ή του R. Τα μοντέλα μπορούν να αναπτυχθούν μέσω ενός τελικού σημείου MADlib REST για τη λειτουργία των αναλυτικών πληροφοριών. Για μια επιχείρηση που έχει μεσαίο επίπεδο αναλυτικής ωριμότητας και που εφαρμόζει στρατηγικές διαχείρισης αποφάσεων πρωταθλητή / διεκδικητή, η χρήση SQL μπορεί να αυξήσει τον αριθμό των υπό εξέταση μοντέλων χωρίς να προωθηθούν πρόσθετοι πόροι από μια κεντρική ομάδα.

Για τον παραδοσιακό αναλυτή δεδομένων, ο σύνδεσμος PivotalR (διαθέσιμος στο CRAN) παρέχει μια κλασική διεπαφή γλώσσας R στο MADlib μεταφράζοντας τον κώδικα R στις αντίστοιχες δηλώσεις SQL του πελάτη και, στη συνέχεια, στέλνοντάς τους στο σύμπλεγμα Greenplum για εκτέλεση. Αυτό αποφεύγει τη μεταφορά δεδομένων και επιτρέπει τον χειρισμό μεγάλων πλαισίων δεδομένων που διαφορετικά θα ήταν αδύνατο στο R λόγω περιορισμών μνήμης.

Κεντρικός

Αποθήκη δεδομένων HTAP

Η υβριδική συναλλαγή / αναλυτική επεξεργασία (HTAP) είναι ένας όρος που επινοήθηκε από τον Gartner. Ο ορισμός τους:

Η υβριδική συναλλαγή / αναλυτική επεξεργασία (HTAP) είναι μια αναδυόμενη αρχιτεκτονική εφαρμογών που «σπάει το τείχος» μεταξύ επεξεργασίας συναλλαγών και αναλυτικών στοιχείων. Επιτρέπει πιο ενημερωμένη και «σε πραγματικό χρόνο» τη λήψη αποφάσεων.

Στην πράξη, αυτό σημαίνει ότι οι περιπτώσεις χρήσης του συστήματος είναι ένας συνδυασμός μεγάλων και σύντομων ερωτημάτων, καθώς και ενημερώσεις και διαγραφές. Προκειμένου να υποστηρίξει το HTAP και να αποτρέψει την πείνα πόρων, το Greenplum εφαρμόζει μια μορφή κοντέινερ SQL που ονομάζεται ομάδες πόρων που επιτρέπει την απομόνωση πόρων σε περιβάλλον HTAP με πολλούς μισθωτές. Χρησιμοποιώντας μια ομάδα πόρων μπορείτε να περιορίσετε τη CPU, τη μνήμη RAM (ανά ομάδα ή ερώτημα) και τη μέγιστη ταυτόχρονη χρήση. Οι ομάδες πόρων βελτιώνουν την απόδοση σε μικτούς φόρτους εργασίας και αποτρέπουν τον ανταγωνισμό ερωτημάτων για πόρους.

Μία από τις βασικές διαφορές μεταξύ PostgreSQL και Greenplum είναι ο υπεύθυνος σχεδιασμού ερωτημάτων. Παρόλο που η Greenplum κληρονόμησε τον προγραμματιστή ερωτημάτων PostgreSQL όταν ήταν διχασμένος, ο αποτελεσματικός σχεδιασμός ερωτημάτων σε ένα κατανεμημένο περιβάλλον διαφέρει σημαντικά από ότι σε ένα μόνο μηχάνημα. Για το λόγο αυτό, η Greenplum ξεκίνησε να κατασκευάζει το δικό της ερώτημα, βασίζοντας το στο Cascades Framework for Query Optimization. Αυτός ο αλγόριθμος αξιολογεί όλα τα πιθανά σχέδια ερωτημάτων και τους εκχωρεί κόστος, επιλέγοντας το σχέδιο χαμηλότερου κόστους (ταχύτερο) για εκτέλεση.

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

Η ημι-δομημένη επεξεργασία δεδομένων κληρονομείται από την PostgreSQL και περιλαμβάνει JSON και JSONB, XML, ζεύγη κλειδιών-τιμών (HSTORE) και απλό κείμενο. Το GIN (Generalized Inverted Index), που κληρονομείται επίσης από την PostgreSQL, μπορεί να χρησιμοποιηθεί για την ευρετηρίαση μιας στήλης κειμένου που χρησιμοποιείται συχνά. Για πιο σύνθετα ερωτήματα κειμένου, το GPText μπορεί να χρησιμοποιηθεί. Το GPText ενσωματώνει τμήματα Greenplum με θραύσματα Apache Solr για την παροχή ερωτημάτων αναζήτησης φυσικής γλώσσας. Επειδή τα θραύσματα Solr βρίσκονται στον ίδιο κόμβο, έχουν την ίδια παράλληλη αρχιτεκτονική.

Απόδοση Greenplum

Οι βάσεις δεδομένων HTAP απαιτούν μια πράξη εξισορρόπησης μεταξύ μεγάλων, μακροχρόνιων αναλυτικών ερωτημάτων, σύντομων ad-hoc ερωτημάτων και των συναλλαγών ACID στην πλευρά OLTP της εξίσωσης. Η καλή απόδοση σε αυτό το σενάριο μικτού φόρτου εργασίας είναι σημαντική για την υβριδική περίπτωση χρήσης για την οποία στοχεύει η Greenplum. Ο πυρήνας PostgreSQL 9.4 έδωσε στο Greenplum 6 μια σειρά από βελτιστοποιήσεις, κυρίως γύρω από την αποφυγή κλειδαριών, με αποτέλεσμα την αύξηση της απόδοσης κατά 60 φορές σε σχέση με το Greenplum 5 σε σημεία αναφοράς TPC-B.

Κεντρικός

Δεδομένου ότι η PostgreSQL έχει ανοίξει το δρόμο για περαιτέρω βελτιστοποιήσεις (και είναι τώρα στην έκδοση 12), μπορούμε να αναμένουμε περαιτέρω βελτιώσεις στο Greenplum καθώς ο πυρήνας αναβαθμίζεται ξανά στο Greenplum 7.

Κέντρο Διοίκησης Greenplum

Το Greenplum Command Center είναι μέρος της Pivotal προσφοράς και παρέχει μια διαδικτυακή διεπαφή για παρακολούθηση και διαχείριση ενός συμπλέγματος Greenplum (ή πολλαπλών συμπλεγμάτων). Αν και οι σκληροπυρηνικοί DBAs είναι απίθανο να εγκαταλείψουν τις διεπαφές γραμμής εντολών τους, το Command Center είναι ένα ευπρόσδεκτο εργαλείο διαχείρισης για αναπτύξεις σε επίπεδο τμήματος που ενδέχεται να μην έχουν πρόσβαση σε DBA πλήρους απασχόλησης. Το βρήκα εύκολο να πλοηγηθώ και καλά τεκμηριωμένο. Οι χρήστες, τα ερωτήματα, οι κόμβοι, τα τμήματα και οι ομάδες πόρων μπορούν εύκολα να διαχειριστούν μέσω της διεπαφής.

Greenplum στην επιχείρηση

Το Greenplum αποτελεί την ιδανική επιλογή για ένα τυπικό πρότυπο, καθώς μπορεί να χειριστεί μικτούς φόρτους εργασίας, συμπεριλαμβανομένων των προγνωστικών αναλυτικών στοιχείων, σε μια ενιαία πλατφόρμα. Εάν δεν επιλέγετε λογισμικό a-la-carte από ένα μενού ELA ή θέλετε να ξεφύγετε από το A.I. «Πιλοτικό καθαρτήριο», η επένδυση στην προσέγγιση HTAP της Greenplum μπορεί να προσφέρει έναν τρόπο αύξησης των καινοτόμων χρήσεων της μηχανικής μάθησης και των αναλυτικών στοιχείων σε χαμηλότερο σημείο από τις ανταγωνιστικές λύσεις.

Το Greenplum είναι επίσης ένα απαράδεκτο για αντικαταστάσεις Netezza ή Teradata σε επίπεδο επιχειρήσεων. Και ενώ η Greenplum δεν είναι αρκετή για την απομάκρυνση του OLTP από την Oracle Database ή τον Microsoft SQL Server σε ολόκληρη την επιχείρηση, θα λειτουργήσει καλά για συστήματα μεσαίου μεγέθους συναλλαγών.

Το Greenplum είναι ένα καλό παράδειγμα του κανόνα 80/20. Παρόλο που δεν εκτελεί καμία εργασία, αλλά και ένα ενσωματωμένο εργαλείο, τα περισσότερα από αυτά είναι αρκετά καλά για να καλύψουν το 80% των περιπτώσεων χρήσης και αυτό χωρίς την οργανική και λειτουργική επιβάρυνση που εμπλέκονται στη συγκόλληση πολλαπλών συστημάτων και την ενσωμάτωσή τους σε έναν αγωγό ανάλυσης. Αυτό ζυγίζει πολύ υπέρ της κατά την εξέταση του συνολικού κόστους ιδιοκτησίας.

Κόστος: Δωρεάν ανοιχτού κώδικα υπό την άδεια Apache 2.0.

Πλατφόρμες: Διατίθεται ως πηγαίος κώδικας. ως πακέτα για διανομές CentOS, Red Hat, Debian και Ubuntu Linux. και στις αγορές Amazon Web Services, Microsoft Azure και Google Cloud Platform.