Εισαγωγή & Ανάκτηση δεδομένων σε HBase: παραδείγματα get (), put (), scan ()

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

Anonim

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

  • Εγγραφή δεδομένων στον πίνακα HBase: Shell
  • Διαβάστε δεδομένα από τον πίνακα HBase: Shell
  • Εγγραφή δεδομένων σε πίνακα HBase: JAVA API
  • Διαβάστε δεδομένα από τον πίνακα HBase: JAVA API

Εγγραφή δεδομένων στον πίνακα HBase: Shell

Η εντολή put χρησιμοποιείται για την αποθήκευση δεδομένων σε έναν πίνακα

Syntax: put <'tablename'>,<'rowname'>,<'columnvalue'>,<'value'>

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

  • Θα βάλει ένα κελί «τιμή» σε έναν καθορισμένο ή καθορισμένο πίνακα ή σειρά ή στήλη.
  • Προαιρετικά θα συντονίσει τη χρονική σήμανση.

Παράδειγμα:

  • Εδώ βάζουμε τιμές στον πίνακα "guru99" κάτω από τη σειρά r1 και τη στήλη c1
    hbase> put 'guru99', 'r1', 'c1', 'value', 10
  • Έχουμε τοποθετήσει τρεις τιμές, 10,15 και 30 στον πίνακα "guru99", όπως φαίνεται στο παρακάτω στιγμιότυπο οθόνης

  • Ας υποθέσουμε ότι εάν ο πίνακας "Guru99" έχει κάποια αναφορά πίνακα όπως ας πούμε g. Μπορούμε επίσης να εκτελέσουμε την εντολή στον πίνακα αναφοράς επίσης

    hbase> g.put 'guru99', 'r1', 'c1', 'value', 10
  • Η έξοδος θα είναι όπως φαίνεται στο παραπάνω στιγμιότυπο οθόνης μετά την τοποθέτηση τιμών στο "guru99".

Διαβάστε δεδομένα από τον πίνακα HBase: Shell

Σε αυτήν την ενότητα, θα ελέγξουμε τα ακόλουθα

  • Τιμές που εισάγονται στον πίνακα HBase "guru99"
  • Ονόματα στηλών με τιμές που υπάρχουν στο HBase Table guru99

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

  • Εάν εκτελέσουμε την εντολή "σάρωση" στο κέλυφος HBase, θα εμφανιστούν οι τιμές που έχουν εισαχθεί στο "guru99" ως εξής
  • Στο κέλυφος HBase, θα εμφανίζει τιμές που εισάγονται από τον κωδικό μας με ονόματα στηλών και σειρών
  • Εδώ μπορούμε να δούμε το όνομα της στήλης που εισάγεται είναι "εκπαίδευση" και "έργα"
  • Οι τιμές που εισάγονται είναι "BigData" και "HBase Tutorials" στις αναφερόμενες στήλες

Μπορείτε επίσης να χρησιμοποιήσετε την εντολή Λήψη για να διαβάσετε δεδομένα από έναν πίνακα

Syntax: get <'tablename'>, <'rowname'>, {< Additional parameters>}

Εδώ <Πρόσθετες παράμετροι> περιλαμβάνουν TIMERANGE, TIMESTAMP, VERSIONS και FILTERS.

Χρησιμοποιώντας αυτήν την εντολή, θα εμφανιστεί μια σειρά ή περιεχόμενα κελιού στον πίνακα. Εκτός από αυτό μπορείτε επίσης να προσθέσετε επιπλέον παραμέτρους σε αυτό όπως TIMESTAMP, TIMERANGE, VERSIONS, FILTERS κ.λπ. για να λάβετε μια συγκεκριμένη σειρά ή περιεχόμενο κελιού.

Παραδείγματα: -

hbase> get 'guru99', 'r1', {COLUMN => 'c1'}

Για τον πίνακα "γκουρού99" σειρά r1 και στήλη c1 θα εμφανιστούν οι τιμές χρησιμοποιώντας αυτήν την εντολή όπως φαίνεται στο παραπάνω στιγμιότυπο οθόνης

hbase> get 'guru99', 'r1'

Για τον πίνακα "γκουρού99" θα εμφανιστούν οι τιμές της σειράς r1 χρησιμοποιώντας αυτήν την εντολή

hbase> get 'guru99', 'r1', {TIMERANGE => [ts1, ts2]}

Για τον πίνακα "γκουρού99" οι τιμές της σειράς 1 στο χρονικό εύρος ts1 και ts2 θα εμφανίζονται χρησιμοποιώντας αυτήν την εντολή

hbase> get 'guru99', 'r1', {COLUMN => ['c1', 'c2', 'c3']}

Για τον πίνακα "γκουρού99" της σειράς r1 και της στήλης, οι τιμές c1, c2, c3 των οικογενειών θα εμφανίζονται χρησιμοποιώντας αυτήν την εντολή

Εγγραφή δεδομένων σε πίνακα HBase: JAVA API

Σε αυτό το βήμα, θα γράψουμε δεδομένα στον πίνακα HBase "guru99"

Πρώτον, πρέπει να γράψουμε κώδικα για εισαγωγή και ανάκτηση τιμών από το HBase χρησιμοποιώντας το πρόγραμμα - HBaseLoading.java.

Για τη δημιουργία και εισαγωγή τιμών σε έναν πίνακα σε επίπεδο στήλης, πρέπει να κωδικοποιήσετε όπως παρακάτω .

