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

10 τρόποι για να ρωτήσετε Hadoop με SQL

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

Το MapR παράγει μια δική του διανομή Hadoop, και η νεότερη έκδοση (4.0.1) το συνδυάζει με τέσσερις ξεχωριστούς κινητήρες για την ερώτηση του Hadoop vial SQL. Τα τέσσερα είναι σημαντικά συστήματα ερωτημάτων SQL για το Hadoop, αλλά υπάρχει πολύ περισσότερη τεχνολογία SQL-for-Hadoop, και είναι κατασκευασμένα για να ικανοποιούν διαφορετικές ανάγκες και περιπτώσεις χρήσης, από το εσωτερικό έως το καθολικό.

Πρώτον, οι τέσσερις μηχανές SQL που συνοδεύουν το MapR:

Κυψέλη Apache: Αυτή είναι η αρχική λύση SQL-on-Hadoop, η οποία προσπαθεί να μιμηθεί τη συμπεριφορά, τη σύνταξη και τις διεπαφές του MySQL, συμπεριλαμβανομένου ενός προγράμματος-πελάτη γραμμής εντολών. Περιλαμβάνει επίσης προγράμματα οδήγησης Java API και JDBC για όσους έχουν υπάρχουσα επένδυση σε εφαρμογές Java που κάνουν ερώτηση τύπου MySQL. Παρά τη σχετική απλότητα και ευκολία χρήσης του, το Hive ήταν αργό και μόνο για ανάγνωση, το οποίο προκάλεσε ορισμένες πρωτοβουλίες για βελτίωση σε αυτό.

Κεντρί: Η Hortonworks, παραγωγοί της δικής της διανομής Hadoop, ξεκίνησε το έργο Stinger ως έναν τρόπο για να προωθήσει την ανάπτυξη του Apache Hive και να βελτιώσει την απόδοσή του. Η πιο πρόσφατη ενσάρκωση του έργου, το Stinger.next, έχει τους "χρόνους απόκρισης ερωτήματος δευτερολέπτου" ως έναν από τους σχεδιαστικούς του στόχους, μαζί με υποστήριξη για συμπεριφορές συναλλαγών (ένθετα, ενημερώσεις και διαγραφές). Αυτές οι αλλαγές πρόκειται να ξεκινήσουν τους επόμενους 18 μήνες, με άλλες δυνατότητες όπως SQL analytics να ακολουθήσουν.

Τρυπάνι Apache: Μια εφαρμογή ανοιχτού κώδικα του Google Dremel (γνωστός και ως BigQuery), ο Drill σχεδιάστηκε για να εκτελεί ερωτήματα χαμηλού λανθάνοντος χρόνου σε πολλούς τύπους καταστημάτων δεδομένων ταυτόχρονα με διαφορετικές διεπαφές ερωτημάτων (όπως Hadoop και NoSQL) και να είναι εξαιρετικά επεκτάσιμη. Το Drill προοριζόταν επίσης να εκτελεί ερωτήματα σε ένα ευρύ φάσμα χρόνων εκτέλεσης, με διάρκεια λίγων χιλιοστών του δευτερολέπτου να τρέχει για λεπτά στο τέλος. Η MapR ισχυρίζεται ότι ο Drill είναι μελλοντοστραφής, όχι μόνο συμβατός προς τα πίσω, ένας από τους λόγους για τους οποίους επιλέγεται να βάλει τις δικές του αναπτυξιακές προσπάθειες πίσω από αυτό το έργο.

Spark SQL: Το έργο Spark του Apache προορίζεται για παράλληλη επεξεργασία δεδομένων Hadoop σε πραγματικό χρόνο. Το Spark SQL δημιουργείται πάνω από αυτό για να επιτρέπει την εγγραφή ερωτημάτων SQL σε σχέση με δεδομένα. Ένας καλύτερος τρόπος να το σκεφτείτε μπορεί να είναι το Apache Hive για το Apache Spark, καθώς χρησιμοποιεί ξανά βασικά κομμάτια της τεχνολογίας Hive. Υπό αυτήν την έννοια, είναι ένα συμπλήρωμα για όσους εργάζονται ήδη με το Spark. (Ένα παλαιότερο έργο, Shark, έχει υπαχθεί σε αυτό.)

Πέρα από αυτά τα τέσσερα, έξι άλλοι ξεχωρίζουν:

