Βίντεο: ΕΛΛΗΝΟΒΟΥΛΓΑΡΙΚΟΣ ΣΥΝΔΕΣΜΟΣ ΠΟΛΙΤΙΣΜΟΥ 2024
Πιθανότατα γνωρίζετε ήδη ότι οι εμπειρογνώμονες σχεδίασης και σχεδίασης σχεσιακών βάσεων δεδομένων συνήθως ξοδεύουν πολύ χρόνο για το σχεδιασμό κανονικοποιημένων βάσεων δεδομένων ή . Η κανονικοποίηση της βάσης δεδομένων είναι μια τεχνική που προστατεύει από την απώλεια δεδομένων, την απόλυση και άλλες ανωμαλίες καθώς τα δεδομένα ενημερώνονται και ανακτώνται. Οι εμπειρογνώμονες ακολουθούν ορισμένους κανόνες για να φτάσουν σε μια κανονικοποιημένη βάση δεδομένων, αλλά ο κανόνας 1 είναι ότι πρέπει να καταλήξετε με μια ομάδα
των πινάκων. (Ένας μεγάλος πίνακας που αποθηκεύει όλα τα δεδομένα σας δεν είναι φυσιολογικό - η λέξη προορίζεται). Υπάρχουν εξαιρέσεις, ανάλογα με τη χρήση, αλλά το νόμο πολλών πινάκων παρακολουθείται γενικά, ιδιαίτερα για βάσεις δεδομένων που υποστηρίζουν συναλλαγές ή αναλυτική επεξεργασία για παράδειγμα). Τι έχει να κάνει όλα αυτά με τα μέλη της κυψέλης; Λοιπόν, θυμηθείτε ότι το υποκείμενο λειτουργικό σύστημα για την κυψέλη είναι (έκπληξη!) Apache Hadoop: MapReduce είναι η μηχανή για την ένωση πινάκων και το σύστημα αρχείων Hadoop (HDFS) είναι το υποκείμενο αποθηκευτικό χώρο. Είναι όλα καλά νέα για τον χρήστη που θέλει να δημιουργήσει, να διαχειριστεί και να αναλύσει μεγάλους πίνακες με την Hive.
Η δυνατότητα απόκρυψης πληροφοριών που είναι κρυμμένες σε μαζικές δομές δεδομένων είναι συναρπαστική. Ωστόσο, οι συμμετοχές με την κυψέλη συνήθως δεν εκτελούν τόσο καλά όσο κάνουν στον κόσμο RDBMS / EDW, οπότε οι χρήστες για πρώτη φορά συχνά εκπλήσσονται από την "ευκολία" της απόκρισης του συστήματος.
Να θυμάστε ότι το MapReduce και το HDFS έχουν βελτιστοποιηθεί για απόδοση με μεγάλη ανάλυση δεδομένων και ότι, σε αυτόν τον κόσμο,λανθάνουσες περιόδους
- οι χρόνοι απόκρισης των χρηστών, με άλλα λόγια, είναι συνήθως υψηλοί. Η κυψέλη έχει σχεδιαστεί για αναλυτική επεξεργασία σε μορφή παρτίδας, όχι για γρήγορη επεξεργασία ηλεκτρονικών συναλλαγών. Οι χρήστες που θέλουν την καλύτερη δυνατή απόδοση με την SQL στο Apache Hadoop έχουν διαθέσιμες λύσεις.
Η πρόσβαση στο δίσκο και στο δίκτυο είναι πολύ πιο αργή από την πρόσβαση στη μνήμη, έτσι ώστε να ελαχιστοποιηθεί το HDFS διαβάζει και γράφει όσο το δυνατόν περισσότερο.
Με αυτές τις πληροφορίες στο μυαλό σας, μπορείτε να αντιμετωπίσετε τις σχέσεις με την κυψέλη. Ευτυχώς, η κοινότητα ανάπτυξης κυψελών ήταν ρεαλιστική και κατανοούσε ότι οι χρήστες θα ήθελαν και πρέπει να ενώσουν τραπέζια με το HiveQL. Αυτή η γνώση καθίσταται ιδιαίτερα σημαντική με την αύξηση EDW. Η χρήση περιπτώσεων όπως "ερωτημάτων" αρχείων συχνά απαιτούν συνδέσεις για ανάλυση δεδομένων.
Εδώ εμφανίζεται ένα παράδειγμα με το Hive χρησιμοποιώντας πίνακες δεδομένων πτήσης. Η λίστα σας δείχνει τον τρόπο δημιουργίας και εμφάνισης ενός πίνακα myflightinfo2007 και ενός πίνακα myflightinfo2008 από τους μεγαλύτερους πίνακες FlightInfo2007 και FlightInfo2008. Το σχέδιο καθ 'όλη τη διάρκεια ήταν να χρησιμοποιήσω το CTAS που δημιουργήθηκε myflightinfo2007 και myflightinfo2008 πίνακες για να δείξει πώς μπορείτε να εκτελέσετε joins στην κυψέλη.
Το σχήμα δείχνει το αποτέλεσμα μιας εσωτερικής σύνδεσης με τους πίνακες myflightinfo2007 και myflightinfo2008 χρησιμοποιώντας τον SQL client SQuirreL.
Το Hive υποστηρίζει
equi-joins,
ένα συγκεκριμένο είδος σύνδεσης που χρησιμοποιεί μόνο συγκρίσεις ισότητας στο predicate join. (ON m8, FlightNum = m7 Το FlightNum είναι ένα παράδειγμα equi-join.) Δεν υποστηρίζονται άλλοι συγκριτικοί παράγοντες, όπως Λιγότερο από (<). Αυτός ο περιορισμός είναι μόνο λόγω περιορισμών στον υποκείμενο κινητήρα MapReduce. Επίσης, δεν μπορείτε να χρησιμοποιήσετε το OR στη ρήτρα ON. Το σχήμα απεικονίζει το προηγούμενο παράδειγμα της εσωτερικής ένωσης και δύο άλλους τύπους άρθρωσης κυψέλης. Σημειώστε ότι μπορείτε να επιβεβαιώσετε τα αποτελέσματα μιας εσωτερικής ενότητας εξετάζοντας τα περιεχόμενα των πινάκων myflight2007 και myflight2008. Το παρακάτω σχήμα δείχνει πώς λειτουργεί μια εσωτερική σύνδεση χρησιμοποιώντας ένα διάγραμμα Venn, σε περίπτωση που δεν είστε εξοικειωμένοι με την τεχνική. Η βασική ιδέα εδώ είναι ότι μια εσωτερική ένωση επιστρέφει τα αρχεία που ταιριάζουν μεταξύ δύο πινάκων. Έτσι μια εσωτερική ένωση είναι ένα τέλειο εργαλείο ανάλυσης για να καθορίσετε ποιες πτήσεις είναι οι ίδιες από το JFK (Νέα Υόρκη) έως το ORD (Σικάγο) τον Ιούλιο του 2007 και τον Ιούλιο του 2008.
Η βελτιστοποίηση της ενοποίησης των κυψελών είναι ένα καυτό θέμα στην κοινότητα Hive. Για περισσότερες πληροφορίες σχετικά με τις τρέχουσες τεχνικές βελτιστοποίησης, ανατρέξτε στη σελίδα Join Optimization στο wiki.