用户关系表 存储_列式存储-Apache HBase

news/2024/7/16 8:00:32

简介

HBase是一个基于HDFS的、分布式的、面向列(列族)的非关系型数据库(NOSQL)。

HBase的特点

1.海量数据存储,HBase表中的数据能够容纳上百亿行*上百万列。

2.面向列的存储,数据在表中是按照列进行存储的,能够动态的增加列并对列进行各种操作。

3.准实时查询,HBase在海量的数据量下能够接近准实时的查询(百毫秒以内)

4.多版本,HBase中每一列的数据都可以有多个版本。

5.可靠性,HBase中的数据存储于HDFS中且依赖于Zookeeper进行Master和RegionServer的协调管理。

HBase与关系型数据库的区别

1.HBase中的数据类型只有String,而关系型数据库中有char、varchar、int等。

2.HBase中只有普通的增删改查操作,没有表与表之间的连接、子查询等,若想要在HBase中进行复杂的操作则应该使用Phoenix。

3.HBase是基于列进行存储的,因此在查询指定列的数据时效率会很高,而关系型数据库是基于行存储,每次查询都要查询整行。

4.HBase适合海量数据存储,而关系型数据库一般一张表不超过500M,否则就要考虑分表操作。

5.HBase中为空的列不占用存储空间,表的设计可以非常稀疏,而关系型数据库中表的设计较谨密。

6.HBase不支持事务,而非关系型数据库支持事务。

7.HBase区分大小写,而SQL不区分大小写。

HBase的表结构

2a70a23c9fbb1d6c55f72086f0be433f.png

cd0bde29449b3c79f83bb525838db88d.png

*HBase中的表由RowKey、ColumnFamily(列族)、Column、Timestamp组成。

Timestamp:HBase中的每个键值对都有一个时间戳,在进行插入时由HBase进行自动赋值。

b6da024a284a67716de833f041265bee.png

2607aeb69f44325bc60712faabe99bed.png

架构

61f293c0b8ff2d1a30a0ff57beb16b15.png

Master

1.处理对【表】的添加、删除、查询等操作。

2.进行RegionServer的负载均衡(Region与RegionServer的分配)

3.在RegionServer宕机后负责RegionServer上的Region转移(通过WAL日志)

*Master失效仅会导致meta数据和表无法被修改,表中的数据仍然可以进行读取和写入。

RegionServer

1.处理对【表中数据】的添加、删除、修改、查询等操作。

2.维护Region并将Region中StoreFile写入到HDFS中。

3.当Region中的数据达到一定大小时进行Region的切分。

安装

af9268a44fe2430a5d4e1868f220631e.png

0c843a3484e4a7e1c3f5639ebe9d1a80.png

b6bdb539dae40a3fa65e4ea1c44ab66f.png

操作命令

9830124169cbc8c198db7a2d7c756e54.png

743c120fc4dfbfdb08b0233fcae7195a.png

HBase 与Hive

7c0067eaefa1330f021bd3cb719f1619.png

eb1bda03c3787d694095e6be431bfcff.png

案例

文章表(内容表)、用户关注与粉丝表(用户关系表)、用户发布文章表(收件箱表)

777ce0077e33facc4dbbcc444349b11d.png

参见:

HBase海量数据存储 - 辣鸡小篮子 - 博客园​www.cnblogs.com
59b60bb5e47ce00fd36a371743f30164.png
HBase官方文档_w3cschool​www.w3cschool.cn
63cf308fe4ea1bdfeab4b314e78bf364.png
HBase数据模型操作_w3cschool​www.w3cschool.cn
63cf308fe4ea1bdfeab4b314e78bf364.png

http://www.niftyadmin.cn/n/2851426.html

相关文章

Mysql 5.7 故障恢复处理记录

mysql 数据库是社会普遍认可的非常流行的数据库中间件之一,一套业务系统,数据库的维护也是至关重要的。 应某位网友的要求,我将MySQL 5.7出现故障的恢复的过程记录一下。 问题出现: 2020-05-19T11:48:11.883641Z 0 [ERROR] Inn…

了解XMLHTTP异步调用WebService

眼下AJAX炒的很火,它是javascript和xml的技术结合,异步交互、JavaScript脚本和XML封装数据是AJAX的三大特征。xmlhttp是ms几年前就有的技术了,近年也有不少相近的架构,上篇文章介绍了在客户端用脚本进行WebService调用&#xff0c…

北京大学陈斌教授 python_Python程序设计(胡新明)

Python [paɪθən] 语言,由Guido van Rossum大牛在1990年发明,它是当今世界最受欢迎的计算机编程语言,也是一门对大多数人“学了能用、学了有用、学会能久用”的计算生态语言。本课程的教学目的是使学生具备:通过 Python 程序设计…

ubuntu 18.04-desktop 安装ros 机器人开发环境——筑梦之路

ubuntu 18.04-desktop 安装ros 机器人开发环境需要注意的是这里要安装桌面版系统,ros会涉及到图形程序和建模百度百科的介绍:https://baike.baidu.com/item/ros/4710560?fraladdin#备份自带的软件源 sudo cp /etc/apt/sources.list /etc/apt/sources.l…

Oracle修改SQL语句带时间函数

update 表名 set timeto_date(2012-04-26 03:51:13,yyyy-MM-dd hh24:mi:ss) where id1

python plot label改字体_python – 如何在matplotlib图中更改xticks字体大小

参见英文答案 >Matplotlib make tick labels font size smaller 10个我有以下代码:axdf_pivoted.plot(figsize(30,15),linewidth5)plt.xticks( rotation45)plt.tick_params(labelsize 20)plt.xlabel(transaction_date, font…

php 图片 chunked,php下HTTP Response中的Chunked编码实现方法

进行Chunked编码传输的HTTP Response会在消息头部设置:Transfer-Encoding: chunked表示Content Body将用Chunked编码传输内容。Chunked编码使用若干个Chunk串连而成,由一个标明长度为0的chunk标示结束。每个Chunk分为头部和正文两部分,头部内…

android php get post request,yii2 的 request get post 基本用法 – 通用获取get/post请求

Get Post 基本用法1、普通的get和pst请求$request Yii::$app->request;$get $request->get();// equivalent to: $get $_GET;$id $request->get(id);// equivalent to: $id isset($_GET[id]) ? $_GET[id] : null;$id $request->get(id, 1);// equivalent to…