HBase表设计_8 | 学习笔记

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

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

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


HBase表设计_8


内容介绍

一、例子一

二、例子二


一、例子一

A   B  C  

C  粉丝  A B

A  关注  C

B  关注  C

假如 A 要发一条微博,对应  A 的用户 id  uid_(long.max-time) 作为 rowkey ,为微博表里存数据,微博内容就放到 content 里。假如 A 再发一条微博,将在后面再加一条数据。因为 A 没有粉丝,所以粉丝列表为空。

假如 C 发了一条微博,和 uid_(long.max-time) 和用户 id C  组合降序做一个组合的 rowkey ,此时和 A 的区别是,C 有粉丝,重新开启一个线程,去粉丝列表里查看有哪些粉丝,查到之后需要往收微博表里添加数据。需要给 A 用户的收微博表添加一条数据,收微博表是用户 id 作为 rowkey ,之后找到 id=uid_(long.max-time)  将微博写进,对应也需要向 B 的收微博表添加数据。cell 里只要你关注的用户发了微博都会往里面存值,低版本放在下面,高版本放在上面,通过版本去实现降序。


二、例子二

A  B  C  D

C  粉丝  A B

A  关注  C D

B  关注  C

D  粉丝  A

C 用户发了一个微博,重开一个线程找到 C 用户的粉丝列表,粉丝 A 的收微博表会被添加一条数据。这时 D 发了一条微博,重开一个线程找到 D 用户的粉丝列表,因为 D 的粉丝里有 A ,需要找到 A 收微博表的 cell ,再 put 一个值进去。C 先发的微博所以在下面 D 在上面,只要后来都发布都会添加上去,发布完微博之后给微博表里添加数据,与此同时再把对应粉丝的收微博表添加一个数据,这个顺序通过版本来控制的,查看某一个用户或者查看自己的微博,通过最大值减去时间差得到的,时间排序两种方法。

假如只有粉丝关注用户表和微博表,登录之后查看首页,假如A用户登录查看,  A 关注了 C D ,把 C 用户和 D 用户发布的微博拿出来,先找到关注列表 C D,根据 c d id 把微博全部拿出来,C 发的微博是降序,D 发的微博也是降序。假如,C 2014年发布的微博,2015年又发布了一条,D 2013年发布一条,2016年又发布一条,本身这个数据存储的时候是个降序,2015在前,2014在后边,D 2016在前,2013在后,把这两组数据都拿出来,这个集合里边的微博顺序就乱了。

在现实场景当中,刚注册一个微博发了一条,平时也关注了其他用户,客户端还要做一次排序,这样设计并不合理,所以加了收微博表。

相关实践学习
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
相关文章
|
6月前
|
机器学习/深度学习 分布式计算 Hadoop
一种HBase表数据迁移方法的优化
一种HBase表数据迁移方法的优化
91 0
|
6月前
|
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的映射关系。
57 3
实现HBase表和RDB表的转化(附Java源码资源)
|
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 Shell
分布式数据库HBase的常用操作的基本Shell命令的表操作
HBase是一个分布式数据库系统,支持高性能、可伸缩、实时的数据存储和处理。在HBase中,我们可以使用Shell命令来进行常用的操作,如创建表、插入数据、查询数据、更新数据等。本文将介绍关于分布式数据库HBase的常用操作基本Shell命令的表操作。
253 0
|
存储 搜索推荐 Java
如何基于 HBase 构建图片、视频数据的统一存储检索方案|学习笔记
快速学习如何基于 HBase 构建图片、视频数据的统一存储检索方案
如何基于 HBase 构建图片、视频数据的统一存储检索方案|学习笔记
|
SQL 缓存 分布式计算
HBase查询一张表的数据条数的方法
HBase查询一张表的数据条数的方法
1016 0
HBase查询一张表的数据条数的方法
|
分布式数据库 索引 Hbase
《HBase应用与发展之HBase RowKey与索引设计》电子版地址
HBase应用与发展之HBase RowKey与索引设计
122 0
《HBase应用与发展之HBase RowKey与索引设计》电子版地址
|
分布式数据库 Hbase
|
分布式数据库 Hbase