@NumberFairy
2018-08-20T19:47:16.000000Z
字数 1528
阅读 1402
网络空间安全
数据存储,这部分内容较多。对于数据量小的情况我们暂且不论,毕竟传统的存储方式即可应对,比如用sql server,mysql等关系型数据库。我们主要谈大数据情况下的存储,这个时候的关系型数据库就不能满足当前需求了,要进而采用No Sql数据库。
临时添加No Sql的知识:
数据库结构的基础是数据模型,一句数据模型的不同,No Sql数据库划分为以下几类:
键值存储:键值模型是No SQL数据库中最基本的模型,即将数据按照键值对的形式进行组织,索引和存储。这类数据库具有极高的并发读写性能,但是通常只能通过键的完全一致来查询获取数据,常见的基于键值模型的数据库有Re-dis, DynamoDB等。
列式存储:区别于普通DB中以行为单位存储数据的方式,在面向列的DB中,数据存储是围绕“列”进行的。这类 DB还支持“列族”的特性,将多个需要经常一起访问的列组织在一起以提高查询效率。面向列的DB具有高扩展性,数据量的增加不会降低DB的处理速度(尤其是写入速度),因此非常适合大数据应用。最早的列式DB式Google提出的BigTable,Apache HBase被认为是Big Table的开源实现,另外一个普通应用的列式DB是Cassandra。
文档存储:文档DB既具备键值存储的高性能,可伸缩性特点,又实现了关系型数据库中丰富的功能。文档数据库限制了存放内容,并定义了允许的结构和数据类型,因此能通过复杂的查询灵活地访问data。这类DB主要用来管理半结构化data,data经常以Json格式来组织存储,常用的文档DB有Mongo DB, Couch DB等。
图形存储:图数据库在No SQL领域中独树一帜,不同于上述三类数据库,图数据库的流行并非由于它能够解决大数据背景下的集群扩展问题,而是因为它可以更加有效地存储和管理数据间的关联。图模型非常简单,包括若干节点和节点之间的边,但是它特别适合存储文件树这样的递归结构和社交图这样的网络结构数据。图数据库通常运行在单一的服务器上,如Neo4j和Graph DB,但也有一些分布式图数据库被开发出来,图Titan。
分布式领域CAP理论,
Consistency(一致性), 数据一致更新,所有数据变动都是同步的
Availability(可用性), 好的响应性能
Partition tolerance(分区容错性) 可靠性
定理:任何分布式系统只可同时满足二点,没法三者兼顾。