mysql与hbase应用场景对比

Hbase和MySQL的区别是什么? MySQL + HBase是我们日常应用中常用的两个数据库,分别解决应用的在线事务问题和大数据场景的海量存储问题。 # 从架构对比看差异 相比MySQL,HBase的架构特点: 1.完全分布式(数据分片、故障自恢复) 2.底层使用HDFS(存储计算分离)。 由架构看到的能力差异: 1. MySQL:运维简单(组件少)、延时低(访问路径短) 2.HBase:扩展性好、内置容错恢复与数据冗余 #从引擎结构看差异 相比MySQL,HBase... 阅读详情

当我们对于数据结构字段不够确定或杂乱无章很难按一个概念去进行抽取的数据适合用使用什么数据库?答案是什么,如果我们使用的传统数据库,肯定留有多余的字段,10个不行,20个,但是这个严重影响了质量。并且如果面对大数据库,pt级别的数据,这种浪费更是严重的,那么我们该使用是什么数据库?hbase数个不错的选择,那么我们对于hbase还存在下列问题:

1.Column Family代表什么?
2.HBase通过row和column确定一份数据,这份数据的值可能有多个版本,为什么会存在多个版本?
3.查询的时候会显示那个版本?
4.它们的存储类型是什么?
5.tableName是什么类型?
6.RowKey 和 ColumnName是什么类型?
7.Timestamp 是什么类型?

8.value 是什么类型?

带着以上几个问题去读下面内容:

引言

团队中使用HBase的项目多了起来,对于业务人员而言,通常并不需要从头搭建、维护一套HBase的集群环境,对于其架构细节也不一定要深刻理解(交由HBase集群维护团队负责),迫切需要的是快速理解基本技术来解决业务问题。最近在XX项目轮岗过程中,尝试着从业务人员视角去看HBase,将一些过程记录下来,期望对快速了解HBase、掌握相关技术来开展工作的业务人员有点帮助。我觉得作为一个初次接触HBase的业务开发测试人员,他需要迫切掌握的至少包含以下几点:
深入理解HTable,掌握如何结合业务设计高性能的HTable

掌握与HBase的交互,反正是离不开数据的增删改查,通过HBase Shell命令及Java Api都是需要的

掌握如何用MapReduce分析HBase里的数据,HBase里的数据总要分析的,用MapReduce是其中一种方式

掌握如何测试HBase MapReduce,总不能光写不管正确性吧,debug是需要的吧,看看如何在本机单测debug吧



本系列将围绕以上几点展开,篇幅较长,如果是HBase初学者建议边读边练,对于HBase比较熟练的,可以选读下,比如关注下HBase的MapReduce及其测试方法。

从一个示例说起

传统的关系型数据库想必大家都不陌生,我们将以一个简单的例子来说明使用RDBMS和HBase各自的解决方式及优缺点。
以博文为例,RDBMS的表设计如下:

 

 

为了方便理解,我们以一些数据示例下
 

 

上面的例子,我们用HBase可以按以下方式设计
 

 

同样为了方便理解,我们以一些数据示例下,同时用红色标出了一些关键概念,后面会解释
 

 


HTable一些基本概念

Row key

行主键, HBase不支持条件查询和Order by等查询,读取记录只能按Row key(及其range)或全表扫描,因此Row key需要根据业务来设计以利用其存储排序特性(Table按Row key字典序排序如1,10,100,11,2)提高性能。

Column Family(列族)

在表创建时声明,每个Column Family为一个存储单元。在上例中设计了一个HBase表blog,该表有两个列族:article和author。

Column(列)

HBase的每个列都属于一个列族,以列族名为前缀,如列article:title和article:content属于article列族,author:name和author:nickname属于author列族。
Column不用创建表时定义即可以动态新增,同一Column Family的Columns会群聚在一个存储单元上,并依Column key排序,因此设计时应将具有相同I/O特性的Column设计在一个Column Family上以提高性能。同时这里需要注意的是:这个列是可以增加和删除的,这和我们的传统数据库很大的区别。所以他适合非结构化数据。

Timestamp

HBase通过row和column确定一份数据,这份数据的值可能有多个版本,不同版本的值按照时间倒序排序,即最新的数据排在最前面,查询时默认返回最新版本。如上例中row key=1的author:nickname值有两个版本,分别为1317180070811对应的“一叶渡江”和1317180718830对应的“yedu”(对应到实际业务可以理解为在某时刻修改了nickname为yedu,但旧值仍然存在)。Timestamp默认为系统当前时间(精确到毫秒),也可以在写入数据时指定该值。
Value

