HBase Query Exempel: put(), get(), scan() Kommando i HBase
Skriv data till HBase Table: Shell
Put-kommandot används för att lagra data i en tabell
Syntax: put <'tablename'>,<'rowname'>,<'columnvalue'>,<'value'>
Detta kommando används för följande saker
- Det kommer att placera ett cell "värde" vid en definierad eller specificerad tabell eller rad eller kolumn.
- Det kommer valfritt att koordinera tidsstämpeln.
Exempelvis:
- Här placerar vi värden i tabellen "guru99" under rad r1 och kolumn c1
hbase> put 'guru99', 'r1', 'c1', 'value', 10
- Vi har placerat tre värden, 10,15 och 30 i tabellen "guru99" som visas i skärmdumpen nedan
- Anta att om tabellen "Guru99" har någon tabellreferens som säg g. Vi kan också köra kommandot på tabellreferens också som
hbase> g.put 'guru99', 'r1', 'c1', 'value', 10
- Utdata kommer att vara som visas i skärmdumpen ovan efter att ha placerat värden i "guru99".
Läs data från HBase Table: Shell
I det här avsnittet kommer vi att kontrollera följande
- Värden som infogas i HBase-tabellen "guru99"
- Kolumnnamn med värden som finns i HBase Table guru99
Från ovanstående skärmdump kan vi sluta oss
- Om vi kör kommandot "scan" i HBase-skalet kommer det att visa de infogade värdena i "guru99" enligt följande
- I HBase-skalet kommer det att visa värden som infogats av vår kod med kolumn- och radnamn
- Här kan vi se kolumnnamnet som infogas är "utbildning" och "projekt"
- Värdena som infogas är "BigData” och ”HBase Tutorials” i nämnda kolumner
Du kan också använda kommandot Get för att läsa data från en tabell
Syntax: get <'tablename'>, <'rowname'>, {< Additional parameters>}
Här inkluderar TIMERANGE, TIMESTAMP, VERSIONS och FILTER.
Genom att använda detta kommando får du en rad eller cellinnehåll som finns i tabellen. Utöver det kan du också lägga till ytterligare parametrar till den som TIMESTAMP, TIMERANGE,VERSIONS, FILTER, etc. för att få en viss rad eller cellinnehåll.
Exempel:-
hbase> get 'guru99', 'r1', {COLUMN => 'c1'}
För tabellen “guru99′ visas rad r1 och kolumn c1 värden med detta kommando som visas i skärmdumpen ovan
hbase> get 'guru99', 'r1'
För tabellen "guru99" kommer värden på rad r1 att visas med detta kommando
hbase> get 'guru99', 'r1', {TIMERANGE => [ts1, ts2]}
För tabell "guru99" kommer rad 1-värden i tidsintervallet ts1 och ts2 att visas med detta kommando
hbase> get 'guru99', 'r1', {COLUMN => ['c1', 'c2', 'c3']}
För tabell "guru99" kommer rad r1 och kolumnfamiljers c1, c2, c3 värden att visas med detta kommando
Skriv data till HBase-tabell: JAVA API
I det här steget kommer vi att skriva data i HBase-tabellen "guru99"
Först måste vi skriva kod för att infoga och hämta värden från HBase genom att använda-HBaseLoading.java-programmet.
För att skapa och infoga värden i en tabell på kolumnnivå måste du koda enligt nedan.
Från ovanstående skärmdump
- När vi skapar HBase-konfiguration kommer den att peka på vilka konfigurationer vi än ställer in i filerna base-site.xml och hbase-default.xml under HBase installationer
- Skapande av tabellen "guru99" med hjälp av HTable-metoden
- Lägger till rad1 i tabellen "guru99"
- Ange kolumnnamn "utbildning" och "projekt" och infoga värden i kolumnnamn i respektive rad1. Värdena som infogas här är "BigData" och "HBaseTutorials".
Läs data från HBase Table: Java API
Oavsett vilka värden vi placerade i HBase-tabellerna i avsnittet ovan, här ska vi hämta och visa dessa värden.
För att hämta resultat lagrade i "guru99"
Ovanstående skärmdump visar att data läses från HBase-tabellen 'guru99'
- I detta kommer vi att hämta de värden som finns lagrade i kolumnfamiljer, dvs. "utbildning" och "projekt"
- Med hjälp av "get"-kommandot kommer vi att hämta lagrade värden i HBase-tabellen
- Skanna resultat med "scan" kommandot. Värdena som är lagrade i rad 1 kommer att visas på konsolen.
När du har skrivit kod måste du köra Java applikation som denna
- Högerklicka på HBaseLoading.java -> Spring som -> Java Ansökan
- Efter att ha kört "HBaseLoading .java" kommer värdena att infogas i "guru99" i varje kolumn i HBase och i samma program kan den också hämta värden.
Här är den fullständiga koden
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(); } } }
Sammanfattning
Som vi diskuterade i den här handledningen kan du använda kommandot put för att infoga data i en tabell. Du kan använda kommandot scan, get för att läsa data från en tabell