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