Hive ETL: Φόρτωση παραδειγμάτων δεδομένων JSON, XML, κειμένου

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

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

Εργασία με δομημένα δεδομένα χρησιμοποιώντας το Hive

Δομημένα δεδομένα σημαίνει ότι τα δεδομένα έχουν τη σωστή μορφή σειρών και στηλών. Αυτό είναι περισσότερο σαν RDBMS δεδομένα με κατάλληλες γραμμές και στήλες.

Εδώ θα φορτώσουμε δομημένα δεδομένα που υπάρχουν σε αρχεία κειμένου στο Hive

Βήμα 1) Σε αυτό το βήμα δημιουργούμε τον πίνακα "employees_guru" με ονόματα στηλών όπως ID, Όνομα, Ηλικία, Διεύθυνση, Μισθός και Τμήμα των υπαλλήλων με τύπους δεδομένων.

Εργασία με δομημένα δεδομένα χρησιμοποιώντας το Hive

Από το παραπάνω στιγμιότυπο οθόνης, μπορούμε να παρατηρήσουμε τα εξής:

  1. Δημιουργία πίνακα "employees_guru"
  2. Φόρτωση δεδομένων από το Employees.txt στον πίνακα "employees_guru"

Βήμα 2) Σε αυτό το βήμα εμφανίζουμε τα περιεχόμενα που είναι αποθηκευμένα σε αυτόν τον πίνακα χρησιμοποιώντας την εντολή «Επιλογή». Μπορούμε να παρατηρήσουμε τα περιεχόμενα του πίνακα στο παρακάτω στιγμιότυπο οθόνης.

Εργασία με δομημένα δεδομένα χρησιμοποιώντας το Hive

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

Ερωτήματα που πρέπει να εκτελεστούν

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 με τύπο δεδομένων συμβολοσειράς.

Εργασία με ημιδομημένα δεδομένα χρησιμοποιώντας Hive

Από το παραπάνω στιγμιότυπο οθόνης, μπορούμε να παρατηρήσουμε τα εξής

  1. Δημιουργία πίνακα "xmlsample_guru"
  2. Φόρτωση δεδομένων από το test.xml στον πίνακα "xmlsample_guru"

Βήμα 2) Χρησιμοποιώντας XPath () μέθοδος θα είμαστε σε θέση να ανακτήσουμε τα δεδομένα που είναι αποθηκευμένα σε ετικέτες XML.

Εργασία με ημιδομημένα δεδομένα χρησιμοποιώντας Hive

Από το παραπάνω στιγμιότυπο οθόνης, μπορούμε να παρατηρήσουμε τα εξής

  1. Χρησιμοποιώντας τη μέθοδο XPATH( ) ανακτούμε τις τιμές που είναι αποθηκευμένες στα /emp/esal/ και /emp/ename/
  2. Παρούσες τιμές Μέσα σε ετικέτες XML. Σε αυτό το βήμα, εμφανίζουμε τις πραγματικές τιμές που είναι αποθηκευμένες στις ετικέτες XML στον πίνακα "xmlsample_guru"

Βήμα 3) Σε αυτό το βήμα, θα ανακτήσουμε και θα εμφανίσουμε το Raw XML του πίνακα "xmlsample_guru".

Εργασία με ημιδομημένα δεδομένα χρησιμοποιώντας Hive

Από το παραπάνω στιγμιότυπο οθόνης, μπορούμε να παρατηρήσουμε τα εξής

  • Τα πραγματικά δεδομένα 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 To Hive Table

Από το παραπάνω στιγμιότυπο οθόνης, μπορούμε να παρατηρήσουμε τα εξής

  1. Δημιουργία πίνακα "json_guru"
  2. Φόρτωση δεδομένων από το test.json στον πίνακα "json_guru"
  3. Εμφάνιση του πραγματικού σχήματος του αρχείου JSON που είναι αποθηκευμένο σε πίνακες json_guru

Βήμα 2) Χρησιμοποιώντας τη μέθοδο get_json_object() μπορούμε να ανακτήσουμε τις τιμές δεδομένων που είναι αποθηκευμένες στην ιεραρχία JSON

Json To Hive Table

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

  1. Χρησιμοποιώντας get_json_object (str,'$.ecode) μπορεί να πάρει τιμές κωδικού από τον πίνακα json_guru. Παρομοίως, χρησιμοποιώντας get_json_object (str,'$.ename) ,get_json_object (str,'$.Sali) θα ανακτήσει τιμές ename sal από τον πίνακα json_guru
  2. Τιμές που είναι αποθηκευμένες μέσα στην Ιεραρχία 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 με πεδίο μονής στήλης

Complex Json To Hive Table

Από το παραπάνω στιγμιότυπο οθόνης, μπορούμε να παρατηρήσουμε τα εξής

  1. Δημιουργία στον πίνακα complexjson_guru με πεδίο μονής στήλης ως τύπο δεδομένων συμβολοσειράς
  2. Φόρτωση δεδομένων στο complexjson_guru από το σύνθετο αρχείο JSON emp.json

Βήμα 2) Χρησιμοποιώντας το get_json_object μπορούμε να ανακτήσουμε το πραγματικό περιεχόμενο που είναι αποθηκευμένο στην ιεραρχία αρχείων JSON.

Από το παρακάτω στιγμιότυπο οθόνης, μπορούμε να δούμε την έξοδο των δεδομένων που είναι αποθηκευμένα στο complexjson_guru.

Complex Json To Hive Table

Βήμα 3) Σε αυτό το βήμα, χρησιμοποιώντας την εντολή "Select" μπορούμε πραγματικά να δούμε πολύπλοκα δεδομένα JSON που είναι αποθηκευμένα στον πίνακα "complexjson_guru"

Complex Json To Hive Table

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

Ερωτήματα που πρέπει να εκτελεστούν

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
  • Για να χρησιμοποιήσετε και να αναπτύξετε προσαρμοσμένα καθορισμένα σενάρια χαρτών και μειωτήρα για τις συγκεκριμένες απαιτήσεις πελάτη