IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> NoSQL 学习笔记 -> 正文阅读

[大数据]NoSQL 学习笔记

1、含义

  • 非关系型数据库
  • Not Only SQL

2、理论学习

  • ACID规则
    • A (Atomicity) 原子性:事务里的所有操作要么全部做完,要么都不做,事务成功的条件是事务里的所有操作都成功,只要有一个操作失败,整个事务就失败,需要回滚
    • C (Consistency) 一致性:数据库要一直处于一致的状态,事务的运行不会改变数据库原本的一致性约束。
    • I (Isolation) 独立性:并发的事务之间不会互相影响,如果一个事务要访问的数据正在被另外一个事务修改,只要另外一个事务未提交,它所访问的数据就不受未提交事务的影响
    • D (Durability) 持久性:一旦事务提交后,它所做的修改将会永久的保存在数据库上,即使出现宕机也不会丢失
  • BASE
    • Basically Available:基本可用
    • Soft-state:软状态/柔性事务, “Soft state” 可以理解为"无连接"的,而 “Hard state” 是"面向连接"的
    • Eventually Consistency:最终一致性
    • BASE是NoSQL数据库通常对可用性及一致性的弱要求原则:
  • CAP
    • C(Consistency) 一致性:所有节点在同一时间具有相同的数据
    • A(Availability) 可用性:保证每个请求不管成功或者失败都有响应
    • P(Partition tolerance) 分隔容忍:系统中任意信息的丢失或失败不会影响系统的继续运作
    • CAP理论的核心是:一个分布式系统最多只能同时较好的满足两个
      根据 CAP 原理将 NoSQL 数据库分成了满足 CA 原则、满足 CP 原则和满足 AP 原则三 大类:
      • CA - 单点集群,满足一致性,可用性的系统,通常在可扩展性上不太强大。
      • CP - 满足一致性,分区容忍性的系统,通常性能不是特别高。
      • AP - 满足可用性,分区容忍性的系统,通常可能对一致性要求低一些。

3、RDBMS vs NoSQL
vs

4、分类

  • 键 - 值对存储,列存储,文档存储,图形数据库分类

5、NoSQL的优点/缺点

  • 优点:

    • 数据之间无关系,数据库结构简单,易扩展
    • 大数据量,高性能,具有非常搞的读写能力,NoSQL的Cache是记录级的 [ 一种细粒度的Cache ]
    • 灵活的数据模型,NoSQL无须事先为要存储的数据建立字段,随时可以存储自定义的数据格式
    • 高可用,NoSQL在不太影响性能的情况,就可以方便地实现高可用的架构,比如Cassandra、HBase模型
    • 解决大规模数据集合多重数据种类带来的挑战,特别是大数据应用难题
    • 分布式计算
    • 低成本
  • 缺点:

    • 没有标准化
    • 有限的查询功能(到目前为止)
    • 最终一致是不直观的程序

6、NoSQL 体系架构 [ 四层 ]

  • 数据持久层(data persistence):定义了数据的存储形式,主要包括基于内存、基于硬盘、内存和硬盘接口、订制可拔插四种形式。基于内存形式的数据存取速度最快,但可能会造成数据丢失。基于硬盘的数据存储可能保存很久,但存取速度较基于内存形式的慢。内存和硬盘相结合的形式,结合了前两种形式的优点,既保证了速度,又保证了数据不丢失。订制可拔插则保证了数据存取具有较高的灵活性。

  • 数据分布层(data distribution model):定义了数据是如何分布的,相对于关系型数据库,NoSQL可选的机制比较多,主要有三种形式:一是CAP支持,可用于水平扩展。二是多数据中心支持,可以保证在横跨多数据中心是也能够平稳运行。三是动态部署支持,可以在运行着的集群中动态地添加或删除节点。

  • 数据逻辑层(data logical model)表述了数据的逻辑表现形式,与关系型数据库相比,NoSQL在逻辑表现形式上相当灵活,主要有四种形式:一是键值模型,这种模型在表现形式上比较单一,但却有很强的扩展性。二是列式模型,这种模型相比于键值模型能够支持较为复杂的数据,但扩展性相对较差。三是文档模型,这种模型对于复杂数据的支持和扩展性都有很大优势。四是图模型,这种模型的使用场景不多,通常是基于图数据结构的数据定制的。

  • 接口层(interface):为上层应用提供了方便的数据调用接口,提供的选择远多于关系型数据库。接口层提供了五种选择:Rest,Thrift,Map/Reduce,Get/Put,特定语言API,使得应用程序和数据库的交互更加方便。

    NoSQL分层架构并不代表每个产品在每一层只有一种选择。相反,这种分层设计提供了很大的灵活性和兼容性,每种数据库在不同层面可以支持多种特性

7、适用场景编辑

  • 数据模型比较简单
  • 需要灵活性更强的IT系统
  • 对数据库性能要求较高
  • 不需要高度的数据一致性
  • 对于给定key,比较容易映射复杂值的环境

8、开源的NoSQL数据库软件

  • Membase
  • MongoDB

9、学习资料

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章           查看所有文章
加:2021-09-30 11:59:57  更:2021-09-30 12:02:29 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 23:02:00-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码