Από την παραπάνω οθόνη

  1. Όταν δημιουργούμε διαμόρφωση HBase, θα επισημαίνει ό, τι είναι οι διαμορφώσεις που ορίζουμε σε αρχεία base-site.xml και hbase-default.xml κατά τη διάρκεια εγκαταστάσεων HBase
  2. Δημιουργία πίνακα "guru99" χρησιμοποιώντας τη μέθοδο HTable
  3. Προσθήκη σειράς 1 στον πίνακα "guru99"
  4. Καθορισμός ονομάτων στήλης "εκπαίδευση" και "έργα" και εισαγωγή τιμών σε ονόματα στηλών στην αντίστοιχη σειρά1. Οι τιμές που εισάγονται εδώ είναι "BigData" και "HBaseTutorials".

Διαβάστε δεδομένα από τον πίνακα HBase: Java API

Όποιες κι αν είναι οι τιμές που τοποθετήσαμε στους πίνακες HBase στην παραπάνω ενότητα, εδώ θα πάρουμε και θα εμφανίσουμε αυτές τις τιμές.

Για την ανάκτηση αποτελεσμάτων που είναι αποθηκευμένα στο "guru99"

Το παραπάνω στιγμιότυπο οθόνης δείχνει ότι τα δεδομένα διαβάζονται από τον πίνακα HBase «guru99»

  1. Σε αυτό, πρόκειται να πάρουμε τις τιμές που είναι αποθηκευμένες σε οικογένειες στηλών, δηλαδή "εκπαίδευση" και "έργα"
  2. Χρησιμοποιώντας την εντολή "get" θα πάρουμε αποθηκευμένες τιμές στον πίνακα HBase
  3. Σάρωση αποτελεσμάτων χρησιμοποιώντας την εντολή "σάρωση". Οι τιμές που είναι αποθηκευμένες στη σειρά 1 θα εμφανίζονται στην κονσόλα.

Μόλις ολοκληρωθεί η σύνταξη κώδικα, πρέπει να εκτελέσετε την εφαρμογή java έτσι

  • Κάντε δεξί κλικ στο HBaseLoading.java -> Run As -> Java Application
  • Αφού εκτελέσετε το "HBaseLoading .java", οι τιμές θα εισαχθούν στο "guru99" σε κάθε στήλη στο HBase και στο ίδιο πρόγραμμα μπορεί να ανακτήσει επίσης τιμές.

Εδώ είναι ο πλήρης κωδικός

import java.io.IOException;import org.apache.hadoop.hbase.HBaseConfiguration;import org.apache.hadoop.hbase.client.Get;import org.apache.hadoop.hbase.client.HTable;import org.apache.hadoop.hbase.client.Put;import org.apache.hadoop.hbase.client.Result;import org.apache.hadoop.hbase.client.ResultScanner;import org.apache.hadoop.hbase.client.Scan;import org.apache.hadoop.hbase.util.Bytes;public class HBaseLoading{public static void main(String[] args) throws IOException{/* When you create a HBaseConfiguration, it reads in whatever you've set into your hbase-site.xml and in hbase-default.xml, as long as these can be found on the CLASSPATH*/org.apache.hadoop.conf.Configuration config = HBaseConfiguration.create();/*This instantiates an HTable object that connects you to the "test" table*/HTable table = new HTable(config, "guru99");/* To add to a row, use Put. A Put constructor takes the name of the row you want to insert into as a byte array.*/Put p = new Put(Bytes.toBytes("row1"));/*To set the value you'd like to update in the row 'row1', specify the column family, column qualifier, and value of the table cell you'd like to update. The column family must already exist in your table schema. The qualifier can be anything.*/p.add(Bytes.toBytes("education"), Bytes.toBytes("col1"),Bytes.toBytes("BigData"));p.add(Bytes.toBytes("projects"),Bytes.toBytes("col2"),Bytes.toBytes("HBaseTutorials"));// Once you've adorned your Put instance with all the updates you want to make, to commit it do the followingtable.put(p);// Now, to retrieve the data we just wrote.Get g = new Get(Bytes.toBytes("row1"));Result r = table.get(g);byte [] value = r.getValue(Bytes.toBytes("education"),Bytes.toBytes("col1"));byte [] value1 = r.getValue(Bytes.toBytes("projects"),Bytes.toBytes("col2"));String valueStr = Bytes.toString(value);String valueStr1 = Bytes.toString(value1);System.out.println("GET: " +"education: "+ valueStr+"projects: "+valueStr1);Scan s = new Scan();s.addColumn(Bytes.toBytes("education"), Bytes.toBytes("col1"));s.addColumn(Bytes.toBytes("projects"), Bytes.toBytes("col2"));ResultScanner scanner = table.getScanner(s);try{for (Result rr = scanner.next(); rr != null; rr = scanner.next()){System.out.println("Found row : " + rr);}} finally{// Make sure you close your scanners when you are done!scanner.close();}}}

Περίληψη:

Όπως συζητήσαμε σε αυτό το σεμινάριο, μπορείτε να χρησιμοποιήσετε την εντολή put για να εισαγάγετε δεδομένα σε έναν πίνακα. Μπορείτε να χρησιμοποιήσετε τη σάρωση, να λάβετε εντολή για να διαβάσετε δεδομένα από έναν πίνακα