& HBase'de Veri Alma: get (), put (), scan () Örnekler

İçindekiler:

Anonim

Bu eğitimde şunları öğreneceksiniz:

  • HBase Tablosuna Veri Yaz: Kabuk
  • HBase Tablosundan Verileri Okuyun: Kabuk
  • HBase Tablosuna Veri Yaz: JAVA API
  • HBase Tablosundan Verileri Okuyun: JAVA API

HBase Tablosuna Veri Yaz: Kabuk

Put komutu, verileri bir tabloya depolamak için kullanılır

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

Bu komut aşağıdaki şeyler için kullanılır

  • Tanımlanmış veya belirtilen tablo veya satır veya sütuna bir hücre 'değeri' koyacaktır.
  • İsteğe bağlı olarak zaman damgasını koordine edecektir.

Misal:

  • Burada r1 satırı ve c1 sütununun altındaki "guru99" tablosuna değerler yerleştiriyoruz.
    hbase> put 'guru99', 'r1', 'c1', 'value', 10
  • Aşağıdaki ekran görüntüsünde gösterildiği gibi "guru99" tablosuna 10, 15 ve 30 olmak üzere üç değer yerleştirdik

  • "Guru99" tablosunun g gibi bir tablo referansına sahip olduğunu varsayalım. Komutu tablo referansı üzerinde de çalıştırabiliriz.

    hbase> g.put 'guru99', 'r1', 'c1', 'value', 10
  • Değerler "guru99" içine yerleştirildikten sonra çıktı yukarıdaki ekran görüntüsünde gösterildiği gibi olacaktır.

HBase Tablosundan Verileri Okuyun: Kabuk

Bu bölümde aşağıdakileri kontrol edeceğiz

  • HBase tablosu "guru99" a eklenen değerler
  • HBase Table guru'da bulunan değerlere sahip sütun adları

Yukarıdaki ekran görüntüsünden şu sonuca varabiliriz:

  • HBase kabuğunda "tara" komutunu çalıştırırsak, aşağıdaki gibi "guru99" da eklenen değerleri gösterecektir
  • HBase kabuğunda, kodumuz tarafından eklenen değerleri sütun ve satır adlarıyla gösterecektir.
  • Burada eklenen sütun adlarının "eğitim" ve "projeler" olduğunu görebiliriz.
  • Eklenen değerler, belirtilen sütunlara "BigData" ve "HBase Tutorials" dır.

Tablodaki verileri okumak için Get komutunu da kullanabilirsiniz.

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

Buradaki , TIMERANGE, TIMESTAMP, VERSIONS ve FILTERS'ı içerir.

Bu komutu kullanarak, tabloda bulunan bir satır veya hücre içeriği alacaksınız. Buna ek olarak, belirli bir satır veya hücre içeriğini elde etmek için TIMESTAMP, TIMERANGE, VERSIONS, FILTERS vb. Gibi ek parametreler de ekleyebilirsiniz.

Örnekler: -

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

"Guru99" tablosu için r1 ve sütun c1 değerleri, yukarıdaki ekran görüntüsünde gösterildiği gibi bu komutu kullanarak görüntülenecektir.

hbase> get 'guru99', 'r1'

"Guru99" tablosu için r1 değerleri bu komut kullanılarak görüntülenecektir

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

"Guru99" tablosu için ts1 ve ts2 zaman aralığındaki satır 1 değerleri bu komut kullanılarak görüntülenecektir

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

"Guru99" tablosu için r1 satırı ve sütun ailelerinin c1, c2, c3 değerleri bu komut kullanılarak görüntülenecektir

HBase Tablosuna Veri Yaz: JAVA API

Bu adımda, verileri "guru99" HBase tablosuna yazacağız.

İlk olarak, HBaseLoading.java programını kullanarak HBase'den değerler eklemek ve almak için kod yazmalıyız.

Sütun düzeyinde bir tabloya değer oluşturmak ve eklemek için aşağıdaki gibi kodlamanız gerekir .

Yukarıdaki ekran görüntüsünden

  1. HBase yapılandırmasını oluşturduğumuzda, HBase kurulumları sırasında base-site.xml ve hbase-default.xml dosyalarında belirlediğimiz yapılandırmalara işaret edecektir.
  2. HTable yöntemi kullanılarak "guru99" tablosunun oluşturulması
  3. "Guru99" tablosuna row1 ekleniyor
  4. Sütun adlarını "eğitim" ve "projeler" belirtmek ve ilgili satırdaki sütun adlarına değerler eklemek. Buraya eklenen değerler "BigData" ve "HBaseTutorials" tır.

HBase Tablosundan Verileri Oku: Java API

Yukarıdaki bölümde HBase tablolarına yerleştirdiğimiz değerler ne olursa olsun, burada bu değerleri alıp görüntüleyeceğiz.

"Guru99" da depolanan sonuçları almak için

Yukarıdaki ekran görüntüsü, verilerin 'guru99' HBase tablosundan okunduğunu göstermektedir.

  1. Burada, sütun ailelerinde depolanan değerleri, yani "eğitim" ve "projeler" getireceğiz.
  2. "Get" komutunu kullanarak HBase tablosunda saklanan değerleri getireceğiz
  3. Sonuçlar "tara" komutu kullanılarak taranıyor. Satır1'de depolanan değerler konsolda görüntülenecektir.

Kod yazıldıktan sonra, java uygulamasını böyle çalıştırmalısınız.

  • HBaseLoading.java -> Farklı Çalıştır -> Java Uygulaması'na sağ tıklayın
  • "HBaseLoading .java" komutunu çalıştırdıktan sonra, HBase'deki her sütunda "guru99" a eklenecek değerler ve aynı programda değerleri de alabilir.

İşte tam kod

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

Özet:

Bu öğreticide tartıştığımız gibi, bir tabloya veri eklemek için put komutunu kullanabilirsiniz. Bir tablodan verileri okumak için tarama, alma komutunu kullanabilirsiniz.