Hive ETL: Φόρτωση παραδειγμάτων δεδομένων JSON, XML, κειμένου
Hive ως εργαλείο ETL και αποθήκευσης δεδομένων πάνω από Hadoop Το οικοσύστημα παρέχει λειτουργίες όπως μοντελοποίηση δεδομένων, χειραγώγηση δεδομένων, επεξεργασία δεδομένων και αναζήτηση δεδομένων. Εξαγωγή δεδομένων στο Hive σημαίνει τη δημιουργία πινάκων στο Hive και τη φόρτωση δομημένων και ημιδομημένων δεδομένων καθώς και αναζήτηση δεδομένων με βάση τις απαιτήσεις.
Για μαζική επεξεργασία, θα γράψουμε προσαρμοσμένα καθορισμένα σενάρια χρησιμοποιώντας έναν προσαρμοσμένο χάρτη και θα μειώσουμε τα σενάρια χρησιμοποιώντας μια γλώσσα δέσμης ενεργειών. Παρέχει SQL όπως το περιβάλλον και η υποστήριξη για εύκολη αναζήτηση.
Εργασία με δομημένα δεδομένα χρησιμοποιώντας το Hive
Δομημένα δεδομένα σημαίνει ότι τα δεδομένα έχουν τη σωστή μορφή σειρών και στηλών. Αυτό είναι περισσότερο σαν RDBMS δεδομένα με κατάλληλες γραμμές και στήλες.
Εδώ θα φορτώσουμε δομημένα δεδομένα που υπάρχουν σε αρχεία κειμένου στο Hive
Βήμα 1) Σε αυτό το βήμα δημιουργούμε τον πίνακα "employees_guru" με ονόματα στηλών όπως ID, Όνομα, Ηλικία, Διεύθυνση, Μισθός και Τμήμα των υπαλλήλων με τύπους δεδομένων.
Από το παραπάνω στιγμιότυπο οθόνης, μπορούμε να παρατηρήσουμε τα εξής:
- Δημιουργία πίνακα "employees_guru"
- Φόρτωση δεδομένων από το Employees.txt στον πίνακα "employees_guru"
Βήμα 2) Σε αυτό το βήμα εμφανίζουμε τα περιεχόμενα που είναι αποθηκευμένα σε αυτόν τον πίνακα χρησιμοποιώντας την εντολή «Επιλογή». Μπορούμε να παρατηρήσουμε τα περιεχόμενα του πίνακα στο παρακάτω στιγμιότυπο οθόνης.
– Δείγμα αποσπάσματος κώδικα
Ερωτήματα που πρέπει να εκτελεστούν
1) Create table employees_guru(Id INT, Name STRING, Age INT, Address STRING, Salary FLOAT, Department STRING) > Row format delimited > Fields terminated by ','; 2) load data local inpath '/home/hduser/Employees.txt' into TABLE employees_guru; 3) select * from employees_guru;
Εργασία με ημιδομημένα δεδομένα χρησιμοποιώντας Hive (XML, JSON)
Το Hive εκτελεί λειτουργίες ETL στο οικοσύστημα Hadoop ενεργώντας ως Εργαλείο ETL. Μπορεί να είναι δύσκολο να πραγματοποιηθεί μείωση χαρτών σε κάποιο τύπο εφαρμογών, το Hive μπορεί να μειώσει την πολυπλοκότητα και παρέχει την καλύτερη λύση στις εφαρμογές πληροφορικής όσον αφορά τον τομέα της αποθήκευσης δεδομένων.
Ημιδομημένα δεδομένα όπως XML και JSON μπορούν να υποβληθούν σε επεξεργασία με λιγότερη πολυπλοκότητα χρησιμοποιώντας το Hive. Πρώτα θα δούμε πώς μπορούμε να χρησιμοποιήσουμε το Hive για XML.
XML TO HIVE TABLE
Σε αυτό, θα φορτώσουμε δεδομένα XML σε πίνακες Hive και θα ανακτήσουμε τις τιμές που είναι αποθηκευμένες μέσα στις ετικέτες XML.
Βήμα 1) Δημιουργία πίνακα "xmlsample_guru" με στήλη str με τύπο δεδομένων συμβολοσειράς.
Από το παραπάνω στιγμιότυπο οθόνης, μπορούμε να παρατηρήσουμε τα εξής
- Δημιουργία πίνακα "xmlsample_guru"
- Φόρτωση δεδομένων από το test.xml στον πίνακα "xmlsample_guru"
Βήμα 2) Χρησιμοποιώντας XPath () μέθοδος θα είμαστε σε θέση να ανακτήσουμε τα δεδομένα που είναι αποθηκευμένα σε ετικέτες XML.
Από το παραπάνω στιγμιότυπο οθόνης, μπορούμε να παρατηρήσουμε τα εξής
- Χρησιμοποιώντας τη μέθοδο XPATH( ) ανακτούμε τις τιμές που είναι αποθηκευμένες στα /emp/esal/ και /emp/ename/
- Παρούσες τιμές Μέσα σε ετικέτες XML. Σε αυτό το βήμα, εμφανίζουμε τις πραγματικές τιμές που είναι αποθηκευμένες στις ετικέτες XML στον πίνακα "xmlsample_guru"
Βήμα 3) Σε αυτό το βήμα, θα ανακτήσουμε και θα εμφανίσουμε το Raw XML του πίνακα "xmlsample_guru".
Από το παραπάνω στιγμιότυπο οθόνης, μπορούμε να παρατηρήσουμε τα εξής
- Τα πραγματικά δεδομένα XML που εμφανίζονται με ετικέτες
- Αν παρατηρήσουμε μία ετικέτα, είναι με "emp" ως γονική ετικέτα με "ename" και "esal" ως θυγατρικές ετικέτες.
Απόσπασμα κώδικα:
Ερωτήματα που πρέπει να εκτελεστούν
1) create table xmlsample_guru(str string); 2) load data local inpath '/home/hduser/test.xml' overwrite into table xmlsample_guru; 3) select xpath(str,'emp/ename/text()'), xpath(str,'emp/esal/text()') from xmlsample_guru;
JSON (JavaΣημείωση αντικειμένου σεναρίου)
Τα δεδομένα Twitter και ιστοτόπων αποθηκεύονται σε μορφή JSON. Κάθε φορά που προσπαθούμε να ανακτήσουμε δεδομένα από διαδικτυακούς διακομιστές, θα επιστρέψουμε αρχεία JSON. Χρησιμοποιώντας το Hive ως χώρο αποθήκευσης δεδομένων, μπορούμε να φορτώσουμε δεδομένα JSON σε πίνακες Hive δημιουργώντας σχήματα.
JSON ΣΤΟ HIVE TABLE
Σε αυτό, θα φορτώσουμε δεδομένα JSON σε πίνακες Hive και θα ανακτήσουμε τις τιμές που είναι αποθηκευμένες στο σχήμα JSON.
Βήμα 1) Σε αυτό το βήμα, θα δημιουργήσουμε το όνομα πίνακα JSON "json_guru". Μόλις δημιουργηθεί, φόρτωση και εμφάνιση των περιεχομένων του πραγματικού σχήματος.
Από το παραπάνω στιγμιότυπο οθόνης, μπορούμε να παρατηρήσουμε τα εξής
- Δημιουργία πίνακα "json_guru"
- Φόρτωση δεδομένων από το test.json στον πίνακα "json_guru"
- Εμφάνιση του πραγματικού σχήματος του αρχείου JSON που είναι αποθηκευμένο σε πίνακες json_guru
Βήμα 2) Χρησιμοποιώντας τη μέθοδο get_json_object() μπορούμε να ανακτήσουμε τις τιμές δεδομένων που είναι αποθηκευμένες στην ιεραρχία JSON
Από το παραπάνω στιγμιότυπο οθόνης μπορούμε να παρατηρήσουμε τα εξής
- Χρησιμοποιώντας get_json_object (str,'$.ecode) μπορεί να πάρει τιμές κωδικού από τον πίνακα json_guru. Παρομοίως, χρησιμοποιώντας get_json_object (str,'$.ename) ,get_json_object (str,'$.Sali) θα ανακτήσει τιμές ename sal από τον πίνακα json_guru
- Τιμές που είναι αποθηκευμένες μέσα στην Ιεραρχία JSON στο json_guru
Απόσπασμα κώδικα
Ερωτήματα που πρέπει να εκτελεστούν
1) create table json_guru(str string); 2) load data inpath 'home/hduser/test.json' into table json_guru; 3) select * from json1; 4) select get_json_object(str,'$.ecode') as ecode, get_json_object(str,'$.ename') as ename ,get_json_object(str,'$.sal') as salary from json_guru;
Complex JSON TO HIVE TABLE
Σε αυτό, θα φορτώσουμε σύνθετα δεδομένα JSON σε πίνακες Hive και θα ανακτήσουμε τις τιμές που είναι αποθηκευμένες στο σχήμα JSON
Βήμα 1) Δημιουργία complexjson_guru με πεδίο μονής στήλης
Από το παραπάνω στιγμιότυπο οθόνης, μπορούμε να παρατηρήσουμε τα εξής
- Δημιουργία στον πίνακα complexjson_guru με πεδίο μονής στήλης ως τύπο δεδομένων συμβολοσειράς
- Φόρτωση δεδομένων στο complexjson_guru από το σύνθετο αρχείο JSON emp.json
Βήμα 2) Χρησιμοποιώντας το get_json_object μπορούμε να ανακτήσουμε το πραγματικό περιεχόμενο που είναι αποθηκευμένο στην ιεραρχία αρχείων JSON.
Από το παρακάτω στιγμιότυπο οθόνης, μπορούμε να δούμε την έξοδο των δεδομένων που είναι αποθηκευμένα στο complexjson_guru.
Βήμα 3) Σε αυτό το βήμα, χρησιμοποιώντας την εντολή "Select" μπορούμε πραγματικά να δούμε πολύπλοκα δεδομένα JSON που είναι αποθηκευμένα στον πίνακα "complexjson_guru"
-Δείγμα αποσπάσματος κώδικα,
Ερωτήματα που πρέπει να εκτελεστούν
1) create table complexjson_guru(json string); 2) load data inpath 'home/hduser/emp.json' into table complexjson_guru; 3) select get_json_object(json,'$.ecode') as ecode ,get_json_object(json,'$.b') as code, get_json_object(json,'$.c') from complexjson_guru; 4) select * from complexjson_guru;
Έργα Hive σε πραγματικό χρόνο – Πότε και πού να χρησιμοποιηθούν
Πότε και πού να χρησιμοποιήσετε το Hive στο Hadoop Ecosystem:
Όταν
- Όταν εργάζεστε με ισχυρές και ισχυρές στατιστικές συναρτήσεις στο οικοσύστημα Hadoop
- Όταν εργάζεστε με δομημένη και ημιδομημένη επεξεργασία δεδομένων
- Ως εργαλείο αποθήκης δεδομένων με το Hadoop
- Μπορεί να χρησιμοποιηθεί η απορρόφηση δεδομένων σε πραγματικό χρόνο με το HBASE, Hive
Πού
- Για ευκολία χρήσης του ETL και του εργαλείου αποθήκευσης δεδομένων
- Για την παροχή περιβάλλοντος τύπου SQL και την υποβολή ερωτημάτων όπως η SQL χρησιμοποιώντας HIVEQL
- Για να χρησιμοποιήσετε και να αναπτύξετε προσαρμοσμένα καθορισμένα σενάρια χαρτών και μειωτήρα για τις συγκεκριμένες απαιτήσεις πελάτη