列式存储、行式存储

区别

如果按行式存储,可以看到,以行为单位,每行包含了很多列。存完了一行后,紧接着存放第二行。而列式存储,第一列存完后,存第二列,每一列有一个存储位置。每一列的数据存储在一起。

优缺点

行式存储

列式存储

优点

数据被保存在一起。

INSERT/UPDATE容易。

查询时只有涉及到的列会被读取。

任何列都能作为索引。

相同列的数据存放在一起,数据压缩容易。

列数可以很多

缺点

选择(Selection)时即使只涉及某几列,所有数据也都会被读取。

列数不能太多,一般不能超过30列。

选择完成时,被选择的列要重新组装。

INSERT/UPDATE比较麻烦。

OLTP & OLAP

OLTP:On-Line Transaction Processing(联机事务处理过程)。也称为面向交易的处理过程,其基本特征是前台接收的用户数据可以立即传送到计算中心进行处理,并在很短的时间内给出处理结果,是对用户操作快速响应的方式之一。

OLAP:On-Line Analytic Processing(联机分析处理过程)。OLAP是数据仓库系统的主要应用,支持复杂的分析操作,侧重决策支持,并且提供直观易懂的查询结果。

hbase的存储 hbase的存储方式面向行_数据

Hbase简介

Hbase是一个分布式的、面向列的开源数据库

Hbase数据模型

hbase的存储 hbase的存储方式面向行_hbase的存储_02

一个Table下有多行数据。

每行数据有一个RowKey作为主键,和这个主键对应的是一个一个的列族。

列族下面分成好多列。

每列下面有两个数据,一个是Timestamp,一个是Value。

Hbase架构

HBase主要的两个组成部分是HMaster、RegionServer。每个RegionServer中有一个一个的Region。

HBase的数据要保存到HDFS中,中间依赖一个组件叫DFSClient。

为了实现HBase的高可用,需要用到一个组件,叫Zookeeper,就是图中类似云朵那个图形。

左上角的地方即是客户端,即Client。

hbase的存储 hbase的存储方式面向行_hbase的存储_03

Hbase体系结构

HMaster,负责表和Region的管理工作

(1)管理用户对表结构的操作

(2)实现不同Region Server之间的负载均衡

(3)Region分裂或合并后,负责重新调整Region的分布。

(4)监控Region Server的工作状态,对发现故障失效的Region Server上的Region进行迁移。

RegionServer:

(1)维护HMaster分配给它的Region

(2)响应Client对Region的读写请求

(3)负责切分正在运行过程中变的过大的Region(Region分裂)

Zookeeper:

(1)保证集群中至少有一个HMaster处于运行状态

(2)存储HBase的schema、表元数据、Region的寻址入口

Hbase数据存储

hbase的存储 hbase的存储方式面向行_大数据_04