上云无忧 > 文档中心 > 天翼云云HBASE数据库-插入数据
云HBASE数据库
天翼云云HBASE数据库-插入数据

文档简介:
插入数据 功能简介 HBase是一个面向列的数据库,一行数据,可能对应多个列族,而一个列族又可以对应 多个列。通常,写入数据的时候,我们需要指定要写入的列(含列族名称和列名 称)。
*产品来源:中国电信天翼云。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

插入数据


功能简介
HBase是一个面向列的数据库,一行数据,可能对应多个列族,而一个列族又可以对应
多个列。通常,写入数据的时候,我们需要指定要写入的列(含列族名称和列名
称)。HBase通过HTable的put方法来Put数据,可以是一行数据也可以是数据集。

代码样例
以下代码片段在cn.chinatelecom.hbase.sample.client包的“HBaseClient”类的put方
法中。
/*
插入数据:
主键 账号 邮箱 年龄 工作
1000101 molika tt@hotmail.cn 29 IT
1000102 kouda kouda@126.com 24 销售
1000103 liusha liusha@173.com 36 经理
1000104 baifei  baifei@qq.com 16 学生
 */
public void put(TableName tableName) throws IOException{
    Table table = null;
    byte[] family = Bytes.toBytes("info");
    byte[][] qualifiers = {Bytes.toBytes("account"),Bytes.toBytes("email"),Bytes.toBytes("age"),Bytes.toBytes("career")};
    try {
        table = conn.getTable(tableName);
        //单个put
        Put put = new Put(Bytes.toBytes("1000101"));
        put.addColumn(family,qualifiers[0],Bytes.toBytes("molika"));
        put.addColumn(family,qualifiers[1],Bytes.toBytes("tt@hotmail.cn"));
        put.addColumn(family,qualifiers[2],Bytes.toBytes("29"));
        put.addColumn(family,qualifiers[3],Bytes.toBytes("IT"));
        table.put(put);

        //批量put
        List<Put> puts = new ArrayList<>();
        put = new Put(Bytes.toBytes("1000102"));
        put.addColumn(family,qualifiers[0],Bytes.toBytes("kouda"));
        put.addColumn(family,qualifiers[1],Bytes.toBytes("kouda@126.com"));
        put.addColumn(family,qualifiers[2],Bytes.toBytes("24"));
        put.addColumn(family,qualifiers[3],Bytes.toBytes("销售"));
        puts.add(put);

        put = new Put(Bytes.toBytes("1000103"));
        put.addColumn(family,qualifiers[0],Bytes.toBytes("liusha"));
        put.addColumn(family,qualifiers[1],Bytes.toBytes("liusha@173.com"));
        put.addColumn(family,qualifiers[2],Bytes.toBytes("36"));
        put.addColumn(family,qualifiers[3],Bytes.toBytes("经理"));
        puts.add(put);

        put = new Put(Bytes.toBytes("1000104"));
        put.addColumn(family,qualifiers[0],Bytes.toBytes("baifei"));
        put.addColumn(family,qualifiers[1],Bytes.toBytes("baifei@qq.com"));
        put.addColumn(family,qualifiers[2],Bytes.toBytes("16"));
        put.addColumn(family,qualifiers[3],Bytes.toBytes("学生"));
        puts.add(put);

        table.put(puts);
    } catch (IOException e) {
        LOGGER.error("put data failed,",e);
    } finally {
        table.close();
    }
}
注意事项
不允许多个线程在同一时间共用同一个HTable实例。HTable是一个非线程安全类,因
此,同一个HTable实例,不应该被多个线程同时使用,否则可能会带来并发问题。


相似文档
  • 删除数据 功能简介 HBase通过Table实例的delete方法来Delete数据,可以是一行数据也可以是数据集。 代码样例 以下代码片段在cn.chinatelecom.hbase.sample.client包的“HBaseClient”类的delete 方法中。
  • 使用Get读取数据 功能简介 要从表中读取一条数据,首先需要实例化该表对应的Table实例,然后创建一个Get对 象。也可以为Get对象设定参数值,如列族的名称和列的名称。
  • 使用Scan读取数据 功能简介 要从表中读取数据,首先需要实例化该表对应的Table实例,然后创建一个Scan对象, 并针对查询条件设置Scan对象的参数值,为了提高查询效率,最好指定StartRow和 StopRow。
  • 使用过滤器Filter 功能简介 HBase Filter主要在Scan和Get过程中进行数据过滤,通过设置一些过滤条件来实现,如 设置RowKey、列名或者列值的过滤条件。
  • 创建Phoenix表 功能简介 Phoenix依赖HBase作为其后备存储,支持标准SQL和JDBC API的强大功能,使得SQL 用户可以访问HBase集群。 代码样例:
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部