HBase Protobuf_4 | 学习笔记

简介: 快速学习 HBase Protobuf_4

开发者学堂课程【HBase入门教程HBase Protobuf_4 】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/397/detail/5092


HBase Protobuf_4


一、代码

/**

* 十个手机号 一天100条通话记录

* @throws Exception

*/

public void insertDB2()throws Exception{

for(int i=0;i<10;i++){

String rowkey;

String phoneNum=getPhoneNum("186");

rowkey=phoneNum+"_"+(Long.MAX_VALUE-Long.parseLong("20161110"));

// 一天的通话记录

Phone.pday.Builder pday=Phone.pday.newBuilder();

for(int j=0;j<100;j++){

String phoneDate=getDate2("20161110");

// 一条通话记录

Phone.pdetail.Builder detail=phone.pdetail.newBuilder();

detail.setPnum(getPhoneNum("177"));

detail.setTime(phoneDate);

detail.setType((r.nextInt(2)+""));

pday.addPlist(detail);

}

Put put=new Put(rowkey.getBytes());

}

put.add("cf1".getBytes(),"pday".getBytes(),pday.build().toByteArray());

hTable.put(put);

}

}

执行会有多少条数据

直接 scan ‘phone’

image.png

这样数据就很大了,把数据全部封装起来了。10个手机号,下边还有一层嵌套循环,对应的都是这一天,10个手机号1天都有100个通话记录,都封装到了 detall 里,封装完之后再插入到 getbtes

/*

* 拿到18696026061手机号 这一天的所有通话记录

* rowkey: 18696026061_9223372036834614697

* @throws Exception

*/

@Test

public void getPhoneData() throws Exception {

//手机号_时间戳

String rowkey = "18696026061_ 9223372036834614697";

Get get = new Get(rowkey.getBytes());

get.addColumn("cf1".getBytes(),"pday".getBytes());

Result rs = hTable.get(get);

Cell cell = rs.getColumnLatestCell("cf1".getBytes(),"pday".getBytes());

Phone.pday pday = Phone.pday.parseFrom(CellUtil.cloneValue(cell));

for(Phone.pdetail detail : pday.getPlistList()){

System.out.println(detail.getPnum()+"-"+detail.getTime()+"-"+detail.getType());

}

}

Get 拿到之后,是一个字节数组,最终把这个字节数组转成封装好的这个对象,先循环那个集合,在集合里的元素再通过 get 方法对应的属性都拿出来。用 protobuf 处理完之后,对于开发来说操作变得更加方便,出发点是为了优化、提高 HBase 的存储空间。

相关实践学习
lindorm多模间数据无缝流转
展现了Lindorm多模融合能力——用kafka API写入,无缝流转在各引擎内进行数据存储和计算的实验。
云数据库HBase版使用教程
&nbsp; 相关的阿里云产品:云数据库 HBase 版 面向大数据领域的一站式NoSQL服务,100%兼容开源HBase并深度扩展,支持海量数据下的实时存储、高并发吞吐、轻SQL分析、全文检索、时序时空查询等能力,是风控、推荐、广告、物联网、车联网、Feeds流、数据大屏等场景首选数据库,是为淘宝、支付宝、菜鸟等众多阿里核心业务提供关键支撑的数据库。 了解产品详情:&nbsp;https://cn.aliyun.com/product/hbase &nbsp; ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库&nbsp;ECS 实例和一台目标数据库&nbsp;RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&amp;RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
存储 SQL 自然语言处理
基于 HBase 的海量数据查询与检索解析|学习笔记
快速学习基于 HBase 的海量数据查询与检索解析
基于 HBase 的海量数据查询与检索解析|学习笔记
|
6月前
|
SQL 分布式计算 Hadoop
Hadoop学习笔记(HDP)-Part.16 安装HBase
01 关于HDP 02 核心组件原理 03 资源规划 04 基础环境配置 05 Yum源配置 06 安装OracleJDK 07 安装MySQL 08 部署Ambari集群 09 安装OpenLDAP 10 创建集群 11 安装Kerberos 12 安装HDFS 13 安装Ranger 14 安装YARN+MR 15 安装HIVE 16 安装HBase 17 安装Spark2 18 安装Flink 19 安装Kafka 20 安装Flume
137 1
Hadoop学习笔记(HDP)-Part.16 安装HBase
|
存储 前端开发 Cloud Native
基于 HBase 快速构架海量订单存储系统|学习笔记
快速学习基于 HBase 快速构架海量订单存储系统
基于 HBase 快速构架海量订单存储系统|学习笔记
|
存储 搜索推荐 Java
如何基于 HBase 构建图片、视频数据的统一存储检索方案|学习笔记
快速学习如何基于 HBase 构建图片、视频数据的统一存储检索方案
如何基于 HBase 构建图片、视频数据的统一存储检索方案|学习笔记
|
SQL 存储 边缘计算
HBase&Hive 2(三)|学习笔记
快速学习 HBase&Hive 2(三)
131 0
HBase&Hive 2(三)|学习笔记
|
SQL 存储 分布式计算
HBase&Hive 2(二)|学习笔记
快速学习 HBase&Hive 2(二)
HBase&Hive 2(二)|学习笔记
|
存储 SQL 分布式计算
HBase&Hive 2(一)|学习笔记
快速学习 HBase&Hive 2(一)
116 0
HBase&Hive 2(一)|学习笔记
|
存储 SQL 缓存
HBase&HIve 1|学习笔记
快速学习 HBase&HIve 1
172 0
HBase&HIve 1|学习笔记
|
SQL 消息中间件 存储
基于 HBase 的大数据在线分析|学习笔记
快速学习基于 HBase 的大数据在线分析
基于 HBase 的大数据在线分析|学习笔记
|
XML 缓存 分布式计算
集成 Oozie 服务&amp;集成 Hbase 服务 | 学习笔记
快速学习 集成 Oozie 服务&amp;集成 Hbase 服务
101 0
集成 Oozie 服务&amp;集成 Hbase 服务 | 学习笔记