Ievietot & Iegūt datus HBase: get (), put (), scan () Piemēri

Satura rādītājs:

Anonim

Šajā apmācībā jūs uzzināsiet:

  • Rakstīt datus HBase tabulā: Shell
  • Lasīt datus no HBase tabulas: Shell
  • Rakstīt datus HBase tabulā: JAVA API
  • Lasīt datus no HBase tabulas: JAVA API

Rakstīt datus HBase tabulā: Shell

Put komandu izmanto datu glabāšanai tabulā

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

Šo komandu izmanto šādām lietām

  • Šūna “vērtība” tiks ievietota definētā vai norādītā tabulā, rindā vai kolonnā.
  • Pēc izvēles tas koordinēs laika zīmogu.

Piemērs:

  • Šeit mēs ievietojam vērtības tabulā "guru99" zem r1 rindas un kolonnas c1
    hbase> put 'guru99', 'r1', 'c1', 'value', 10
  • Mēs esam ievietojuši trīs vērtības, 10,15 un 30 tabulā "guru99", kā parādīts zemāk esošajā ekrānuzņēmumā

  • Pieņemsim, ja tabulai "Guru99" ir kāda tabulas atsauce, piemēram, sakiet g. Mēs varam arī palaist komandu uz tabulas atsauces arī patīk

    hbase> g.put 'guru99', 'r1', 'c1', 'value', 10
  • Pēc vērtību ievietošanas "guru99" izvade būs tāda, kā parādīts iepriekš redzamajā ekrānuzņēmumā.

Lasīt datus no HBase tabulas: Shell

Šajā sadaļā mēs pārbaudīsim sekojošo

  • Vērtības, kas ievietotas HBase tabulā "guru99"
  • Kolonnu nosaukumi ar HBase tabulas guru99 esošajām vērtībām

No iepriekš minētā ekrānuzņēmuma mēs varam secināt

  • Ja mēs palaižam komandu "scan" HBase čaulā, tā parādīs ievietotās vērtības "guru99" šādi
  • HBase čaulā tas parādīs vērtības, kuras ievietojis mūsu kods ar kolonnu un rindu nosaukumiem
  • Šeit redzams, ka kolonnas nosaukums ir "izglītība" un "projekti"
  • Ievietotās vērtības ir “BigData” un “HBase Tutorials” minētajās kolonnās

Varat arī izmantot komandu Get, lai nolasītu datus no tabulas

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

Šeit ir TIMERANGE, TIMESTAMP, VERSIONS un FILTERS.

Izmantojot šo komandu, jūs saņemsiet tabulas rindas vai šūnas saturu. Papildus tam varat tam pievienot arī papildu parametrus, piemēram, TIMESTAMP, TIMERANGE, VERSIONS, FILTERS utt., Lai iegūtu noteiktu rindu vai šūnu saturu.

Piemēri: -

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

Tabulai "guru99" r1 un kolonnas c1 vērtības tiks rādītas, izmantojot šo komandu, kā parādīts iepriekš redzamajā ekrānuzņēmumā

hbase> get 'guru99', 'r1'

Tabulā "guru99" rindā r1 vērtības tiks parādītas, izmantojot šo komandu

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

Izmantojot šo komandu, tabulas "guru99" 1. rindas vērtības laika diapazonā tiks rādītas ts1 un ts2

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

Tabulai "guru99" r1 un kolonnu saimes c1, c2, c3 vērtības tiks parādītas, izmantojot šo komandu

Rakstīt datus HBase tabulā: JAVA API

Šajā solī mēs ierakstīsim datus HBase tabulā "guru99"

Pirmkārt, mums ir jāraksta kods, lai ievietotu un izgūtu vērtības no HBase, izmantojot programmu HBaseLoading.java.

Lai izveidotu un ievietotu vērtības tabulas kolonnu līmenī, jums ir jākodē tāpat kā zemāk .

No ekrāna, kas uzņemts iepriekš

  1. Kad mēs izveidosim HBase konfigurāciju, tā norādīs uz visām konfigurācijām, kuras HBase instalēšanas laikā esam iestatījuši failos base-site.xml un hbase-default.xml.
  2. Tabulas "guru99" izveidošana, izmantojot HTable metodi
  3. 1. rindas pievienošana tabulai "guru99"
  4. Kolonnu nosaukumu "izglītība" un "projekti" norādīšana un vērtību ievietošana kolonnu nosaukumos attiecīgajā rindā1. Šeit ievietotās vērtības ir "BigData" un "HBaseTutorials".

Lasīt datus no HBase tabulas: Java API

Neatkarīgi no vērtībām, kuras mēs ievietojām HBase tabulās iepriekšējā sadaļā, šeit mēs nolasīsim un parādīsim šīs vērtības.

"Guru99" saglabāto rezultātu izgūšanai

Iepriekš redzamajā ekrānuzņēmumā redzami dati, kas tiek nolasīti no HBase tabulas 'guru99'

  1. Tajā mēs ienesīsim vērtības, kas tiek glabātas kolonnu grupās, ti, "izglītība" un "projekti"
  2. Izmantojot komandu "get", mēs ienesīsim saglabātās vērtības HBase tabulā
  3. Rezultātu skenēšana, izmantojot komandu "scan". Vērtības, kas tiek saglabātas 1. rindā, tās tiks rādītas konsolē.

Kad kods ir uzrakstīts, jums jāpalaiž šāda Java programma

  • Ar peles labo pogu noklikšķiniet uz HBaseLoading.java -> Run As -> Java Application
  • Pēc "HBaseLoading .java" palaišanas vērtības, kuras katrā HBase kolonnā tiks ievietotas "guru99", un tajā pašā programmā tā var iegūt arī vērtības.

Šeit ir pilns kods

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();}}}

Kopsavilkums:

Kā mēs apspriedām šajā apmācībā, datus varat ievietot tabulā, izmantojot komandu put. Varat izmantot skenēšanu, iegūt komandu, lai nolasītu datus no tabulas