Χωρίσματα & Κάδοι Κυψέλης με Παράδειγμα

Οι πίνακες, τα διαμερίσματα και οι κάδοι είναι τα μέρη της μοντελοποίησης δεδομένων Hive.

Τι είναι τα Partitions;

Το Hive Partitions είναι ένας τρόπος για να οργανώνετε πίνακες σε διαμερίσματα διαιρώντας τους πίνακες σε διαφορετικά μέρη με βάση τα κλειδιά διαμερισμάτων.

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

Για το Παράδειγμα: -

«Πελάτης που έχει ορισμένα δεδομένα ηλεκτρονικού εμπορίου που ανήκουν σε δραστηριότητες στην Ινδία στις οποίες κάθε πολιτεία (38 πολιτείες) αναφέρεται συνολικά. Εάν λάβουμε τη στήλη κατάστασης ως κλειδί διαμερίσματος και εκτελέσουμε κατατμήσεις σε αυτά τα δεδομένα της Ινδίας στο σύνολό τους, μπορούμε να πάρουμε τον αριθμό κατατμήσεων (38 κατατμήσεις) που ισούται με τον αριθμό των καταστάσεων (38) που υπάρχουν στην Ινδία. Έτσι ώστε τα δεδομένα κάθε κατάστασης να μπορούν να προβληθούν χωριστά σε πίνακες κατατμήσεων.

Δείγμα αποσπάσματος κώδικα για κατατμήσεις

  1. Δημιουργία πίνακα όλων των καταστάσεων
create table all states(state string, District string,Enrolments string)

row format delimited

fields terminated by ',';
  1. Φόρτωση δεδομένων στον δημιουργημένο πίνακα όλων των καταστάσεων
Load data local inpath '/home/hduser/Desktop/AllStates.csv' into table allstates;
  1. Δημιουργία πίνακα κατατμήσεων
create table state_part(District string,Enrolments string) PARTITIONED BY(state string);
  1. Για την κατάτμηση πρέπει να ορίσουμε αυτήν την ιδιότητα
    set hive.exec.dynamic.partition.mode=nonstrict
  2. Φόρτωση δεδομένων στον πίνακα διαμερισμάτων
INSERT OVERWRITE TABLE state_part PARTITION(state)
SELECT district,enrolments,state from  allstates;
  1. Πραγματική επεξεργασία και σχηματισμός πινάκων διαμερισμάτων με βάση την κατάσταση ως κλειδί κατάτμησης
  2. Θα υπάρχουν 38 έξοδοι διαμερισμάτων στον χώρο αποθήκευσης HDFS με το όνομα αρχείου ως όνομα κατάστασης. Θα το ελέγξουμε σε αυτό το βήμα

Τα ακόλουθα στιγμιότυπα οθόνης θα σας δείξουν την εκτέλεση του παραπάνω κώδικα

Χωρίσματα κυψέλης

Χωρίσματα κυψέλης

Χωρίσματα κυψέλης

Χωρίσματα κυψέλης

Από τον παραπάνω κώδικα κάνουμε τα εξής

  1. Δημιουργία πίνακα όλων των πολιτειών με ονόματα 3 στηλών όπως πολιτεία, περιφέρεια και εγγραφή
  2. Φόρτωση δεδομένων στον πίνακα όλων των καταστάσεων
  3. Δημιουργία πίνακα διαμερισμάτων με την κατάσταση ως κλειδί κατάτμησης
  4. Σε αυτό το βήμα Ρύθμιση της λειτουργίας κατάτμησης ως μη αυστηρής (Αυτή η λειτουργία θα ενεργοποιήσει τη λειτουργία δυναμικής κατάτμησης)
  5. Φόρτωση δεδομένων στο διαμέρισμα tablestate_part
  6. Πραγματική επεξεργασία και σχηματισμός πινάκων διαμερισμάτων με βάση την κατάσταση ως κλειδί κατάτμησης
  7. Υπάρχουν 38 έξοδοι διαμερισμάτων στον χώρο αποθήκευσης HDFS με το όνομα αρχείου ως όνομα κατάστασης. Θα το ελέγξουμε σε αυτό το βήμα. Σε αυτό το βήμα, βλέπουμε τις 38 εξόδους διαμερισμάτων στο HDFS

Τι είναι τα Buckets;

Τα Buckets in hive χρησιμοποιούνται για τον διαχωρισμό των δεδομένων πίνακα-κυψελών σε πολλαπλά αρχεία ή καταλόγους. χρησιμοποιείται για αποτελεσματική αναζήτηση.

  • Τα δεδομένα δηλαδή που υπάρχουν σε αυτά τα διαμερίσματα μπορούν να χωριστούν περαιτέρω σε Buckets
  • Η διαίρεση πραγματοποιείται με βάση τον κατακερματισμό συγκεκριμένων στηλών που επιλέξαμε στον πίνακα.
  • Οι κάδοι χρησιμοποιούν κάποια μορφή αλγόριθμου κατακερματισμού στο πίσω μέρος για να διαβάσουν κάθε εγγραφή και να την τοποθετήσουν σε κάδους
  • Στο Hive, πρέπει να ενεργοποιήσουμε τους κάδους χρησιμοποιώντας το set.hive.enforce.bucketing=true;

Βήμα 1) Δημιουργία κάδου όπως φαίνεται παρακάτω.

Κουβάδες κυψέλης

Από το παραπάνω στιγμιότυπο οθόνης

  • Δημιουργούμε sample_bucket με ονόματα στηλών όπως first_name, job_id, τμήμα, μισθός και χώρα
  • Δημιουργούμε 4 κουβάδες εδώ πέρα.
  • Μόλις τα δεδομένα φορτωθούν αυτόματα, τοποθετήστε τα δεδομένα σε 4 κουβάδες

Βήμα 2) Φόρτωση δεδομένων στον κάδο δειγμάτων πίνακα

Υποθέτοντας ότι ο "Πίνακας Εργαζομένων" έχει ήδη δημιουργηθεί στο σύστημα Hive. Σε αυτό το βήμα, θα δούμε τη φόρτωση των Δεδομένων από τον πίνακα υπαλλήλων στον κάδο δειγμάτων πίνακα.

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

Εδώ φορτώνουμε δεδομένα στον κάδο δειγμάτων από τον πίνακα υπαλλήλων.

Κουβάδες κυψέλης

Βήμα 3)Εμφάνιση 4 κουβάδων που δημιουργήθηκαν στο Βήμα 1

Κουβάδες κυψέλης

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

Ημερήσιο ενημερωτικό δελτίο Guru99

Ξεκινήστε τη μέρα σας με τις πιο πρόσφατες και πιο σημαντικές ειδήσεις για την Τεχνητή Νοημοσύνη, τώρα.