使用Java API删除数据
您可以使用Table类的delete()方法从HBase表中删除数据。请按照下面给出的步骤从表中删除数据。
步骤1:连接数据库
配置类将HBase配置文件添加到其对象。您可以使用HbaseConfiguration类的create()方法创建配置对象,并连接数据库,如下所示。
Configuration config = HBaseConfiguration.create();
Connection connection = ConnectionFactory.createConnection(config);
步骤2:实例化Table类
您有一个名为Table的类,它是HBase中Table的实现。此类用于与单个HBase表进行通信。在实例化此类时,它接受配置对象和表名作为参数。您可以实例化Table类,如下所示。
TableName tb = TableName.valueOf("emp");
// Instantiating Table class
Table table = connection.getTable(tb);
步骤3:实例化Delete类
通过以字节数组格式传递要删除的行的rowid来实例化Delete类。您还可以将时间戳记和行锁传递给此构造函数。
Delete delete = new Delete(toBytes("row1"));
步骤4:选择要删除的数据
您可以使用Delete类的方法删除数据。此类具有各种删除方法。使用这些方法选择要删除的列或列族。看下面的示例,这些示例显示Delete类方法的用法。
// delete cell
delete.addColumn(Bytes.toBytes("personal data"), Bytes.toBytes("name"));
// delete column family
delete.addFamily(Bytes.toBytes("professional data"));
步骤5:删除数据
通过将delete实例传递给HTable类的delete()方法来删除所选数据,如下所示。
步骤6:关闭HTableInstance
删除数据后,关闭Table实例。
下面给出的是从HBase表删除数据的完整程序。
package com.jc2182.www;
import java.io.IOException;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.hbase.HBaseConfiguration;
import org.apache.hadoop.hbase.TableName;
import org.apache.hadoop.hbase.client.Connection;
import org.apache.hadoop.hbase.client.ConnectionFactory;
import org.apache.hadoop.hbase.client.Delete;
import org.apache.hadoop.hbase.client.Table;
import org.apache.hadoop.hbase.util.Bytes;
public class InsertData {
public static void main(String[] args) throws IOException {
// Instantiating Configuration class
Configuration config = HBaseConfiguration.create();
Connection connection = ConnectionFactory.createConnection(config);
TableName tb = TableName.valueOf("emp");
// Instantiating Table class
Table table = connection.getTable(tb);
// Instantiating delete class
// accepts a row name.
Delete delete = new Delete(Bytes.toBytes("row1"));
// delete cell
delete.addColumn(Bytes.toBytes("personal data"), Bytes.toBytes("name"));
// delete column family
delete.addFamily(Bytes.toBytes("professional data"));
// deleting the data
table.delete(delete);
// closing the HTable object
table.close();
System.out.println("data deleted.....");
}
}
编译并执行上述程序,如下所示。
$javac Deletedata.java
$java DeleteData
以下应该是输出: