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

Πίνακας περιεχομένων:

Anonim

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

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

Σε αυτό το σεμινάριο, θα μάθετε-

  • Εργασία με δομημένα δεδομένα χρησιμοποιώντας Hive
  • Εργασία με ημι δομημένα δεδομένα χρησιμοποιώντας Hive (XML, JSON)
  • Κυψέλη σε έργα σε πραγματικό χρόνο - Πότε και πού να χρησιμοποιήσετε

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

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

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

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

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

  1. Δημιουργία πίνακα "karyawan_guru"
  2. Φόρτωση δεδομένων από Employees.txt στον πίνακα "karyawan_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. Μπορεί να είναι δύσκολο να εκτελεστεί η μείωση χαρτών σε κάποιους τύπους εφαρμογών, η κυψέλη μπορεί να μειώσει την πολυπλοκότητα και παρέχει την καλύτερη λύση στις εφαρμογές πληροφορικής όσον αφορά τον τομέα αποθήκευσης δεδομένων.

Ημιδομημένα δεδομένα όπως XML και JSON μπορούν να υποστούν επεξεργασία με λιγότερη πολυπλοκότητα χρησιμοποιώντας το Hive. Πρώτα θα δούμε πώς μπορούμε να χρησιμοποιήσουμε το Hive για XML.

XML ΣΤΟ ΠΙΝΑΚΑ HIVE

Σε αυτό, πρόκειται να φορτώσουμε δεδομένα XML σε πίνακες Hive και θα πάρουμε τις τιμές που είναι αποθηκευμένες μέσα στις ετικέτες XML.

Βήμα 1) Δημιουργία πίνακα "xmlsample_guru" με στήλη str με τύπο δεδομένων συμβολοσειράς.

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

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

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

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

  1. Χρησιμοποιώντας τη μέθοδο XPATH () παίρνουμε τις τιμές που είναι αποθηκευμένες στο / emp / esal / και / emp / ename /
  2. Οι τιμές παρουσιάζουν ετικέτες Inside 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 (Σημείωση αντικειμένου JavaScript)

Τα δεδομένα Twitter και ιστότοπων αποθηκεύονται σε μορφή JSON. Όποτε προσπαθούμε να πάρουμε δεδομένα από διαδικτυακούς διακομιστές, θα επιστρέφει αρχεία JSON. Χρησιμοποιώντας το Hive ως χώρο αποθήκευσης δεδομένων μπορούμε να φορτώσουμε δεδομένα JSON σε πίνακες Hive δημιουργώντας σχήματα.

JSON ΣΤΟ ΠΙΝΑΚΑ HIVE

Σε αυτό, πρόκειται να φορτώσουμε δεδομένα JSON σε πίνακες Hive και θα πάρουμε τις τιμές που είναι αποθηκευμένες στο σχήμα JSON.

Βήμα 1) Σε αυτό το βήμα, θα δημιουργήσουμε το όνομα πίνακα JSON "json_guru". Μόλις δημιουργηθεί φόρτωση και εμφάνιση περιεχομένων του πραγματικού σχήματος.

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

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

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

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

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

Συγκρότημα JSON TO HIVE TABLE

Σε αυτό, πρόκειται να φορτώσουμε σύνθετα δεδομένα JSON σε πίνακες κυψελών και θα πάρουμε τις τιμές που είναι αποθηκευμένες στο σχήμα JSON

Βήμα 1) Δημιουργία complexjson_guru με ένα πεδίο στήλης

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

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

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

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

Βήμα 3) Σε αυτό το βήμα, χρησιμοποιώντας την εντολή "Επιλογή" μπορούμε πραγματικά να δούμε πολύπλοκα δεδομένα 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;

Κυψέλη σε έργα σε πραγματικό χρόνο - Πότε και πού να χρησιμοποιήσετε

Πότε και πού να χρησιμοποιήσετε την κυψέλη στο οικοσύστημα Hadoop:

Πότε

  • Όταν εργάζεστε με ισχυρές και ισχυρές στατιστικές λειτουργίες στο οικοσύστημα Hadoop
  • Όταν εργάζεστε με δομημένη και ημι δομημένη επεξεργασία δεδομένων
  • Ως εργαλείο αποθήκης δεδομένων με το Hadoop
  • Η απορρόφηση δεδομένων σε πραγματικό χρόνο με το HBASE, Hive μπορεί να χρησιμοποιηθεί

Που

  • Για ευκολία στη χρήση του ETL και του εργαλείου αποθήκευσης δεδομένων
  • Να παρέχουμε περιβάλλον τύπου SQL και να κάνετε ερωτήματα όπως το SQL χρησιμοποιώντας το HIVEQL
  • Για χρήση και ανάπτυξη προσαρμοσμένων καθορισμένων σεναρίων χαρτών και μειωτών για τις συγκεκριμένες απαιτήσεις του πελάτη