每个值通过4个键唯一索引,tableName+RowKey+ColumnKey+Timestamp=>value,例如上例中{tableName=’blog’,RowKey=’1’,ColumnName=’author:nickname’,Timestamp=’ 1317180718830’}索引到的唯一值是“yedu”。

存储类型

TableName 是字符串
RowKey 和 ColumnName 是二进制值(Java 类型 byte[])
Timestamp 是一个 64 位整数(Java 类型 long)
value 是一个字节数组(Java类型 byte[])。


存储结构

可以简单的将HTable的存储结构理解为
 

 

即HTable按Row key自动排序,每个Row包含任意数量个Columns,Columns之间按Column key自动排序,每个Column包含任意数量个Values。理解该存储结构将有助于查询结果的迭代。

话说什么情况需要HBase

半结构化或非结构化数据

对于数据结构字段不够确定或杂乱无章很难按一个概念去进行抽取的数据适合用HBase。以上面的例子为例,当业务发展需要存储author的email,phone,address信息时RDBMS需要停机维护,而HBase支持动态增加.


记录非常稀疏

RDBMS的行有多少列是固定的,为null的列浪费了存储空间。而如上文提到的,HBase为null的Column不会被存储,这样既节省了空间又提高了读性能。


多版本数据

如上文提到的根据Row key和Column key定位到的Value可以有任意数量的版本值,因此对于需要存储变动历史记录的数据,用HBase就非常方便了。比如上例中的author的Address是会变动的,业务上一般只需要最新的值,但有时可能需要查询到历史值。


超大数据量

当数据量越来越大,RDBMS数据库撑不住了,就出现了读写分离策略,通过一个Master专门负责写操作,多个Slave负责读操作,服务器成本倍增。随着压力增加,Master撑不住了,这时就要分库了,把关联不大的数据分开部署,一些join查询不能用了,需要借助中间层。随着数据量的进一步增加,一个表的记录越来越大,查询就变得很慢,于是又得搞分表,比如按ID取模分成多个表以减少单个表的记录数。经历过这些事的人都知道过程是多么的折腾。采用HBase就简单了,只需要加机器即可,HBase会自动水平切分扩展,跟Hadoop的无缝集成保障了其数据可靠性(HDFS)和海量数据分析的高性能(MapReduce)。

深入浅出:MySQL与HBase的核心差异及适用场景解析 MySQL和HBase都是当前广泛应用的数据库系统,但它们的设计哲学、应用场景和性能特点有很大的差异。MySQL是一个关系型数据库管理系统(RDBMS),起源于1995年,由瑞典MySQL AB公司开发,后被Sun Microsystems收购,再后来被Oracle收购。它基于SQL(Structured Query Language)进行数据管理,具有成熟、稳定、易于学习和使用的特点,得到了广大企业和开发者的喜爱。而HBase则是一个开源的、分布式的、非关系型的数据库,设计用于处理大规模数据集。 阅读详情

相关推荐

HBase实战实例

hbase 实战 GISMaster

Hbase总结(五)-hbase常识及habse适合什么场景

当我们对于数据结构字段不够确定或杂乱无章很难按一个概念去进行抽取的数据适合用使用什么数据库?答案是什么,如果我们使用的传统数据库,肯定留有多余的字段,10个不行,20个,但是这个严重影响了质量。并且如果面对大数据库,pt级别的数据,这种浪费更是严重的,那么我们该使用是什么数据库?hbase数个不错的选择,那么我们对于hbase还存在下列问题: 1.Column Family代表什么?

codepython的专栏 1032

PCB板质量测试和PCB板

PCB板质量测试和板厂

weixin_51370842的博客 516

mysql和hbase应用场景对比

Hadoop是离线计算平台,其中包括分布式文件系统(HDFS)和分布式计算(MapReduce),这本身是无法对响应时间做保证的。但是目前在Hadoop之上的生态系统越来越完善,其中HBase就是支持海量数据、高并发的在线数据库,应对这种场景就非常适合。HBase在这次双十一中与MySQL等在线数据库共同作为线上库使用,承担了重要的责任,并创下了并在全天高压力之下无故障的佳绩。另外非Hadoop...

chmodzora的博客 6059

VMware虚拟机安装MS-DOS 7.10教程

dos安装教程dos版本7.10附下载链接。

