大数据01之存储和处理

一、四类大数据存储和管理的数据库系统

1、 并行数据库

1.1 并行数据库是指那些在无共享的体系结构中进行数据操作的数据库。这些系统大部分采用关系数据库并且支持SQL语句的查询。但是为了能够并行执行SQL语句的查询操作,系统采用两个关键技术:关系表的水平划分SQL查询的分区执行

1.2 水平划分的主要思想是根据某种策略将关系表中的元组分布到集群重的不同节点上,这些节点的表结构都是一样的,这样就可以对元组进行并行处理。

  分区策略主要有Hash分区,范围分区,循环分区等。

1.3 SQL分区查询指将查询计划分为若干个子计划,每个子计划分别在不同的节点执行,各个节点将查询的中间节点返回给某一个节点,该节点对中间节点进行聚集得到查询结果。

1.4 优点

  1.4.1 高性能和高可用性:通过多个节点并行执行数据库任务,提高整个数据库系统的性能和可用性。

    一些提高系统性能的技术:索引,压缩,实体化视图,结果缓存,I/O共享等。

1.5 缺点

  1.5.1 没有较好的弹性。人们对并行数据库进行设计和优化时认为集群中的节点数目是固定的。若是对集群进行扩展和收缩,需要为数据的转移等付出巨大的代价。同时在数据迁移的过程中会造成系统不可用。

  1.5.2 容错性较差。人们认为节点故障是特例,所以系统只提供事务级别的容错功能,当一个节点发生故障,只能重新执行所有事务。

1.6 总结

  综上,并行数据库只适用于资源需求相对固定的应用程序。不过并行数据库的设计原则为其他海量数据系统的设计提供了重要的借鉴。

 

2、 NoSQL数据管理系统

  对NoSQL最普遍的解释是“非关系型的”,强调键值存储和文档数据库的优点,并不单纯的反对关系型数据库。普遍没有固定的数据模式,并且可以水平扩展。

2.1 NoSQL主要技术

  2.1.1 简单数据模型:大多数NoSQL系统采用更加简单的数据模型,这种数据模型中,每个记录用用唯一的键,而且系统只需支持单记录级别的原子性,而不支持外键和跨记录的关系。这样数据操作可以在单机中执行,而没有分布式事务的开销。

  2.1.2 元数据和应用数据的分离:元数据是用于系统管理的数据,应用数据是用户实际需要使用的商业数据。他们有着不同的一致性要求。元数据必须是一致并且实时的,而应用数据的一致性需求视情况而定。

  2.1.3 弱一致性:NoSQL通过复制应用数据来达到一致性。这使得更新数据时副本同步的开销很大。弱一致性模型如最终一致性和时间轴一致性得到广泛的应用。

2.2 主要优势:

  2.2.1 避免不必要的复杂性。

  2.2.2 高吞吐量。

  2.2.3 高水平扩展嫩里和低端硬件集群。

  2.2.4 避免了昂贵的对象--关系映射。

2.3 主要缺点:

  2.3.1 数据模型和查询语言没有经过数学验证:SQL这种基于关系代数和关系演算的查询结构有着坚实的数学保证。即使一个结构化查询本身很复杂,但能获取满足条件的所有元素。NoSQL系统没有使用SQL,而使用的模型没有完善的数学基础。

  2.3.2 不支持ACID特性。ACID特性使系统在中断的情况下也能保持在线事务能够准确执行。

  2.3.3 功能较为简单,这就增加了应用层的负担。

  2.3.4 没有统一的查询模型。

3、NewSQL数据管理系统

  人们普遍认为是ACID和SQL等特性制约了数据库扩展能力和处理海量数据的性能。通过牺牲这些功能来提升对海量数据的处理能力。也有些人认为是其他一些机制,比如锁机制,日志机制,缓冲区管理等制约了系统的性能。若关系数据库优化了这些技术就可以获得很好的性能。

3.1 关系数据库在处理事务时开销较大 的因素有:

  3.1.1 通信:应用通过ODBC和JDBC与DBMS通信是OLTP事务中的主要开销。

  3.1.2 日志:对数据的修改需要记录日志,而日志需要不断的写入硬盘来保证持久性。

  3.1.3 锁:对写入操作需要加锁。

  3.1.4 短期锁:数据库中的一些数据结构,如B树,锁表,等需要共享,这些常常被多线程读取。

  3.1.5缓冲管理区:关系数据库将数据组织成固定大小的页,内存中磁盘页的缓冲管理会造成一定开销。

3.2 可用的解决技术:

  3.2.1 取消耗费资源的缓冲池,而在内存中运行整个数据库。

  3.2.2 摒弃单线程服务的锁机制。

  3.2.3 使用冗余机器来时先复制和故障恢复。

4、云数据管理

 云数据管理系统的优势是可以弹性的分配资源。

4.1 主要优势:

  4.1.1 透明性:用户无需考虑服务所实现的硬件和软件,利用其借口就能使用其服务。

  4.1.2 可伸缩性:用户可以根据自己的需求申请各种资源。

  4.1.3 高性价比:用户无需购买自己的基础设施。

4.2 主要缺点:

  4.2.1 用户隐私和数据安全性。

  4.2.2 服务的可靠性。

  4.2.3 服务质量保证问题。

二、大数据的处理和分析

1、现有的并行计算:

  1.1 细粒度的并行计算:这里的细粒度指的是指令或者进程级别的并行。由于GPU比CPU拥有更强的并行处理能力,人们将一些任务交给GPU并行处理。

  1.2 粗粒度的并行计算:这里的粗粒度指的是任务级别的,人们工作分不到不同的机器中执行。

  网格计算,分布式计算都属于粗粒度级别。

2、大数据处理的一些问题:

  2.1 节点间通信的代价:每个节点处理后的结果需要合并,因此节点通信是不可避免的,而且不是所有的操作都可以分散成独立的子操作。大部分重要的操作都分布式算法来减少节点间的通信。

  2.2 节点间的负载不均衡

  2.3 分布式系统的可靠性。

 

posted @ 2013-06-08 14:56  学而知不足  阅读(...)  评论(...编辑  收藏