Dynamo

海量数据处理

流过昼夜 提交于 2019-11-26 07:38:12
海量数据处理是基于海量数据上的存储、处理、操作。 所谓海量,就是数据量很大,可能是TB级别甚至是PB级别,导致无法一次性载入内存或者无法在较短时间内处理完成。面对海量数据,我们想到的最简单方法即是分治法,即分开处理,大而化小,小而治之。我们也可以想到集群分布式处理。 1 海量数据的存储:为大数据分析做准备 传统关系型数据库 传统关系型数据库在 数据存储上主要面向结构化数据,聚焦于便捷的数据查询分析能力、按照严格规则快速处理事务(transaction)的能力、多用户并发访问能力以及数据安全性的保证。其结构化的数据组织形式,严格的一致性模型,简单便捷的查询语言,强大的数据分析能力以及较高的程序与数据独立性等优点获得广泛应用。 但是 面向结构化数据存储的关系型数据库已经不能满足当今互联网数据快速访问、大规模数据分析挖掘的需求。 它主要缺点: 1) 对于半结构化、非结构化的海量数据存储效果不理想。像电子邮件、 超文本、标签(Tag)以及图片、音视频等各种非结构化的海量数据。 2)关系模型束缚对海量数据的快速访问能力: 关系模型是一种按内容访问的模型。即在传统的关系型数据库中,根据列的值来定位相应的行。这种访问模型,会在数据访问过程中引入耗时的输入输出,从而影响快速访问的能力。虽然,传统的数据库系统可以通过分区的技术(水平分区和垂直分区) ,来减少查询过程中数据输入输出的次数以缩减响应时间