Hadoop基础教程-第10章 HBase:Hadoop数据库(10.1 NoSQL介绍)(草稿)

第10章 HBase:Hadoop数据库

10.1 NoSQL介绍

10.1.1 NoSQL简介

随着互联网技术(互联网+,物联网)发展,特别是大数据时代到来,我们需要存储处理更多数据,这种需求远远超出传统关系型数据库的存储和处理能力。 为了应对这种情形,我们需要不停的扩展。扩展分为两类:一种是纵向扩展,即购买更好的机器,更多的磁盘、更多的内存等等;另一种是横向扩展,即购买更多的机器组成集群。在巨大的规模下,纵向扩展发挥的作用并不是很大。首先单机器性能提升需要巨额的开销并且有着性能的上限,永远不可能使用一台机器支撑所有的负载。鉴于这种情况,我们需要新的数据库,因为关系数据库并不能很好的运行在集群上。不错你也可能会去搭建关系数据库集群,但是他们使用的是共享存储,这并不是我们想要的类型。于是就有了以Google、Facebook、Amazon这些试图处理更多传输所引领的NoSQL纪元。

NoSQL(NoSQL = Not Only SQL ),意即“不仅仅是SQL”,是一项全新的数据库革命性运动。

NoSQL数据库的四大分类: (1)键值数据库。键值数据库就像在传统语言中使用的哈希表。你可以通过key来添加、查询或者删除数据,鉴于使用主键访问,所以会获得不错的性能及扩展性。代表产品Redis。 (2)列数据库。列存储数据库将数据储存在列族(column family)中,一个列族存储经常被一起查询的相关数据。代表产品HBase。 (3)文档型数据库。面向文档数据库会将数据以文档的形式储存。每个文档都是自包含的数据单元,是一系列数据项的集合。代表产品MongoDB。 (4)图数据库。图数据库允许我们将数据以图的方式储存。实体会被作为顶点,而实体之间的关系则会被作为边。代表产品Neo4J。

10.1.2 列数据库

列数据库,可称为列式数据库、列存储数据库。列数据库是以列相关存储架构进行数据存储的数据库,主要适合于批量数据处理和即时查询。相对应的是行式数据库,数据以行相关的存储体系架构进行空间分配,主要适合于大批量的数据处理,常用于联机事务型数据处理。

从上图可以很清楚地看到,行式存储下一张表的数据都是放在一起的,但列式存储下都被分开保存了。

优缺点

行式存储

列式存储

优点

数据被保存在一起INSERT/UPDATE容易

查询时只有涉及到的列会被读取;投影(projection)很高效;任何列都能作为索引

缺点

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

选择完成时,被选择的列要重新组装INSERT/UPDATE比较麻烦

10.2.2 HBase简介

Google公司的三大论文:Google File System(GFS)被设计成了HDFS,Google-MapReduce被设计出了MapReduce,而第3篇论文Google-Bigtable被设计成了HBase。由此可见HBase在大数据领域的重要性。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏数据和云

Oracle智能之SQL诊断:SQL Tuning Advisor推荐执行计划

编辑手记:在前一段,一篇智能数据库优化的论文引起广泛的关注,其实在 Oracle 数据库中,已经引入了大量自动化和智能化的方法去进行自动调节,包括在 SQL 层...

2795
来自专栏Hadoop数据仓库

HAWQ取代传统数仓实践(六)——增加列

        业务的扩展或变化是不可避免的,尤其像互联网行业,需求变更已经成为常态,唯一不变的就是变化本身,其中最常碰到的扩展是给一个已经存在的表曾加列。  ...

2268
来自专栏代码世界

初识数据库

一、数据库概念 数据库(Database,简称DB)   数据库技术是计算机应用领域中非常重要的技术,它产生于20世纪60年代末,是数据管理的最新技术,也是软件...

3417
来自专栏Java职业技术分享

Java纯干货——poi技术读取Excel数据到MySQL

这篇blog是介绍java中的poi技术读取Excel数据,然后保存到MySQL数据中。

510
来自专栏沃趣科技

Oracle数据库12cR2版本的SQL计划管理

文章翻译自ORACLE WHITE PAPER SQL Plan Management with Oracle Database 12c Release 2 概...

33810
来自专栏魏琼东

DotNET企业架构应用实践-数据库表记录的唯一性设计的设计兼议主键设定原则

简要介绍          在我们进行数据库设计的时候,大家都会考虑到数据表主键的设计,而可能没有人去关注记录唯一性字段设计,或者说,很多开发人员把这两种混合在...

1745
来自专栏数据和云

拨云见日—深入解析Oracle TX 行锁(上)

Balance is the only key to optimize. 平衡是性能优化的核心标准。 在刚刚过去不久的第七届数据技术嘉年华上,性能优化专家怀晓明...

3489
来自专栏木可大大

数据库逻辑设计

针对这个问题,我们怎么破呢?我们对上面这个表拆分为3个表:学生表、课程表、学生课程关系表。其中,学生表和课程表只有一个主键,而学生课程关系表有一个复合主键(学生...

56711
来自专栏杨建荣的学习笔记

每秒执行6000的简单SQL优化(一)(r10笔记第62天)

最近看到一个系统的负载比较高,引起了我的注意,查看AWR报告发现,竟然是因为两条很简单的SQL语句导致。 语句有多简单呢,就是下面的两个SQL语...

33510
来自专栏java架构学习交流

java 面试,java 后端面试,数据库方面对初级和高级程序员的要求

本内容摘自 java web轻量级开发面试教程 对于合格的程序员,需要有基本的数据库操作技能,具体体现在以下三个方面。 l  第一,针对一类数据库(比如MySQ...

2067

扫码关注云+社区