HBase - Verileri Sil

Tablodaki Belirli Bir Hücrenin Silinmesi

Kullanmak deletekomutu, bir tablodaki belirli bir hücreyi silebilirsiniz. Sözdizimidelete komut aşağıdaki gibidir:

delete ‘<table name>’, ‘<row>’, ‘<column name >’, ‘<time stamp>’

Misal

İşte belirli bir hücreyi silmek için bir örnek. Burada maaşı siliyoruz.

hbase(main):006:0> delete 'emp', '1', 'personal data:city',
1417521848375
0 row(s) in 0.0060 seconds

Bir Tablodaki Tüm Hücreleri Silme

"Hepsini sil" komutunu kullanarak bir satırdaki tüm hücreleri silebilirsiniz. Aşağıda, deleteall komutunun sözdizimi verilmiştir.

deleteall ‘<table name>’, ‘<row>’,

Misal

Emp tablosunun 1. satırındaki tüm hücreleri sildiğimiz "deleteall" komutuna bir örnek.

hbase(main):007:0> deleteall 'emp','1'
0 row(s) in 0.0240 seconds

Tabloyu kullanarak doğrulayın scankomut. Tabloyu sildikten sonra tablonun anlık görüntüsü aşağıda verilmiştir.

hbase(main):022:0> scan 'emp'

ROW                  COLUMN + CELL

2 column = personal data:city, timestamp = 1417524574905, value = chennai 

2 column = personal data:name, timestamp = 1417524556125, value = ravi

2 column = professional data:designation, timestamp = 1417524204, value = sr:engg

2 column = professional data:salary, timestamp = 1417524604221, value = 30000

3 column = personal data:city, timestamp = 1417524681780, value = delhi

3 column = personal data:name, timestamp = 1417524672067, value = rajesh
 
3 column = professional data:designation, timestamp = 1417523187, value = jr:engg

3 column = professional data:salary, timestamp = 1417524702514, value = 25000

Java API Kullanarak Verileri Silme

Bir HBase tablosundaki verileri şunu kullanarak silebilirsiniz: delete() yöntemi HTablesınıf. Bir tablodan veri silmek için aşağıda verilen adımları izleyin.

Adım 1: Konfigürasyon Sınıfının Örneğini Oluşturun

Configurationsınıfı, HBase yapılandırma dosyalarını nesnesine ekler. Kullanarak bir yapılandırma nesnesi oluşturabilirsiniz.create() yöntemi HbaseConfiguration aşağıda gösterildiği gibi sınıf.

Configuration conf = HbaseConfiguration.create();

Adım 2: HTable Sınıfının Örneğini Oluşturun

Adlı bir sınıfınız var HTable, HBase'de Table uygulaması. Bu sınıf, tek bir HBase tablosu ile iletişim kurmak için kullanılır. Bu sınıfın örneğini oluştururken, yapılandırma nesnesini ve tablo adını parametre olarak kabul eder. HTable sınıfını aşağıda gösterildiği gibi başlatabilirsiniz.

HTable hTable = new HTable(conf, tableName);

3. Adım: Silme Sınıfının Örneğini Oluşturun

Örnekleyin Deletesilinecek satırın satır kimliğini bayt dizisi biçiminde ileterek sınıfı. Ayrıca bu kurucuya zaman damgası ve Rowlock da geçirebilirsiniz.

Delete delete = new Delete(toBytes("row1"));

Adım 4: Silinecek Verileri Seçin

Verileri, uygulamanın silme yöntemlerini kullanarak silebilirsiniz. Deletesınıf. Bu sınıfın çeşitli silme yöntemleri vardır. Bu yöntemleri kullanarak silinecek sütunları veya sütun ailelerini seçin. Delete sınıfı yöntemlerinin kullanımını gösteren aşağıdaki örneklere bir göz atın.

delete.deleteColumn(Bytes.toBytes("personal"), Bytes.toBytes("name"));
delete.deleteFamily(Bytes.toBytes("professional"));

Adım 5: Verileri Silin

Geçerek seçilen verileri silin delete örnek delete() yöntemi HTable aşağıda gösterildiği gibi sınıf.

table.delete(delete);

Adım 6: HTableInstance'ı kapatın

Verileri sildikten sonra, HTable Örnek.

table.close();

Aşağıda HBase tablosundan verileri silmek için eksiksiz bir program verilmiştir.

import java.io.IOException;

import org.apache.hadoop.conf.Configuration;

import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.client.Delete;
import org.apache.hadoop.hbase.client.HTable;
import org.apache.hadoop.hbase.util.Bytes;

public class DeleteData {

   public static void main(String[] args) throws IOException {

      // Instantiating Configuration class
      Configuration conf = HBaseConfiguration.create();

      // Instantiating HTable class
      HTable table = new HTable(conf, "employee");

      // Instantiating Delete class
      Delete delete = new Delete(Bytes.toBytes("row1"));
      delete.deleteColumn(Bytes.toBytes("personal"), Bytes.toBytes("name"));
      delete.deleteFamily(Bytes.toBytes("professional"));

      // deleting the data
      table.delete(delete);

      // closing the HTable object
      table.close();
      System.out.println("data deleted.....");
   }
}

Yukarıdaki programı aşağıda gösterildiği gibi derleyin ve çalıştırın.

$javac Deletedata.java
$java DeleteData

Aşağıdakiler çıktı olmalıdır:

data deleted