Minecraft_xiaole的博客 1万+

PredFormer实战:用Transformer搞定交通流量预测(附TaxiBJ数据集代码)

本文详细介绍了如何利用PredFormer这一基于Transformer的先进模型进行交通流量预测,特别针对TaxiBJ数据集提供了完整的实战代码和优化策略。PredFormer通过门控Transformer块(GTB)的创新设计,在时空预测任务中展现出显著优势,相比传统方法将MSE降低33.1%,推理速度提升4.4倍。文章还涵盖了模型轻量化、部署优化等实用技巧,为智慧城市建设中的交通预测提供了高效解决方案。

weixin_29194817的博客 447

hbase加mysql的使用场景_HBase作为NoSQL数据库适用于哪些场景?

(1)海量数据场景表来形容,单表在千万以内级别的数据量,基本都是小数据,千万级别的数据量,最多只能说是中等数据量,MySQL搞一下分库分表,搞个两三台服务器,就可以轻松抗住千万级别的数据量的表了,每个表可能也就几万条数据了基于分库分表的中间件,mycat、sharding-sphere,都可以的,直接做一些路由什么的,就可以轻松搞定几千万级别的数据了,性能也是很高的假设几千万条数据是过去历史几年下...

weixin_35928736的博客 458

嵌入式SD/TF卡通用协议-SDIO协议

为了驱动SD卡,首先的第一步就是观察SD卡引脚接线情况,通常我们在画原理图时,都是使用的SD卡卡槽与MCU进行接线。SD卡可以使用SDIO协议和SPI协议进行通信,这里我们主要介绍SDIO协议。下图中的TF卡只是容量小一点的SD卡。以F1C100S为例,接线图如下所示:我们发现上图中的TF卡使用的协议为SDIO协议,主要有4根数据线,1根命令线,1根时钟线组合而成。为了驱动这个SD/TF卡我们就需要去了解SDIO协议的时序。

qq_1033275663的博客 3052

hbase查询性对比 mysql_mysql和hbase应用场景对比

在线QQ客服:1922638专业的SQL Server、MySQL数据库同步软件当我们不确定数据结构字段或混乱时,很难根据一个概念提取数据。什么数据库适合使用?答案是什么?如果使用传统数据库,则必须保留额外的字段,其中10个将不起作用,20个将无法正常工作,但这会严重影响质量。而且,如果面对大型数据库,pt级数据,这种浪费更加严重,那么我们应该使用哪个数据库? hbase有几个不错的选择,因此hb...

weixin_39961855的博客 275

OBS直播美颜全攻略:从插件下载到参数调校一站式指南

本文提供OBS直播美颜插件从下载安装到参数调校的一站式指南。详细介绍了如何安全获取并安装OBS美颜插件,重点讲解了在OBS中添加美颜滤镜的核心步骤,并分享了磨皮、肤色调整、细节增强等关键参数的实战调校技巧,帮助主播打造自然、专业的直播形象。

weixin_29197835的博客 329

黏菌算法(Slime Mould Algorithm,SMA)

这是一篇关于黏菌算法的总结博客,包含算法思想,算法步骤,求函数最值(Python实现),算法改进等,持续更新ing

weixin_46838605的博客 1万+

从MySQL到HBase:数据存储方案转型的演进

一、集群化方案1、MySQL应用的演化MySQL与HBase说到最核心的点,是一种数据存储方案。方案本身没有对错、没有好坏,只有合适与否。相信多数公司都与MySQL有着不解之缘,部分学校的课程甚至直接以SQL语言作为数据库讲解。我想借自身经历,先来谈谈MySQL应用的演化。只有MySQL笔者之前曾在一家O2O创业公司工作,公司所有数据都存储在同一个MySQL里,而且没有任何主备方案。相信这是很多初...

qq_42483967的博客 2374

Apache Flink连载(一):Apache Flink是什么?

Apache Flink 是一个框架和分布式处理引擎,用于在。

qq_32020645的博客 1216

hbase 删除列族下的某一列_给大家分享 HBase 初探:架构 + 原理 + 对比 + 实践

因为工作需要使用 HBase,因此调研了 HBase 相关的内容。本文的写作目的不仅仅是对前期工作的总结,也希望能帮助到工作繁忙但又想了解 HBase 的同学。在本文写作过程中,将穿插 MySQL 相关内容,希望能帮助理解 HBase 。本文主要讨论以下几个问题,所述内容仅为个人思考,见解有限,有误之处还望批评指正。HBase 是什么?其架构是怎样的?HBase 如何管理数据?HBase 是分布式...