Apache Phoenix: Οι προγραμματιστές του το αποκαλούν "SQL skin για HBase" - ένας τρόπος για να ρωτήσετε το HBase με εντολές που μοιάζουν με SQL μέσω ενός ενσωματωμένου προγράμματος οδήγησης JDBC που έχει δημιουργηθεί για λειτουργίες υψηλής απόδοσης και ανάγνωσης / εγγραφής. Θεωρήστε το ότι είναι σχεδόν μη εγκεφαλικό για όσους κάνουν χρήση του HBase, χάρη στο ότι είναι ανοιχτού κώδικα, αναπτύσσεται επιθετικά και εξοπλισμένο με χρήσιμα χαρακτηριστικά, όπως η μαζική φόρτωση δεδομένων.

Cloudera Impala: Με ορισμένους τρόπους, το Impala είναι μια άλλη εφαρμογή του Dremel / Apache Drill, που έχει σχεδιαστεί για να επεκτείνεται στο Hive, έτσι ώστε οι έξοδοι χρήστες Hive να μπορούν να αξιοποιήσουν πλήρως το. Τα δεδομένα που είναι αποθηκευμένα σε HDFS ή HBase μπορούν να υποβληθούν σε ερώτηση και η σύνταξη SQL είναι, αναμενόμενα, η ίδια με την Apache Hive. Αλλά η βασική διαφορά του Impala από το Drill είναι ότι δεν προορίζεται να είναι πηγή-αγνωστικός. ερωτά αποκλειστικά το Hadoop.

HAWQ για Pivotal HD: Το Pivotal παρέχει τη δική του διανομή Hadoop (Pivotal HD) και το HAWQ είναι ένα ιδιόκτητο στοιχείο για την εκτέλεση ερωτημάτων SQL σε HDFS. Κατά συνέπεια, είναι ένα προϊόν Pivotal μόνο, αν και το Pivotal κολλάει για την παράλληλη επεξεργασία SQL και την υψηλή συμμόρφωση με τα πρότυπα SQL.

Γρήγορα: Χτισμένο από τους μηχανικούς του Facebook και χρησιμοποιείται εσωτερικά σε αυτήν την εταιρεία, αυτή η μηχανή αναζήτησης ανοιχτού κώδικα θυμίζει το Apache Drill στο ότι είναι πηγή-αγνωστικική. Μπορεί να υποβάλει ερώτημα τόσο στην Hive όσο και στην Cassandra χρησιμοποιώντας εντολές ANSI SQL και οι προγραμματιστές μπορούν να επεκτείνουν το σύστημα γράφοντας συνδέσμους για αυτό χρησιμοποιώντας τη διεπαφή του παρόχου υπηρεσιών. Υποστηρίζονται ορισμένες λειτουργίες εισαγωγής δεδομένων, αλλά εξακολουθούν να είναι πολύ βασικές: Δεν μπορείτε να εκτελέσετε ενημερώσεις, μόνο ένθετα.

Oracle Big Data SQL: Ήταν μόνο θέμα χρόνου πριν η Oracle κυκλοφόρησε τη δική της διεπαφή SQL-query για το Hadoop. Όπως το Drill, μπορεί να υποβάλει ερωτήματα τόσο στα Hadoop όσο και σε άλλα καταστήματα NoSQL. Αλλά σε αντίθεση με το Drill, είναι το προϊόν της Oracle και ενσωματώνεται μόνο με τη βάση δεδομένων Oracle 12c και άνω, γεγονός που περιορίζει σοβαρά την αγορά για αυτό.

IBM BigSQL: Ήταν μόνο θέμα χρόνου πριν η IBM έκανε το ίδιο, αν και ανακοίνωσε την πρώτη τεχνολογική προεπισκόπηση του BigSQL στις αρχές του 2013. Δυστυχώς, όπως και με την προσφορά της Oracle, συνδέεται με ένα συγκεκριμένο προϊόν της IBM στο πίσω μέρος - σε αυτήν την περίπτωση , Hadoop της IBM, InfoSphere BigInsights. Τούτου λεχθέντος, η διεπαφή μπορεί να είναι ένας τυπικός πελάτης JDBC / ODBC και τα ερωτήματα μπορούν να περιλαμβάνουν δεδομένα από παρουσίες IBM DB2, Teradata ή PureData Systems για Analytics.