插入数据
/**
* 插入数据
* @throws IOException
*/
public static void insert() throws IOException {
Table table = conn.getTable(tableName);
Put put = new Put(getRowKey("152").getBytes());//设置rowkey
//插入一列值
put.addColumn("f1".getBytes(), "addr".getBytes(), "河南".getBytes());
put.addColumn("f1".getBytes(), "type".getBytes(), "主叫".getBytes());
table.put(put);
}
2.1 获取Table
Connection对象中包含了Table, 通过connection来创建Table
Table table = conn.getTable(tableName);
2.2列簇的插入
每个列簇信息通过一个Put对象封装, table通过添加Put兑现,添加列数据
在hbase shell中插入一天数据
put 'tb_phone', 'r1', 'f1:c1', 'value1'
在API中是使用Put封装要插入的信息, rowkey 列簇, 列 值
也可以使用Table.add(List<Put>), 一次性插入多条
public static void insertMore() throws IOException {
Table table = conn.getTable(tableName);
List<Put> list = new ArrayList<Put>();
for(int i=0;i<1000;i++){
Put put = new Put(getRowKey("152").getBytes());
put.addColumn("f1".getBytes(),"address".getBytes(),"河南".getBytes());
put.addColumn("f1".getBytes(),"type".getBytes(),(ra.nextInt(2)+"").getBytes());
list.add(put);
}
table.put(list);
}