重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
一般将NoSQL数据库分为四大类:键值(Key-Value)存储数据库、列存储数据库、文档型数据库和图形(Graph)数据库。它们的数据模型、优缺点、典型应用场景。
十多年的广河网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。成都全网营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整广河建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。成都创新互联从事“广河网站设计”,“广河网站推广”以来,每个客户项目都认真落实执行。
键值(Key-Value)存储数据库Key指向Value的键值对,通常用hash表来实现查找速度快数据无结构化(通常只被当作字符串或者二进制数据)内容缓存,主要用于处理大量数据的高访问负载,也用于一些日志系统等。
列存储数据库,以列簇式存储,将同一列数据存在一起查找速度快,可扩展性强,更容易进行分布式扩展功能相对局限分布式的文件系统。
文档型数据库,Key-Value对应的键值对,Value为结构化数据,数据结构要求不严格,表结构可变(不需要像关系型数据库一样需预先定义表结构),查询性能不高,而且缺乏统一的查询语法,Web应用。
图形(Graph)数据库,图结构,利用图结构相关算法(如最短路径寻址,N度关系查找等),很多时候需要对整个图做计算才能得出需要的信息,而且这种结构不太好做分布式的集群方案,社交网络,推荐系统等。
2. 什么是NoSQL?
2.1 NoSQL 概述
NoSQL(NoSQL = Not Only SQL ),意即“不仅仅是SQL”,
泛指非关系型的数据库。随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题,包括超大规模数据的存储。
(例如谷歌或Facebook每天为他们的用户收集万亿比特的数据)。这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展。
2.2 NoSQL代表
MongDB、 Redis、Memcache
3. 关系型数据库与NoSQL的区别?
3.1 RDBMS
高度组织化结构化数据
结构化查询语言(SQL)
数据和关系都存储在单独的表中。
数据操纵语言,数据定义语言
严格的一致性
基础事务
ACID
关系型数据库遵循ACID规则
事务在英文中是transaction,和现实世界中的交易很类似,它有如下四个特性:
A (Atomicity) 原子性
原子性很容易理解,也就是说事务里的所有操作要么全部做完,要么都不做,事务成功的条件是事务里的所有操作都成功,只要有一个操作失败,整个事务就失败,需要回滚。比如银行转账,从A账户转100元至B账户,分为两个步骤:1)从A账户取100元;2)存入100元至B账户。这两步要么一起完成,要么一起不完成,如果只完成第一步,第二步失败,钱会莫名其妙少了100元。
C (Consistency) 一致性
一致性也比较容易理解,也就是说数据库要一直处于一致的状态,事务的运行不会改变数据库原本的一致性约束。
I (Isolation) 独立性
所谓的独立性是指并发的事务之间不会互相影响,如果一个事务要访问的数据正在被另外一个事务修改,只要另外一个事务未提交,它所访问的数据就不受未提交事务的影响。比如现有有个交易是从A账户转100元至B账户,在这个交易还未完成的情况下,如果此时B查询自己的账户,是看不到新增加的100元的
D (Durability) 持久性
持久性是指一旦事务提交后,它所做的修改将会永久的保存在数据库上,即使出现宕机也不会丢失。
3.2 NoSQL
代表着不仅仅是SQL
没有声明性查询语言
没有预定义的模式
键 - 值对存储,列存储,文档存储,图形数据库
最终一致性,而非ACID属性
非结构化和不可预知的数据
CAP定理
高性能,高可用性和可伸缩性
分布式数据库中的CAP原理(了解)
CAP定理:
Consistency(一致性), 数据一致更新,所有数据变动都是同步的
Availability(可用性), 好的响应性能
Partition tolerance(分区容错性) 可靠性
P: 系统中任意信息的丢失或失败不会影响系统的继续运作。
定理:任何分布式系统只可同时满足二点,没法三者兼顾。
CAP理论的核心是:一个分布式系统不可能同时很好的满足一致性,可用性和分区容错性这三个需求,
因此,根据 CAP 原理将 NoSQL 数据库分成了满足 CA 原则、满足 CP 原则和满足 AP 原则三 大类:
CA - 单点集群,满足一致性,可用性的系统,通常在可扩展性上不太强大。
CP - 满足一致性,分区容忍性的系统,通常性能不是特别高。
AP - 满足可用性,分区容忍性的系统,通常可能对一致性要求低一些。
CAP理论就是说在分布式存储系统中,最多只能实现上面的两点。
而由于当前的网络硬件肯定会出现延迟丢包等问题,所以分区容忍性是我们必须需要实现的。
所以我们只能在一致性和可用性之间进行权衡,没有NoSQL系统能同时保证这三点。
说明:C:强一致性 A:高可用性 P:分布式容忍性
举例:
CA:传统Oracle数据库
AP:大多数网站架构的选择
CP:Redis、Mongodb
注意:分布式架构的时候必须做出取舍。
一致性和可用性之间取一个平衡。多余大多数web应用,其实并不需要强一致性。
因此牺牲C换取P,这是目前分布式数据库产品的方向。
4. 当下NoSQL的经典应用
当下的应用是 SQL 与 NoSQL 一起使用的。
代表项目:阿里巴巴商品信息的存放。
去 IOE 化。
ps:I 是指 IBM 的小型机,很贵的,好像好几万一台;O 是指 Oracle 数据库,也很贵的,好几万呢;M 是指 EMC 的存储设备,也很贵的。
难点:
数据类型多样性。
数据源多样性和变化重构。
数据源改造而服务平台不需要大面积重构。
Web1.0的时代,数据访问量很有限,用一夫当关的高性能的单点服务器可以解决大部分问题。
随着Web2.0的时代的到来,用户访问量大幅度提升,同时产生了大量的用户数据。加上后来的智能移动设备的普及,所有的互联网平台都面临了巨大的性能挑战。
NoSQL(NoSQL = Not Only SQL ),意即“不仅仅是SQL”,泛指非关系型的数据库。
NoSQL 不依赖业务逻辑方式存储,而以简单的key-value模式存储。因此大大的增加了数据库的扩展能力。
Memcache Memcache Redis Redis MongoDB MongoDB 列式数据库 列式数据库 Hbase Hbase
HBase是Hadoop项目中的数据库。它用于需要对大量的数据进行随机、实时的读写操作的场景中。
HBase的目标就是处理数据量非常庞大的表,可以用普通的计算机处理超过10亿行数据,还可处理有数百万列元素的数据表。
Cassandra Cassandra
Apache Cassandra是一款免费的开源NoSQL数据库,其设计目的在于管理由大量商用服务器构建起来的庞大集群上的海量数据集(数据量通常达到PB级别)。在众多显著特性当中,Cassandra最为卓越的长处是对写入及读取操作进行规模调整,而且其不强调主集群的设计思路能够以相对直观的方式简化各集群的创建与扩展流程。
主要应用:社会关系,公共交通网络,地图及网络拓谱(n*(n-1)/2)
目前存储海量数据的技术主要包括NoSQL、分布式文件系统、和传统关系型数据库。随着互联网行业不断的发展,产生的数据量越来越多,并且这些数据的特点是半结构化和非结构化,数据很可能是不精确的,易变的。这样传统关系型数据库就无法发挥它的优势。因此,目前互联网行业偏向于使用NoSQL和分布式文件系统来存储海量数据。
下面介绍下常用的NoSQL和分布式文件系统。
NoSQL
互联网行业常用的NoSQL有:HBase、MongoDB、Couchbase、LevelDB。
HBase是Apache Hadoop的子项目,理论依据为Google论文 Bigtable: A Distributed Storage System for Structured Data开发的。HBase适合存储半结构化或非结构化的数据。HBase的数据模型是稀疏的、分布式的、持久稳固的多维map。HBase也有行和列的概念,这是与RDBMS相同的地方,但却又不同。HBase底层采用HDFS作为文件系统,具有高可靠性、高性能。
MongoDB是一种支持高性能数据存储的开源文档型数据库。支持嵌入式数据模型以减少对数据库系统的I/O、利用索引实现快速查询,并且嵌入式文档和集合也支持索引,它复制能力被称作复制集(replica set),提供了自动的故障迁移和数据冗余。MongoDB的分片策略将数据分布在服务器集群上。
Couchbase这种NoSQL有三个重要的组件:Couchbase服务器、Couchbase Gateway、Couchbase Lite。Couchbase服务器,支持横向扩展,面向文档的数据库,支持键值操作,类似于SQL查询和内置的全文搜索;Couchbase Gateway提供了用于RESTful和流式访问数据的应用层API。Couchbase Lite是一款面向移动设备和“边缘”系统的嵌入式数据库。Couchbase支持千万级海量数据存储
分布式文件系统
如果针对单个大文件,譬如超过100MB的文件,使用NoSQL存储就不适当了。使用分布式文件系统的优势在于,分布式文件系统隔离底层数据存储和分布的细节,展示给用户的是一个统一的逻辑视图。常用的分布式文件系统有Google File System、HDFS、MooseFS、Ceph、GlusterFS、Lustre等。
相比过去打电话、发短信、用彩铃的“老三样”,移动互联网的发展使得人们可以随时随地通过刷微博、看视频、微信聊天、浏览网页、地图导航、网上购物、外卖订餐等,这些业务的海量数据都构建在大规模网络云资源池之上。当14亿中国人把衣食住行搬上移动互联网的同时,也给网络云资源池带来巨大业务挑战。
首先,用户需求动态变化,传统业务流量主要是端到端模式,较为稳定;而互联网流量易受热点内容牵引,数据流量流向复杂和规模多变:比如双十一购物狂潮,电商平台订单创建峰值达到58.3万笔,要求通信网络提供高并发支持;又如优酷春节期间有超过23亿人次上网刷剧、抖音拜年短视频增长超10倍,需要通信网络能够灵活扩充带宽。面对用户动态多变的需求,通信网络需要具备快速洞察和响应用户需求的能力,提供高效、弹性、智能的数据服务。
“随着通信网络管道十倍百倍加粗、节点数从千万级逐渐跃升至百亿千亿级,如何‘接得住、存得下’海量数据,成为网络云资源池建设面临的巨大考验”,李辉表示。一直以来,作为新数据存储首倡者和引领者,浪潮存储携手通信行业用户,不断 探索 提速通信网络云基础设施的各种姿势。
早在2018年,浪潮存储就参与了通信行业基础设施建设,四年内累计交付约5000套存储产品,涵盖全闪存储、高端存储、分布式存储等明星产品。其中在网络云建设中,浪潮存储已连续两年两次中标全球最大的NFV网络云项目,其中在网络云二期建设中,浪潮存储提供数千节点,为上层网元、应用提供高效数据服务。在最新的NFV三期项目中,浪潮存储也已中标。
能够与通信用户在网络云建设中多次握手,背后是浪潮存储的持续技术投入与创新。浪潮存储6年内投入超30亿研发经费,开发了业界首个“多合一”极简架构的浪潮并行融合存储系统。此存储系统能够统筹管理数千个节点,实现性能、容量线性扩展;同时基于浪潮iTurbo智能加速引擎的智能IO均衡、智能资源调度、智能元数据管理等功能,与自研NVMe SSD闪存盘进行系统级别联调优化,让百万级IO均衡落盘且路径更短,将存储系统性能发挥到极致。
“为了确保全球最大规模的网络云正常上线运行,我们联合用户对存储集群展开了长达数月的魔鬼测试”,浪潮存储工程师表示。网络云的IO以虚拟机数据和上层应用数据为主,浪潮按照每个存储集群支持15000台虚机进行配置,分别对单卷随机读写、顺序写、混合读写以及全系统随机读写的IO、带宽、时延等指标进行了360无死角测试,达到了通信用户提出的单卷、系统性能不低于4万和12万IOPS、时延小于3ms的要求,产品成熟度得到了验证。
以通信行业为例,2020年全国移动互联网接入流量1656亿GB,相当于中国14亿人每人消耗118GB数据;其中春节期间,移动互联网更是创下7天消耗36亿GB数据流量的记录,还“捎带”打了548亿分钟电话、发送212亿条短信……海量实时数据洪流,在网络云资源池(NFV)支撑下收放自如,其中分布式存储平台发挥了作用。如此样板工程,其巨大示范及拉动作用不言而喻。