2016-07-21 17 views
1

Ich verwende das Paket 'org.apache.hadoop.hbase.client' für den Datenfluss, um die BigTable-Daten von Google zu verwalten.Löschen von Zeilen mit einem Präfix-Schlüssel

Beispiel eine Zeile zu löschen:

key = "PROV|CLI|800|20160714|8|30302.30301|ES"; 
byte[] byteKey = Bytes.toBytes(key); 
Delete delete = new Delete(byteKey); 

Dies funktioniert gut, aber ich brauche einen Weg, um alle Zeilen zu löschen, die mit ihr Schlüsseln ‚PROV | CLI | 800 |‘ starten

Gibt es das überhaupt zu tun?

Antwort

1

Cloud Bigtable verfügt über eine Funktion dies über AbstractBigtableAdmin. deleteRowRangeByPrefix(byte[]) effizient zu tun:

Connection c = ...; 
AbstractBigtableAdmin admin = (AbstractBigtableAdmin) c.getAdmin(); 
admin.deleteRowRangeByPrefix(Bytes.toBytes("PROV|CLI|800|")); 
admin.close(); 
+0

Gibt es trotzdem, das Paket "org.apache.hadoop.hbase.client" verwenden? –

+0

Sie können einen Scan mit einem PräfixFilter erstellen, die Ergebnisse iterieren und sie mit table.batch löschen (Liste ) –

Verwandte Themen