HBase 表设计_6 | 学习笔记

简介: 快速学习 HBase 表设计_6

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

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


HBase 表设计_6


一、同学作业点评与修改

rowkey

(uuid)_(注册的时间)_(是否绑定手机,用01区别)_(绑定的手机号)

分析:在微博内,基本信息最好使用一个单独的表用来维护,所以不应该放到 rowkey 内。

列族:列名

cf1为用户基本信息)

cf2为关注的用户)  

cf3为发布的微博)

Cf1:name

cf2:userId=

cf3:messageId

Cf1:age

 

 

有一个需求,查看关注的好友比较方便,列族里存放着所有关注的好友,但是查看粉丝列表并不是特别方便。此时加一个列族存放粉丝列表会更好。所以应该添加一张粉丝关注用户表,如下:

粉丝关注用户表

rowkey

cf1(存放关注列表)

cf2(存放粉丝列表)

uid

cf1:uid=uname

cf2:uid=uname

分析:如果想要查关注列表,那么首先登录之后,用户id一定清楚,cf1下的所有列都查出来,就是关注列表,粉丝列表也是同理。

发布的微博表

Rowkey  

列族(列名)

(uuid)_(发布的时间)

cf1为发布用户的 Id

 Cf1:userId

以用户 id 加上发布的时间作为 rowkey,有一个列族 cf1,查询微博的时候做一个关联

微博表

rowkey

cf1

 

uid_(long.max-time)

cf1:content=微博内容

version=1000

发布微博和查看自己发布的微博:

查看微博的特点是需要按照时间做一个降序。

Cf1可以存放微博内容,cf1:content 的值是微博内容,一个用户可以发很多很多微博 version 版本数,微博数量很多    

version 可以设很大,版本数设置为1000,这样查询的时候就可以把所有的拿出来,uid_(long.max-time)有两种设计第一种把时间加到 rowkey 里。第二种通过版本来设置,这个微博表是存放一个用户发布的微博,按照最新发布的时间排序,查询某个用户或者自己发布的微博,按照时间做了一个降序,使用 version 更合适。

查看自己发布的微博:

某一个用户的微博,如果达到降序的效果,需要查看关注好友发布的微博,其实就是登录微博之后,相当于查看首页,所以此时需要把所有关注的微博按照时间降序罗列出来。

相关实践学习
云数据库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
相关文章
|
1月前
|
机器学习/深度学习 分布式计算 Hadoop
一种HBase表数据迁移方法的优化
一种HBase表数据迁移方法的优化
65 0
|
1月前
|
SQL Java 分布式数据库
实现HBase表和RDB表的转化(附Java源码资源)
该文介绍了如何将数据从RDB转换为HBase表,主要涉及三个来源:RDB Table、Client API和Files。文章重点讲解了RDB到HBase的转换,通过批处理思想,利用RDB接口批量导出数据并转化为`List<Put>`,然后导入HBase。目录结构包括配置文件、RDB接口及实现类、HBase接口及实现类,以及一个通用转换器接口和实现。代码中,`RDBImpl`负责从RDB读取数据并构造`Put`对象,`HBaseImpl`则负责将`Put`写入HBase表。整个过程通过配置文件`transfer.properties`管理HBase和RDB的映射关系。
31 3
实现HBase表和RDB表的转化(附Java源码资源)
|
1月前
|
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
93 1
Hadoop学习笔记(HDP)-Part.16 安装HBase
|
存储 前端开发 Cloud Native
基于 HBase 快速构架海量订单存储系统|学习笔记
快速学习基于 HBase 快速构架海量订单存储系统
371 0
基于 HBase 快速构架海量订单存储系统|学习笔记
|
11月前
|
存储 Java Shell
分布式数据库HBase的常用操作的基本Shell命令的表操作
HBase是一个分布式数据库系统,支持高性能、可伸缩、实时的数据存储和处理。在HBase中,我们可以使用Shell命令来进行常用的操作,如创建表、插入数据、查询数据、更新数据等。本文将介绍关于分布式数据库HBase的常用操作基本Shell命令的表操作。
180 0
|
存储 搜索推荐 Java
如何基于 HBase 构建图片、视频数据的统一存储检索方案|学习笔记
快速学习如何基于 HBase 构建图片、视频数据的统一存储检索方案
800 0
如何基于 HBase 构建图片、视频数据的统一存储检索方案|学习笔记
|
SQL 缓存 分布式计算
HBase查询一张表的数据条数的方法
HBase查询一张表的数据条数的方法
832 0
HBase查询一张表的数据条数的方法
|
分布式数据库 索引 Hbase
《HBase应用与发展之HBase RowKey与索引设计》电子版地址
HBase应用与发展之HBase RowKey与索引设计
107 0
《HBase应用与发展之HBase RowKey与索引设计》电子版地址
|
分布式数据库 Hbase
|
分布式数据库 Hbase