weixin_39634237的博客 261

SAP ABAP 获取采购订单未清数量/在途库存的 6 种方式

这篇文章我总结了获取采购订单未清数量/在途库存的 6 种方式,每种方式的优劣势和适用场景有所不同。读者请结合自身需要选择。

SAP李斌,本人承诺所有原创文章均不使用任何AI生成技术,请大家放心阅读。 2667

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Hbase和MySQL的区别是什么?一文深度对比!

点击上方蓝色“石杉的架构笔记”,选择“设为星标” 回复“PDF”获取独家整理的学习资料!长按扫描上方一元购买来源:https://blog.youkuaiyun.com/weixin_4160593...

石杉的架构笔记 890

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

从原理到应用解释MYSQL和HBASE区别

HBase 是运行在 HDFS 之上的面相列 的数据库管理系统。注意 HBase 不是列式存储数据库,每一个列簇就是一个HFiel。有以下特点 ● 天然分布式,主从架构 ● NoSQL数据库,不支持事务,不支持sql ● 不支持二级索引,仅能通过主键(row key)和主键的 range 来检索数据。 ● 海量数据存储:支持随机CRUD,亿级数据秒级响应。

RuiHao-He的博客 2382

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

MySQL、HBase、ES的特点和区别

MySQL:关系型数据库,主要面向OLTP,支持事务,支持二级索引,支持sql,支持主从、Group Replication架构模型(本文全部以Innodb为例,不涉及别的存储引擎)。 HBase:基于HDFS,支持海量数据读写(尤其是写),支持上亿行、上百万列的,面向列的分布式NoSql数据库。天然分布式,主从架构,不支持事务,不支持二级索引,不支持sql。 Elas...

weixin_30430169的博客 241

redis,mysql,elasticsearch,hbase,hive对比区别,该如何选择

redis,mysql,elasticsearch,hbase,hive对比区别,该如何选择 https://blog.youkuaiyun.com/a790439710/article/details/103478694

sinat_28375239的博客 460

对比MySQL,一文看透HBase的能力及使用场景

MySQL + HBase 是我们日常应用中常用的两个数据库,分别解决应用的在线事务问题和大数据场景的海量存储问题。 本文内容适合初次理解HBase的读者,包括技术、功能及场景,也欢迎老司机们补充和温故。 附件下载:对比Mysql...

zhaowei121的博客 223

初识HBASE

一、hbase应用场景 海量数据存储,上百亿行×上百万列,关系型数据库一般最多30个列,单表五百万 准实时查询,上百亿行×上百万列情况百毫秒 上百万行数据没必要放在hbase 举例说明实际业务场景中的应用:交通GPS信息、移动电话信息、金融、电商 二、hbase的特点 容量大:hbase单表可以百亿行、百万列,数据矩阵横向和纵向亮给维度所支持的数据两级都非常具有弹性; ...

一点点进步 529

redis hbase MySQL_Redis、MySQL、Hive、Hbase的区别,数据库和数据仓库的区别

Redis、MySQL、Hive、Hbase的区别Redis:分布式缓存,强调缓存,基于内存,支持数据持久化,支持事务操作。MySQL:关系型数据库,注重关系和事务性。Hbase:列式数据库,字典查询,稀疏性存储,无法做关系数据库的主外键,用于存储海量数据,底层基于HDFSHive:数据仓库工具,底层是MapReduce。不是数据库,不能用来做用户的交互存储。HBase和Redis都是基于Key、...

weixin_29623317的博客 449

凡尔赛之---MySQL、HBase、ES的特点和区别

MySQL:关系型数据库,主要面向OLTP,支持事务,支持二级索引,支持sql,支持主从、Group Replication架构模型(本文全部以Innodb为例,不涉及别的存储引擎)。 HBase:基于HDFS,支持海量数据读写(尤其是写),支持上亿行、上百万列的,面向列的分布式NoSql数据库。天然分布式,主从架构,不支持事务,不支持二级索引,不支持sql。 ElasticSearch:ES是一款分布式的全文检索框架,底层基于Lucene实现,虽然ES也提供存储,检索功能,但我一直不认为ES.

GY的的专栏 744
上一篇: nosql对比
下一篇: HBase与HDFS数据互导
西游却冻醒
博客等级 码龄11年 47粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值