HBase Sorgu Örneği: HBase'de put(), get(), scan() Komutu

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 bir tabloya, satıra veya sütuna bir hücre 'değeri' koyacaktır.
  • İsteğe bağlı olarak zaman damgasını koordine edecektir.

Örnek:

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

HBase Tablosuna Veri Yaz: Kabuk

  • “Guru99” tablosunun g gibi bir tablo referansına sahip olduğunu varsayalım. Komutu tablo referansında da çalıştırabiliriz.
    hbase> g.put 'guru99', 'r1', 'c1', 'value', 10
  • Değerleri “guru99”a yerleştirdikten sonra çıktı yukarıdaki ekran görüntüsündeki 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 guru99'da mevcut değerleri içeren sütun adları

HBase Tablosundan Verileri Okuyun: Kabuk

Yukarıdaki ekran görüntüsünden şunu çıkarabiliriz:

  • HBase kabuğunda “scan” komutunu çalıştırırsak “guru99”a eklenen değerleri aşağıdaki gibi gösterecektir.
  • HBase kabuğunda, kodumuz tarafından eklenen değerleri sütun ve satır adlarıyla görüntüleyecektir.
  • Burada eklenen sütun adının “eğitim” ve “projeler” olduğunu görebiliriz.
  • Girilen değerler “BigData” ve “HBase Eğitimleri”ni belirtilen sütunlara yerleştirin

Bir tablodan veri okumak için Al komutunu da kullanabilirsiniz.

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

Burada TIMERANGE, TIMESTAMP, VERSİYONLAR ve FİLTRELERİ içerir.

Bu komutu kullanarak tabloda bulunan bir satır veya hücre içeriğini elde edeceksiniz. Buna ek olarak, belirli bir satır veya hücre içeriğini elde etmek için TIMESTAMP, TIMERANGE,VERSIONS, FİLTRELER vb. gibi ek parametreler de ekleyebilirsiniz.

HBase Tablosundan Verileri Okuyun: Kabuk

Örnekler: -

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

“Guru99′ tablosu için yukarıdaki ekran görüntüsünde gösterildiği gibi bu komut kullanılarak satır r1 ve sütun c1 değerleri görüntülenecektir.

hbase> get 'guru99', 'r1'

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

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

“Guru99” tablosu için ts1 ve ts1 zaman aralığındaki 2. satır 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 Yazma: JAVA API

Bu adımda HBase tablosu “guru99”a veri yazacağız.

İlk olarak, HBase'den değer eklemek ve almak için aşağıdakileri kullanarak kod yazmamız gerekir:HBaseLoading.java programı.

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

HBase Tablosuna Veri Yazma: JAVA API

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

  1. HBase konfigürasyonu oluşturduğumuzda, işlem sırasında base-site.xml ve hbase-default.xml dosyalarında belirlediğimiz konfigürasyonlar ne olursa olsun onu işaret edecektir. HBase kurulumları
  2. HTable yöntemini kullanarak “guru99” tablosunun oluşturulması
  3. “Guru1” tablosuna satır99 ekleniyor
  4. “Eğitim” ve “projeler” sütun adlarının belirtilmesi ve ilgili satırdaki1 sütun adlarına değerlerin eklenmesi. Buraya eklenen değerler “BigData” ve “HBaseTutorials”tır.

HBase Tablosundan Verileri Okuyun: 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 saklanan sonuçları almak için

HBase Tablosundan Verileri Okuyun: Java API

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

  1. Burada "eğitim" ve "projeler" gibi sütun ailelerinde saklanan değerleri getireceğiz.
  2. “Get” komutunu kullanarak HBase tablosunda saklanan değerleri getireceğiz
  3. Sonuçların “tara” komutunu kullanarak taranması. Satır 1'de saklanan değerler konsolda görüntülenecektir.

Kod yazma işlemi tamamlandıktan sonra çalıştırmanız gerekir. Java bu şekilde uygulama

  • HBaseLoading.java'ya sağ tıklayın -> Olarak çalıştırmak -> Java Uygulama
  • “HBaseLoading .java” çalıştırıldıktan sonra HBase'deki her sütunda “guru99”a eklenecek değerler ve aynı programda değerleri de alabilir.

İşte kodun tamamı

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

ÖZET

Bu eğitimde tartıştığımız gibi, bir tabloya veri eklemek için put komutunu kullanabilirsiniz. Bir tablodan veri okumak için taramayı kullanabilir, komutu alabilirsiniz