HBase应用程序开发02插入数据

192 阅读1分钟

插入数据

    /** 
     * 插入数据
     * @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);
    }