博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
NoSQL(Not only sql)基础简介
阅读量:4299 次
发布时间:2019-05-27

本文共 1256 字,大约阅读时间需要 4 分钟。

NoSQL是非关系型数据库

两者关系,HBase是NoSQL的一种。

 

NoSQL特性

1.Eventual  consistency(最终一致性):

写入数据库之后,

你不一定能马上读到刚写入的数据

但最终会保持一致。

 

2.  NoSQL数据库不怕数据冗余多副本,因为成本比较低。

而且这样查询很多数据就不需要join了,很多数据在一张表里就搞定了。

 

关系型数据库要避免数据冗余,成本会增加不少。

关系型数据库本身硬盘是特殊的,空间就已经很贵了,column可以用成char绝对不会用varchar。

 

NoSQL概念解释

1. CAP理论:

Consistency:数据一致性

Availability :服务可用性(7x24小时)

Partition Tolerance:分区容错性(不同机器上分布式部署后并行处理,

并可以进行灾难恢复。也就是某台机器上服务挂了,不影响整个系统的继续处理)

 

可以看到关系型数据库比较侧重于数据一致性(读写随时一致)和服务7x24小时可用

Nosql数据库就比较重视一致性和容灾,虽然不是强一致性,而是最终一致性

,对于服务7x24小时可用做的也没那么好。

HBase的Availability是通过zookeeper实现的,原生不支持,但是有方案。

 

2. 索引自己看吧,功能比较弱。

HBase要用到HDFS 

index一般建在主键上。

 

3. Nosql几种主流查询方式

(1)脚本语言,如js

(2)后面加了对sql语言的支持,但是优化器还没有,做的不是很好。不如hive。

(3)有些对mapreduce 代码也支持,所以mapreduce可以跨节点来计算。

 

4.Sharding(分片)

和hive partition是一个意思!!!

相当于把一个表,分布式存储在不同机器上,进而分布式查询。

 

5. 根据业务需求来选择Nosql产品

 

 

 

主要是四类:

(1)key-value store

最广泛但不是最流行,基于key-value。可以理解为一个大的hashmap table。

对数据结构schema没有特别要求。

产品如redis等。

数据的格式最大的特点是:都有一个key,比如说下图中row_id是key,其他列都是value。

 

(2)wide Column

和key-value方式唯一的区别就是宽列(column families / super column)。

Column famiilies就是一组column的集合,

以Hbase领衔,Google big table,Cassandra等。

更接近大数据的处理规模。

格式如下图所示,column families也就是多个supercolumn,supercolumn下还有column。

 

 

 

(3)Document Store(完全没听懂,但是不重要)

以mongoDB领衔

文档通常是json对象,本身就是一种schema。

(4)用于关系型分析,比如朋友网络如何建立的。

基于图的数据库分析会方便。

 

 

 

转载地址:http://fuvws.baihongyu.com/

你可能感兴趣的文章
ES相关度评分
查看>>
我们一起做一个可以商用的springboot脚手架
查看>>
idea在搭建ssm框架时mybatis整合问题 无法找到mapper
查看>>
java设计基本原则----单一职责原则
查看>>
HashMap的实现
查看>>
互斥锁 synchronized分析
查看>>
java等待-通知机制 synchronized和waity()的使用实践
查看>>
win10 Docke安装mysql8.0
查看>>
docker 启动已经停止的容器
查看>>
order by 排序原理及性能优化
查看>>
Lock重入锁
查看>>
docker安装 rabbitMq
查看>>
git 常用命令 入门
查看>>
linux安装docker
查看>>
关闭selinx nginx无法使用代理
查看>>
shell 脚本部署项目
查看>>
spring cloud zuul网关上传大文件
查看>>
springboot+mybatis日志显示SQL
查看>>
工作流中文乱码问题解决
查看>>
maven打包本地依赖包
查看>>