hbase实战——(1.1 nosql介绍)

本文涉及的产品
云原生数据库 PolarDB MySQL 版,通用型 2核8GB 50GB
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
简介:

什么是nosql

NoSQL(NoSQL = Not Only SQL),意思是不仅仅是SQL的扩展,一般指的是非关系型的数据库。

随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,传统的电信行业动辍就千万甚至上亿的数据,甚至有客户提出需要存储相关的日志数据50年以上,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。

关系型数据库难以克服的问题:

  • 不能很好处理对数据库高并发读写的需求
  • 不能很好处理对海量数据的高效率存储和访问的需求
  • 不能很好处理对数据库的高可扩展性和高可用性的需求

为什么使用nosql

SQL语言和关系型数据库(MySQL、PostgreSQL、Oracle等)是通用的数据解决方案,占有绝大多数的市场。但是就像上面提到的,它有很多难以解决的问题。不过在最近兴起的NoSQL运动中,涌现出一批具备高可用性、支持线性扩展、支持Map/Reduce操作等特性的数据产品,它们具有如下特性:

  • 频繁的写入操作、相对较少的读取统计信息的操作
  • 海量数据(如数据仓库中需要分析的数据)适合存储在一个结构松散、分布式的文件存储系统中
  • 存储二进制文件(如mp3或者pdf文档)并且能够直接为用户的浏览器提供下载功能

使用这些数据产品并不是要取代原有的数据产品,而是为不同的应用场景提供更多的选择。也就是说,在一些特定的情况下如果是关系型的数据库解决不了的问题,那么就可以考虑使用nosql,而不是说完全将应用移植到nosql上,毕竟适合才是最好的。

现在流行的nosql

下面对现在的nosql进行了整理,其中包括各种nosql的官方网站。

15个nosql数据库

HBase是什么

HBase是Apache Hadoop中的一个子项目,Hbase依托于Hadoop的HDFS作为最基本存储基础单元,通过使用hadoop的DFS工具就可以看到这些这些数据 存储文件夹的结构,还可以通过Map/Reduce的框架(算法)对HBase进行操作,如下图所示:

HBase在产品中还包含了Jetty,在HBase启动时采用嵌入式的方式来启动Jetty,因此可以通过web界面对HBase进行管理和查看当前运行的一些状态,非常轻巧方便。

HBase是Apache Hadoop中的一个子项目,现已成为Apache的顶级项目。

HBase是Google Bigtable(基于Google File System)的开源山寨版本。

为什么采用HBase

HBase 不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库.所谓非结构化数据存储就是说HBase是基于列的而不是基于行的模式,这样方便读写你的大数据内容。

HBase是介于Map Entry(key & value)和DB Row之间的一种数据存储方式。就点有点类似于现在流行的Memcache,但不仅仅是简单的一个key对应一个 value,你很可能需要存储多个属性的数据结构,但没有传统数据库表中那么多的关联关系,这就是所谓的松散数据。

简单来说,你在HBase中的表创建的可以看做是一张很大的表,而这个表的属性可以根据需求去动态增加,在HBase中没有表与表之间关联查询。你只需要 告诉你的数据存储到Hbase的那个column families 就可以了,不需要指定它的具体类型:char,varchar,int,tinyint,text等等。但是你需要注意HBase中不包含事务此类的功能。

Apache HBase 和Google Bigtable 有非常相似的地方,一个数据行拥有一个可选择的键和任意数量的列。表是疏松的存储的,因此用户可以给行定义各种不同的列,对于这样的功能在大项目中非常实用,可以简化设计和升级的成本。

HBase的存储结构

HBase 是基于列的数据库,让我们看一下关系型数据库和hbase数据库存储的对比。

行式存储和列式存储对比:

行式存储

  • 数据是按行存储的
  • 没有索引的查询使用大量I/O
  • 建立索引和物化视图需要花费大量时间和资源
  • 面对查询的需求,数据库必须被大量膨胀才能满足性能要求

列式存储

数据按列存储——每一列单独存放

数据即是索引

