hadoop之HBase基础

什么是NoSQL

NoSQL:not only SQL,非关系想数据库
NoSQL是一个通用术语

  • 指不遵循传统RDBMS模型的数据库
  • 数据是非关系的,且不使用SQL作为主要查询语言
  • 解决数据库的可伸缩性和可用性问题
  • 不针对原子性或一致性问题

为什么使用NoSQL

互联网的发展,传统关系型数据库存在瓶颈

  • 高并发性
  • 高存储性
  • 高可用性
  • 高扩展性
  • 低成本

NoSQL和关系型数据库对比

主要有以下一些区别

 

对比NoSQL关系型数据库
常用数据库HBase、MongoDB、RedisOracle、DB2、MySQL
存储格式文档、键值对、图结构表格式、行和列
存储规范鼓励冗余规范性、避免重复
存储扩展横向扩展、分布式纵向扩展(横向扩展有限)
查询方式结构化查询语言SQL非结构化查询
事务不支持事务一致性支持事务
性能读写性能高读写性能差
成本简单易部署,开源,成本低成本高

 

NoSQL的特点

最终一致性
应用程序增加了维护一致性和处理事务等职责
冗余数据存储
NoSQL!=大数据

  • NoSQL产品是为了帮助解决大数据存储问题

  • 大数据不仅仅包含数据存储的问题

     Hadoop
     Kafka
     Spark,etc
    

    NoSQL基本概念

    三大基石

  • CAP、BASE、最终一致性
  • 数据库最多支持3个中的2个

  • Indexing(索引)、Query(查询)
    MapReduce
    Sharding

    三大基石(一)

    CAP理论

 Consistency(一致性)
 Availability(可用性)
 Partition Tolerance(分区容错性)
  • NoSQL不保证“ACID”

  • 提供“最终一致性”

三大基石(二)

BASE

  • Basically Availble(基本可用) 保证核心可用

  • Soft-state(软状态)  状态可以有一段时间不同步

  • Eventual Consistency(最终一致性)  系统经过一定时间后,数据最终能够达到一致的状态
     

核心思想是即使无法做到强一致性,但应用可以选择适合的方式达到最终一一致性

三大基石(三)

最终一致性

  • 最终结果保持一致性,而不是时时一致

  • 如账户余额,库存量等数据需强一致性

  • 如catalog等信息不需要强一致性

 Causal consistency(因果一致性)
 Read-your-writes consistency
 Session consistency

Indexing

Indexing(索引)

  • 大多数NoSQL是按key进行索引

  • 部分NoSQL允许二级索引

  • HBase使用HDFS,append-only

 批处理写入Logged
 重新创建并排序文件

Query

Query(查询)

  • 没有专门的查询语言,通常使用脚本语言查询
  • 有些开始支持SQL查询
  • 有些可以使用MapReduce代码查询

MapReduce

MapReduce

  • 不是Hadoop的MapReduce,概念相关
  • 可进行数据的处理查询

Sharding

Sharding(分片)

  • 一种分区模式

  • 可以复制分片   有利于灾难恢复

NoSQL分类

主要分为以下四类

 

分类举例典型应用场景
键值存储数据库(key-value)Redis,MemcacheDB,Voldemort内容缓存等
列存储数据库Cassandra, HBase应对分布式存储的海量数据
文档型数据库(DOCUMENT STORE)CouchDB, MongoDWeb应用(可看做键值数据库的升级版)
图数据库(GRAPH DB)Neo4J, InfoGrid, Infinite Graph社交网络,推荐系统等,专注于构建关系图谱

键值存储数据库(key-value)

通常用hash table来实现

  • 可以通过key来添加、查询或者删除数据

常应用于内容缓存

  • 存储用户信息,比如会话、配置文件、参数等

不适用场景

  • 需要事务支持场景

列存储数据库(Wide Column Store)

将数据储存在列簇

  • 一个列簇存储经常被一起查询的相关数据
  • 每一个列簇包含kv键值对的“列”,可以随行变化

应用于分布式数据存储与管理

优点

  • 查找速度快
  • 可扩展性强
  • 容易进行分布式扩展

文档型数据库(Document Store)

将数据以文档的形式存储

  • 文档通常为JSON对象,也可以使用XML

  • 每个文档都有属性和值

  • 值可以是简单数据类型或复杂数据类型   数组、到其他数据库中的文档的链接或子文档

应用

  • 存储、索引并管理面向文档的数据或类似的半结构化数据

优点

  • 数据结构要求不严格、表结构可变
  • 可以使用它储存不同的信息

图数据(Graph Databases)

将数据以图的方式储存
适用的场景

  • 在一些关系型强的数据中
  • 推荐引擎

 

NoSQL和BI、大数据的关系

BI(Business Intelligence):商务智能

  • 它是一套完整的解决方案
  • BI应用涉及模型,模型依赖于模式
  • BI主要支持标准SQL,对NoSQL支持弱于关系型数据库
    NoSQL和大数据相关性较高
  • 通常大数据场景采用列存储数据库
  • 如:HBase和Hadoop
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值