Παράδειγμα ερωτήματος HBase: Εντολή put(), get(), scan() στο HBase

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

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

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

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

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

Παράδειγμα:

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

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

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

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

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

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

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

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

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

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

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

Εδώ περιλαμβάνουν TIMERANGE, TIMESTAMP, VERSIONS και FILTERS.

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

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

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

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

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

hbase> get 'guru99', 'r1'

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

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

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

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

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

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

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

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

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

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

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

  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: Java API

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

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

Μόλις ολοκληρωθεί η εγγραφή του κώδικα, πρέπει να τρέξετε Ιάβα εφαρμογή όπως αυτή

  • Κάντε δεξί κλικ στο HBaseLoading.java -> Εκτέλεση ως -> Java Εφαρμογή
  • Μετά την εκτέλεση του “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 following 							

table.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 για να εισαγάγετε δεδομένα σε έναν πίνακα. Μπορείτε να χρησιμοποιήσετε την εντολή scan, get για να διαβάσετε δεδομένα από έναν πίνακα