HBase'i päringu näide: put(), get(), scan() Käsk HBase'is
Kirjutage andmed HBase'i tabelisse: Shell
Käsku put kasutatakse andmete salvestamiseks tabelisse
Syntax: put <'tablename'>,<'rowname'>,<'columnvalue'>,<'value'>
Seda käsku kasutatakse järgmiste asjade jaoks
- See lisab määratletud või määratud tabelisse või reale või veergu lahtri väärtuse.
- See koordineerib valikuliselt ajatemplit.
Näide:
- Siin asetame väärtused tabelisse "guru99" rea r1 ja veeru c1 alla
hbase> put 'guru99', 'r1', 'c1', 'value', 10
- Oleme paigutanud tabelisse “guru10,15” kolm väärtust, 30 ja 99, nagu on näidatud alloleval ekraanipildil
- Oletame, et tabelis “Guru99” on mõni tabeliviide, näiteks g. Samuti võime käsku käivitada tabeliviites
hbase> g.put 'guru99', 'r1', 'c1', 'value', 10
- Väljund on selline, nagu on näidatud ülaltoodud ekraanipildil pärast väärtuste paigutamist "guru99".
Lugege andmeid HBase'i tabelist: Shell
Selles jaotises kontrollime järgmist
- Väärtused, mis lisatakse HBase'i tabelisse "guru99"
- HBase tabeli guru99 väärtustega veergude nimed
Ülaltoodud ekraanipildi põhjal saame järeldada
- Kui käivitame HBase shellis käsu "scan", kuvab see sisestatud väärtused "guru99" järgmiselt
- HBase'i kestas kuvab see meie koodi sisestatud väärtused veergude ja ridade nimedega
- Siin näeme sisestatud veeru nimesid "haridus" ja "projektid"
- Sisestatud väärtused on "Suured andmed” ja „HBase’i õpetused” nimetatud veergudesse
Tabelist andmete lugemiseks saate kasutada ka käsku Hangi
Syntax: get <'tablename'>, <'rowname'>, {< Additional parameters>}
Siin sisaldab TIMERANGE, TIMESTAMP, VERSIONS ja FILTER.
Seda käsku kasutades kuvatakse tabelis rea või lahtri sisu. Lisaks saate sellele lisada ka täiendavaid parameetreid, nagu TIMESTAMP, TIMERANGE, VERSIONS, FILTERS jne, et saada teatud rea või lahtri sisu.
Näited: -
hbase> get 'guru99', 'r1', {COLUMN => 'c1'}
Tabeli “guru99” jaoks kuvatakse rea r1 ja veeru c1 väärtused selle käsu abil, nagu on näidatud ülaltoodud ekraanipildil
hbase> get 'guru99', 'r1'
Tabeli “guru99” jaoks kuvatakse selle käsu abil rea r1 väärtused
hbase> get 'guru99', 'r1', {TIMERANGE => [ts1, ts2]}
Tabeli “guru99” rea 1 väärtused ajavahemikus ts1 ja ts2 kuvatakse selle käsuga
hbase> get 'guru99', 'r1', {COLUMN => ['c1', 'c2', 'c3']}
Tabeli “guru99” rea r1 ja veeruperede c1, c2 ja c3 väärtused kuvatakse selle käsuga
Kirjutage andmed HBase'i tabelisse: JAVA API
Selles etapis kirjutame andmed HBase'i tabelisse "guru99"
Esiteks peame kirjutama sisestamise koodi ja hankima väärtused HBase'ist, kasutadesProgramm HBaseLoading.java.
Väärtuste loomiseks ja tabelisse veeru tasemel sisestamiseks peate kodeerima nagu allpool.
Ülaltoodud ekraanipildist
- Kui loome HBase'i konfiguratsiooni, osutab see mis tahes konfiguratsioonidele, mille me failides base-site.xml ja hbase-default.xml ajal määrame. HBase installatsioonid
- Tabeli “guru99” loomine HTable meetodil
- Rea1 lisamine tabelisse "guru99"
- Veerunimede “haridus” ja “projektid” määramine ning väärtuste sisestamine veergude nimedesse vastavas reas1. Siia sisestatud väärtused on "BigData" ja "HBaseTutorials".
Lugege andmeid HBase'i tabelist: Java API
Olenemata väärtustest, mille me ülaltoodud jaotises HBase'i tabelitesse paigutasime, toome ja kuvame need väärtused siin.
Guru99-sse salvestatud tulemuste toomiseks
Ülaltoodud ekraanipilt näitab, et andmeid loetakse HBase'i tabelist 'guru99'
- Selles toome väärtused, mis on salvestatud veergude perekondadesse, st "haridus" ja "projektid".
- Kasutades käsku "get", hangime HBase'i tabelisse salvestatud väärtused
- Tulemuste skannimine, kasutades käsku "scan". 1. reale salvestatud väärtused kuvatakse konsoolil.
Kui kood on kirjutatud, peate käivitama Java rakendus nagu see
- Paremklõpsake failil HBaseLoading.java -> Käivita kui -> Java taotlus
- Pärast "HBaseLoading .java" käivitamist lisatakse väärtused "guru99" igasse HBase'i veergu ja samas programmis saab see ka väärtusi hankida.
Siin on täielik kood
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(); } } }
kokkuvõte
Nagu selles õpetuses arutasime, saate andmete tabelisse sisestamiseks kasutada käsku put. Tabelist andmete lugemiseks saate kasutada käsku scan, get