Οι πίνακες, τα χωρίσματα και οι κάδοι είναι τα μέρη της μοντελοποίησης δεδομένων Hive.
Τι είναι τα χωρίσματα;
Hive Partitions είναι ένας τρόπος οργάνωσης πινάκων σε διαμερίσματα διαιρώντας πίνακες σε διαφορετικά μέρη με βάση τα κλειδιά διαμερισμάτων.
Το διαμέρισμα είναι χρήσιμο όταν ο πίνακας έχει ένα ή περισσότερα πλήκτρα διαμέρισης. Τα κλειδιά διαμερισμάτων είναι βασικά στοιχεία για τον προσδιορισμό του τρόπου αποθήκευσης των δεδομένων στον πίνακα.
Για παράδειγμα : -
"Πελάτης που έχει ορισμένα δεδομένα ηλεκτρονικού εμπορίου που ανήκουν σε λειτουργίες της Ινδίας στις οποίες κάθε κατάσταση (38 πολιτείες) αναφέρεται ως σύνολο. Εάν λάβουμε τη στήλη κατάστασης ως κλειδί διαμέρισης και εκτελέσουμε διαμερίσματα σε αυτά τα δεδομένα της Ινδίας ως σύνολο, μπορούμε να για να λάβετε τον αριθμό κατατμήσεων (38 κατατμήσεις) που είναι ίσος με τον αριθμό των καταστάσεων (38) που υπάρχουν στην Ινδία.
Δείγμα αποσπάσματος κώδικα για διαμερίσματα
- Δημιουργία πίνακα όλων των καταστάσεων
create table all states(state string, District string,Enrolments string)row format delimitedfields terminated by ',';
- Φόρτωση δεδομένων σε πίνακα που δημιουργήθηκε σε όλες τις καταστάσεις
Load data local inpath '/home/hduser/Desktop/AllStates.csv' into table allstates;
- Δημιουργία πίνακα διαμερισμάτων
create table state_part(District string,Enrolments string) PARTITIONED BY(state string);
-
Για το διαμέρισμα πρέπει να ορίσουμε αυτήν την ιδιότητα
set hive.exec.dynamic.partition.mode=nonstrict
- Φόρτωση δεδομένων σε πίνακα διαμερισμάτων
INSERT OVERWRITE TABLE state_part PARTITION(state)SELECT district,enrolments,state from allstates;
- Πραγματική επεξεργασία και σχηματισμός πινάκων διαμερισμάτων με βάση την κατάσταση ως κλειδί διαμέρισης
- Θα υπάρχουν 38 έξοδοι διαμερισμάτων στον χώρο αποθήκευσης HDFS με το όνομα αρχείου ως όνομα κατάστασης. Θα το ελέγξουμε σε αυτό το βήμα
Τα παρακάτω στιγμιότυπα οθόνης θα σας δείξουν την εκτέλεση του προαναφερθέντος κώδικα
Από τον παραπάνω κώδικα, ακολουθούμε πράγματα
- Δημιουργία πίνακα όλων των καταστάσεων με 3 ονόματα στηλών, όπως πολιτεία, περιφέρεια και εγγραφή
- Φόρτωση δεδομένων σε πίνακα όλων των καταστάσεων
- Δημιουργία πίνακα διαμερισμάτων με κατάσταση ως κλειδί διαμέρισης
- Σε αυτό το βήμα Ρύθμιση της κατάτμησης ως μη αυστηρή (Αυτή η λειτουργία θα ενεργοποιήσει τη λειτουργία δυναμικής κατάτμησης)
- Φόρτωση δεδομένων στο διαμέρισμα tablestate_part
- Πραγματική επεξεργασία και σχηματισμός πινάκων διαμερισμάτων με βάση την κατάσταση ως κλειδί διαμέρισης
- Υπάρχουν 38 έξοδοι διαμερισμάτων στον χώρο αποθήκευσης HDFS με το όνομα αρχείου ως όνομα κατάστασης. Θα το ελέγξουμε σε αυτό το βήμα. Σε αυτό το βήμα, βλέπουμε τις 38 εξόδους διαμερισμάτων σε HDFS
Τι είναι οι κάδοι;
Οι κάδοι στην κυψέλη χρησιμοποιούνται για τον διαχωρισμό των δεδομένων πίνακα κυψελών σε πολλά αρχεία ή καταλόγους. χρησιμοποιείται για αποτελεσματική αναζήτηση.
- Τα δεδομένα δηλαδή που υπάρχουν σε αυτά τα διαμερίσματα μπορούν να χωριστούν περαιτέρω σε κουβάδες
- Η διαίρεση εκτελείται με βάση το Hash συγκεκριμένων στηλών που επιλέξαμε στον πίνακα.
- Οι κάδοι χρησιμοποιούν κάποια μορφή αλγόριθμου κατακερματισμού στο πίσω μέρος για να διαβάσουν κάθε εγγραφή και να την τοποθετήσουν σε κουβάδες
- Στην ομάδα, πρέπει να ενεργοποιήσουμε τους κάδους χρησιμοποιώντας το set.hive.enforce.bucketing = true;
Βήμα 1) Δημιουργία κάδου όπως φαίνεται παρακάτω.
Από το παραπάνω στιγμιότυπο οθόνης
- Δημιουργούμε sample_bucket με ονόματα στηλών, όπως όνομα_προγράμματος, αριθμός_εργασίας, τμήμα, μισθό και χώρα
- Δημιουργούμε 4 κουβάδες από εδώ.
- Μόλις τα δεδομένα φορτωθούν αυτόματα, τοποθετήστε τα δεδομένα σε 4 κουβάδες
Βήμα 2) Φόρτωση δεδομένων σε κάδο δείγματος πίνακα
Υποθέτοντας ότι ο "πίνακας υπαλλήλων" έχει ήδη δημιουργηθεί στο σύστημα Hive. Σε αυτό το βήμα, θα δούμε τη φόρτωση δεδομένων από τον πίνακα εργαζομένων σε κάδο δείγματος πίνακα.
Πριν ξεκινήσουμε να μεταφέρουμε δεδομένα υπαλλήλων σε κάδους, βεβαιωθείτε ότι αποτελούνται από ονόματα στηλών όπως όνομα_προγράμματος, αριθμός_εργασίας, τμήμα, μισθό και χώρα
Εδώ φορτώνουμε δεδομένα σε δείγμα κάδου από τον πίνακα υπαλλήλων.
Βήμα 3) Εμφάνιση 4 κάδων που δημιουργήθηκαν στο Βήμα 1
Από το παραπάνω στιγμιότυπο οθόνης, μπορούμε να δούμε ότι τα δεδομένα από τον πίνακα υπαλλήλων μεταφέρονται σε 4 κάδους που δημιουργήθηκαν στο βήμα 1.