添加数据|学习笔记

简介: 快速学习 添加数据

开发者学堂课程【分布式数据库 HBase 快速入门:添加数据】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/101/detail/1750


添加数据


内容简介:

1.表的操作

2.添加数据

3.旧 API 换成新 API  

4.测试

5.批量插入数据

 

1.表的操作

1)创建表

hbase (main):002:0> create ' student', ' info'

2)插入数据到表

hbase (main):003:0> put 'student', '1001' , ' info:sex', 'male'

hbase (main):004:0> put 'student', '1001', ' info:age', '18'

hbase (main):005:0> put 'student','1002', 'info:name', 'Janna'

hbase (main):006:0> put 'student', '1002', 'info:sex' , ' female',

hbase (main):007:0> put 'student', ' 1002', ' info:age', '20'

3)扫描查看表数据

hbase (main) :008:0> scan ' student '

hbase (main) :009:0> scan ' student' , {STARTROW => ' 1001', STOPROW =>' 1001'}

hbase (main) :010:0> scan 'student', {STARTROW => '1001'}

4)查看表结构

hbase (main) :011:0> describe 'student'

5)更新指定字段的数据

hbase (main) :012:0> put 'student', '1001', ' info:name', 'Nick'

hbase (main) :013:0> put ' student', '1001' , ' info:age', '100'

2.添加数据

当命令行操作,在 put 数据的时候,要有表名、rowKey、列族、列名和族值。插入数据和命令行的操作一样,要有这些数据:

Public static void putData(String tableName,String rowKey,String cf,String cn,String value){

}

对于表操作其实拿的是具体的某张表,即操作的是一张表,那么应该创建的是表对象。刚才操作的是整张表,拿的 是 Hbase 的管理员对象,现在应该获取 Table 对象,但它是一个接口

点到接口里面,可以看到它只有一个实现类

其实用到的是 HTable,下面创建 HTable

第三条,要一个配置文件,要一个表名,这里先用过时的,不过时的调用方法太复杂了,之后再通过过时 API 来找新 API。TableName 上面已经有了,配置文件不能放在静态代码块里面,要把它拿出来

1)获取表对象

HTable table = new HTable (configuration, TableName. valueOf(tableName));

插入数据应该调用的是 put 方法

put 两个方法,即插入数据可以一条一条的插入,也可以批量插入。当前只插入一条数据,用 table.put()

2)创建 put 对象

第一个方法要 byte 数组型的 row,这个 row 指的是 rowKey。Hbase 有自己的工具类,这个工具类是 Bytes

(org. apache. hadoop. hbase. util),Hbase 提供的字节数组跟其他类型之间的互相转化的工具类。现在是要将 String 转成 byte 数组,

Put put = new Put (Bytes. toBytes(rowKey));

3)添加数据

对于 1001 这个 rowKey 可以放多条数据,其实这些值是在 put 对象里面放着,而且你能通过它是一个 rowKey 对应一个 put。

接下来往 put 里面放数据:

put. addColumn (Bytes. toBytes(cf), Bytes. toBytes(cn) , Bytes. toBytes(value));

4)执行添加操作

Table.put (put)

5)具体程序代码

 

3.旧API换成新API

要用 collection 来获取 table,下面有 getTable()方法来获取 table 对象:

Table table = connection. getTable (TableName. valueOf(tableName));

 

4.测试

先扫描一下这张表

发现里面没有 1003,那么传入 1003,测试代码

再次扫描这张表

发现里面有 1003 了。

 

5.批量插入数据

批量插入分为两种情况,table.put(put),里面不仅可以放入 put,还可以放入 put的集合。

如果放入的是 put 的集合,那么这种批量插入的数据肯定对应多个 rowKey,因为一个 put 对象就是一个 rowKey,它们是一一对应的关系,但 rowKey 将会有多个。

这种批量插入就是 ck 和 value 有多个

这种批量插入指的是同一个 rowKey,不同的列里面的数据。

还有一种是将 put、list 的集合来做批量插入,这种方法比较麻烦,因为它要将rowKey、cf、cn、value一一对应起来。要用到 map 集合:第一个 map 集合把 cn和 value 绑定起来,第二个 map 集合来绑定 cf 加上第一个 map 集合。这样就把cf、cn 加 value 对应起来了,第三个 map 集合把 rowKey 和第二个 map 集合连起来了,嵌套了多层非常麻烦。

生产当中是来一条数据封装一个 put 对象,然后判断 list 集合,list 集合条数达到多少条之后再统一的核对一下。

相关实践学习
lindorm多模间数据无缝流转
展现了Lindorm多模融合能力——用kafka API写入,无缝流转在各引擎内进行数据存储和计算的实验。
云数据库HBase版使用教程
  相关的阿里云产品:云数据库 HBase 版 面向大数据领域的一站式NoSQL服务,100%兼容开源HBase并深度扩展,支持海量数据下的实时存储、高并发吞吐、轻SQL分析、全文检索、时序时空查询等能力,是风控、推荐、广告、物联网、车联网、Feeds流、数据大屏等场景首选数据库,是为淘宝、支付宝、菜鸟等众多阿里核心业务提供关键支撑的数据库。 了解产品详情: https://cn.aliyun.com/product/hbase   ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
C# 数据库
C# DataGridView用法(—)代码绑定数据源
C# DataGridView用法(—)代码绑定数据源
488 1
|
8月前
|
DataWorks 数据管理 大数据
DataWorks操作报错合集之添加数据源时显示"添加数据源连接出错"的提示,如何解决
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
|
9月前
|
Shell 数据库 Python
添加数据
添加数据。
62 1
|
8月前
|
关系型数据库 MySQL 数据库
mysql数据库 , 表格的创建
mysql数据库 , 表格的创建
|
9月前
|
SQL 存储 关系型数据库
③【操作表数据】MySQL添加数据、修改数据、删除数据
③【操作表数据】MySQL添加数据、修改数据、删除数据
247 0
|
9月前
|
SQL 关系型数据库 MySQL
MYSQL基础知识之【添加数据,查询数据】
MYSQL基础知识之【添加数据,查询数据】
47 0
|
关系型数据库 MySQL 数据库
如何创建数据表
如何创建数据表
|
SQL 数据可视化 数据库
怎么使用可视化数据库工具 DBeaver 在账单类型 type 表里添加数据?
怎么使用可视化数据库工具 DBeaver 在账单类型 type 表里添加数据?
507 0
怎么使用可视化数据库工具 DBeaver 在账单类型 type 表里添加数据?
|
关系型数据库 MySQL 数据库
【MySQL学习笔记】添加数据、查询数据、修改数据、删除数据
MySQL中用insert语句向数据表中添加数据,根据操作的不同目的一般分为两种,一种是为所有字段添加数据,一种格式为部分字段添加数据。但如果要添加的数据过多,重复操作很麻烦,此时就需要一次添加多行数据。
|
SQL 关系型数据库 MySQL
MySQL基础-表操作~添加数据
DML英文全称是Data Manipulation Language(数据操作语言),用来对数据库中表的数据记录进 行增、删、改操作。
306 0