只访问查涉及的列——大量降低系统IO

每一列由一个线索来处理——查询的并发处理

数据类型一致,数据特征相似——高效压缩

HBase与关系型数据库的对比

HBase 是基于

下面的表格中hbase和RDBMS的对比关系

 

HBase

RDBMS

数据类型

只有字符串

丰富的数据类型

数据操作

简单的增删改查

各种各样的函数,表连接

存储模式

基于列存储

基于表格结构和行存储

数据保护

更新后旧版本仍然会保留

替换

可伸缩性

轻易的进行增加节点,兼容性高

需要中间层,牺牲功能


目录
相关文章
|
存储 分布式计算 大数据
HBase分布式数据库关键技术与实战:面试经验与必备知识点解析
【4月更文挑战第9天】本文深入剖析了HBase的核心技术,包括数据模型、分布式架构、访问模式和一致性保证,并探讨了其实战应用,如大规模数据存储、实时数据分析及与Hadoop、Spark集成。同时,分享了面试经验,对比了HBase与其他数据库的差异,提出了应对挑战的解决方案,展望了HBase的未来趋势。通过Java API代码示例,帮助读者巩固理解。全面了解和掌握HBase,能为面试和实际工作中的大数据处理提供坚实基础。
652 3
|
分布式计算 大数据 分布式数据库
"揭秘HBase MapReduce高效数据处理秘诀:四步实战攻略,让你轻松玩转大数据分析!"
【8月更文挑战第17天】大数据时代,HBase以高性能、可扩展性成为关键的数据存储解决方案。结合MapReduce分布式计算框架,能高效处理HBase中的大规模数据。本文通过实例展示如何配置HBase集群、编写Map和Reduce函数,以及运行MapReduce作业来计算HBase某列的平均值。此过程不仅限于简单的统计分析,还可扩展至更复杂的数据处理任务,为企业提供强有力的大数据技术支持。
206 1
|
存储 NoSQL 分布式数据库
【HBase入门与实战】一文搞懂HBase!
该文档介绍了HBase,一种高吞吐量的NoSQL数据库,适合处理大规模数据。HBase具备快速读写、列式存储和天然支持集群部署的特点,常用于高并发场景。NoSQL与关系型数据库的主要区别在于数据模型、查询语言和可伸缩性。HBase的物理架构包括Client、Zookeeper、HMaster和RegionServer,其中RegionServer管理数据存储。HBase的读写流程利用MemStore和Bloom Filter提高效率。此外,文档还提到了HBase的应用,如时间序列数据、消息传递和内容服务。
2697 1
【HBase入门与实战】一文搞懂HBase!
|
存储 NoSQL Java
HBase是一个开源的、分布式的、面向列的NoSQL数据库系统
HBase是一个开源的、分布式的、面向列的NoSQL数据库系统
252 0
|
SQL 分布式数据库 HIVE
分布式NoSQL列存储数据库Hbase(六)
分布式NoSQL列存储数据库Hbase(六)
143 0
|
存储 NoSQL 分布式数据库
分布式NoSQL列存储数据库Hbase(一)Hbase的功能与应用场景、基本设计思想
分布式NoSQL列存储数据库Hbase(一)Hbase的功能与应用场景、基本设计思想
709 0
|
缓存 分布式计算 NoSQL
分布式NoSQL列存储数据库Hbase_MR集成Hbase:读写Hbase规则(九)
分布式NoSQL列存储数据库Hbase_MR集成Hbase:读写Hbase规则(九)
127 0
|
NoSQL 分布式数据库 数据库
分布式NoSQL列存储数据库Hbase_列族的设计(五)
分布式NoSQL列存储数据库Hbase_列族的设计(五)
375 0
|
存储 NoSQL 分布式数据库
分布式NoSQL列存储数据库Hbase_高级思想(八)
分布式NoSQL列存储数据库Hbase_高级思想(八)
112 0
|
存储 NoSQL 分布式数据库
分布式NoSQL列存储数据库Hbase Java API(四)
分布式NoSQL列存储数据库Hbase Java API(四)
121 0