赞
踩
以下文字参考了:
知乎-大数据四大阵营之 OLTP 阵营(上)作者:XAI 嬴图
MySQL, Redis, MongoDB, ElasticSearch 都属于 QLTP
在大数据中,除了 OLTP 和 OLAP,还有以下 2 个阵营
· MPP(大规模并行处理):Greenplum、Teradata Aster 等
· 流数据管理:CEP/Esper、Storm、Spark Stream、Flume 等
MySQL、SQL Server等,在这里不展开
NoSQL 特征:
不需要预定义数据模式(No-Upfront-Schema)和表结构:数据中的每条记录都可能有不同的属性和格式。当插入数据时,并不需要预先定义它们的模式
无共享(Shared Nothing)架构:NoSQL 通常把数据划分后存储在各个本地服务器上。这是为了提高了系统的性能,这是因为从本地磁盘读取数据的性能往往好于通过网络传输(如 NAS/SAN)来读取数据的性能
分区:NoSQL 需要对数据集进行分区,将记录分散在多个节点上面。并在分区的同时进行复制。这样既提高并行性能,又能保证没有单点失效的问题。
弹性可扩展:可以在系统运行的时候,动态添加或者删除节点。不需要停机维护,数据可以自动迁移。
异步复制:和 RAID 存储系统不同的是,NoSQL 中的复制,往往是基于日志的异步复制。这样,数据就可以尽快地写入一个节点,而不会被网络传输引起迟延。缺点是并不总是能保证一致性,在出现故障的时候,可能会丢失少量的数据。
符合 BASE 模型
BASE 是相对于事务严格的 ACID 的模型
BASE 模型提供的是最终一致性和软事务
大致可以有文档型(MongoDB)、宽表型、键值型(Redis)和图数据库
NoSQL 当中,键值型数据库 Redis 现在已经支持了列表、集合、哈希、比特数组、字符串、HyperLogLogs 等数据结构类型,它依然被叫做键值(Key-Value)型 NoSQL 数据库
Redis 有三类主要应用场景:
缓存(Caching):由于 Redis 支持过期数据(可以让过期数据被新数据替换掉,对于不需要永久在内存保存的数据,这样可以节省大量内存空间),且性能好,可以和 Memcached 结合用作缓存。
简单消息队列(Simple Message Queue):Redis 支持简单的 Pub/Sub 模型,以及基于列表的队列模型,所以可以用作构建轻量级的消息队列。
高性能数据访问:通常一个 Redis 实体(Instance)可以满足每秒 50 万次的访问,由于 Redis 是单线程实现,在一台主机上可以启动多个 Redis 实体以增加高性能并发访问的服务能力。
NewSQL 在 NoSQL 基础上实现了对 ACID 模型的支持。NewSQL 结合了 ACID 和 BASE 的两者的特点
NewSQL 类系统(兼具可扩展性、数据可用性与一致性)。确切地说 NewSQL 可以兼顾 OLTP+OLAP,但在一般分类上,我们还是主要突出了它的交易、事务处理对 ACID 的支持上,因此归为 OLTP 阵营
数据库的操作语言 SQL 有着一些天然的缺陷:
未来:SQL 终将让路给 GQL,过去 40 年来。数据库行业只有两个查询语言标准委员会,SQL 和 GQL(图查询语言)GQL 标准委员会的设立就是为了解决上面的几个问题,期待 GQL 的标准尽快出台
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。