NoSQL领衔大数据时代的新技术

本文讲的是NoSQL领衔大数据时代的新技术,大数据应用到数据集,其大小超出了常用软件工具所能捕捉、管理和在可承受的时间内处理数据的能力。Big Data的规模在不断变化,单一数据集的规模从几十个TB涨到多个PB。

  IDC估计到2011年数据约达到1.8ZB。

  ZB有多大?答案是10亿个TB。目前世界人口有7亿——也就是说,如果给每个人250G硬盘——存储空间仍然是不够用的。

  这次的数据洪流有诸多来源:

  1. 纽约证券交易所每天产生1TB的新交易数据;

  2. Facebook主机存储100亿张照片会占用1PB空间;

  3. Ancestry.com,家谱网,存储约2.5PB数据;

  4. 互联网档案馆存储约2PB数据,并以每月约20TB的速度增长;

  5. Geneva附近的Large Harden Colider每年将产生15PB的数据;

  6. 人们每天从传感器、移动设备、网上交易和社交网络创造相当于2.5万亿字节的数据。

  Facebook、Yahoo和Google发现他们以空前的规模汇集数据。他们是第一批从上百万用户中汇集数据的大公司。

  这些数据迅速淹没了传统的例如Oracle和MySQL等的数据系统。即便是最好的、最昂贵的供应商使用最大规模的硬件也只能勉强跟上,无法给他们有力的工具来分析数据的涌入。

  在2000年初,开发诸如MapReduce、BigTable、Google File System的新技术来处理大数据。最初,这些技术是专有的。但随后人们注意到公开的概念会更有利-因为越来越多的人会有助于此,并且他们雇佣的毕业生在加入他们之前对此也会有一个良好的理解。

  在2004-2005年度,Facebook、Yahoo和Google开始共享描述他们大数据技术的研究论文。

  2004年,Google发表题为“MapReduce:在大型集群上简化数据处理(MapReduce: Simplified Data Processing on Large Clusters)”的论文。

  MapReduce是一个编程模型,同时也是一个处理和生成大型数据的工具。用户指定映射函数来处理一对key-value以生成一个中间key-value的集合,指定reduce函数合并相同的中间键关联的所有的中间值。正如这篇文章所写,现实世界的许多工作都可以在这个模型中得以表达。

  以此功能所编写的程序自动并行,而且能在商品机大型集群上执行。系统处理分割输入数据的细节,跨机器调度程序执行,处理机器故障,管理所需的机器间的通讯。这样使得没有任何操作并行和分布式系统经验的程序员同样可以轻松地利用大型分布式系统的资源。Google基于MapReduce实现在大型集群的商品机上运行并且这是高度可伸缩的。

  一个典型的MapReduce在成百上千台机器上处理大量的数据。设计器和系统是很容易使用的。数以百计的MapReduce程序已经实施并且每天有超过一千的MapReduce工作在Google集群执行。

  Nutch是一个开源的搜索技术,现在由Apache Software Foundation管理,而为其工作的Doug Cutting阅读了由Google发表的此文和由Google分布式文件系统[GFS]发表的另一篇文章,指出GFS可以解决他们的存储要求,MapReduce也会解决Nuth和实施MapReduce及GFS的缩放问题。他们把为Nutch实施的GFS命名为Nutch Distributed Filesystem[NDFS]。

  NDFS和Nutch的MapReduce的实现超出了搜索领域,并于2006年2月迁移出Nutch构建成一个名为Hadoop和NDFS的独立的Lucene子项目,成为HDFS[Hadoop分布式文件系统],这是一个GFS的实现。与此同时,Yahoo延长了他们对Hadoop的支持并雇佣了Doug Cutting。

  在HDFS的工作层面,有一个300MB的文件[Hadoop的PB级和TB级文件非常好]。HDFS所需做的第一件事就是将它分割为若干块。HDFS上的默认块的大小为128MB。一旦把他们分割成块,我们将得到分别为128MB和44MB的两个部分。现在,HDFS将‘n’[‘n’即是配置]作为每个块的拷贝/副本的一部分。HDFS将这些副本存储在集群的不同数据节点上。我们也有单一的保持着副本和数据节点路径的数据NameNode。NameNode清楚副本在什么位置-每当它检测到有副本损坏[DataNode一直在副本上进行校验]或者相应的HDFS变为down,它将会寻找集群中该副本的其他副本,并告诉其他节点复制该副本的‘n’。NameNode是一个单点故障-两个点就会避免出现这种情况,我们会有与主要NameNode同步的次要NameNode-当主的变为down-从的将会起控制作用。Hadoop项目目前工作在分布式的NameNodes上。

  Google在2006年又发表了一篇名为“Bigtable:一个结构化数据的分布式存储系统(Bigtable: A Distributed Storage System for Structured Data)”的文章。

  Bigtable是一个管理结构化数据的分布式存储系统,它的设计扩展到一个非常大的规模,跨越了成千上万服务器的PB级数据。Google许多项目的数据都存储在Bigtable中,其中包括网页索引、Google Earth和Google Finance。这些在Bigtable中的应用有不同的需求,不仅是在数据大小方面(从网页地址到卫星图像)还有在延迟要求方面(从后台数据处理到实时数据服务)。尽管这些需求不同,Bigtable为Google的产品提供了一个柔性的、高性能的解决方案。本文介绍了Bigtable中提供的简单的数据模型,Bigtable使得客户可以对数据的布局和格式进行动态控制,并且描述了Bigtable的设计和实施。

  Bigtable映射任意两个字符串值(行值和列值)和时间戳(三维映射)关联的任意字节数组。这并不是个关系型数据库,更应该定义为sparse,分布式多维分类映射。

  Bigtable基本上讨论了怎样在GFS上建立分布式数据存储。

  由Hadoop所生成的HBase是一个BigTable的实现。HBase是一个分布式、列导向的、利用HDFS为其底层存储同时支持使用MapReduce和点查询的批量计算的数据库。

  Amazon,在2007年出版了“Dynamo:亚马逊高度可用Key-value存储(Dynamo: Amazon’s Highly Available Key-value Store)”的文章。

  Dynamo是一个高度可用的Key-value存储系统,Amazon的核心服务提供一个“always-on”的技巧。Apache Cassandra——汇集了Dynamo的完全分布式设计和BigTable的数据模型,用Java进行编写,由Facebook发布的开源系统。这是个NoSQL的解决方案,最初由Facebook开发,直到2010年底,增强他们的收件箱搜索功能。事实上,Cassandra最初的开发工作是由两个由Facebook从Amazon招募的Dynamo工程师进行的。但是在2010年底当Facebook建立了基于HBase的信息平台后便放弃了Cassandra。

  此外,除了使用BigTable的建模方法,它具有类似于最终一致性的属性,Gossip协议,master-master方式的读服务和Amazon Dynamo产生的写请求。最终一致性是其中一个重要的属性,意味着在一段足够长的时间内没有发送更改信息,所有的更新都可以预期,最终系统和所有副本也将保持一致。

  再说到Cassandra时,使用了“NoSQL”一词。NoSQL(有时候解释为not only SQL)是数据库管理系统的一个宽泛类,在一些重大方面,它不同于典型的关系型数据库管理系统(RDBMS)。这些数据存储不需要固定的表模式,通常能够避免连接操作,可以进行横向扩展。

  “NoSQL”这个名字最初是由Carlo Strozzi在1998年提出的,作为由他开发的基于文件的数据库的名称。具有讽刺意味的是,它仅仅是个没有SQL接口的关系型数据库而已。当Eric Evans在2009年用它来命名非关系型数据库的流冲击(current surge)的时候,这个名字重新复出水面。

  NoSQL数据库有四个类别:

  1. Key-value stores:基于Amazon的Dynamo文件;

  2. ColumnFamily / BigTable clones:例如HBase、Cassandra;

  3. Document Databases:例如CouchDB、MongoDB;

  4. Graph Database:例如AllegroGrapgh、Neo4j。

  正如Marin Dimitrov所言,以下是NoSQL数据库的使用场合,换句话说,是关系型数据库不适合执行的情况。

  1. 庞大的数据量;

  2. 极端的查询量;

  3. 模式演化。

  我们从NoSQL上可以得到高可扩展性、高可用性、低成本(与同等规模的解决方案相比)、可预见的弹性和架构灵活性的优势。

  对于应用程序来说关系型数据库和Cassandra的主要区别在于基于BigTable的数据模型。Cassandra数据模型是专为大规模的分布式数据所设计的。在性能、可用性和运算管理遵从惯有的优势。

作者: 孙耀堃

来源: IT168

原文标题:NoSQL领衔大数据时代的新技术

时间: 2024-10-17 08:49:39

NoSQL领衔大数据时代的新技术的相关文章

李辰:技术提取智慧 领衔大数据时代

人工智能的终极目标是让机器能够像人一样思考和做事.但是如果机器不能够理解人的语言,那么就不可能实现人机交互,更不可能自主学习.毫无疑问,有关自然语言处理的研究对于解放人类大脑,是继工业革命解放了人类的身体之后的又一次解放.自然语言处理的诱人前景正使得它越来越成为研究的热点. 孜孜爱国情 李辰专注于人工智能领域的自然语言处理新算法及其在生物文本挖掘领域的应用的研究由来已久.2005年李辰加入位于英国剑桥的全球著名的生物信息研究所-欧洲生物信息研究所(EMBL-EBI)以来,一直从事生物医学数据挖掘

数据库老兵:大数据时代NoSQL不是颠覆性技术

数年前,当人们谈论起新兴的NoSQL数据库技术时,相当一部分观点认为NoSQL在大数据市场取代传统关系型数据库只是个时间问题.如今,这一预言并未兑现,Mitchell Kertzman的总经理Hummer Winblad认为,大多数情况下,NoSQL都没有展现出所谓的革命性. 作为数据库的老兵,以下是Kertzman在本周的视频访谈的一些观点摘录: 人们需要的其实还是SQL 如果云端的SQL数据库有足够的弹性和可扩展性,能处理所需要的数据量,那么人们永远都不会需要NoSQL. 看衰NoSQL的H

大数据时代如何评价一个NoSQL技术人员 - 产品和技术

大数据时代如何评价一个NoSQL技术人员 发布时间:2012.04.16 14:34 &http://www.aliyun.com/zixun/aggregation/37954.html">nbsp;    来源:CSDN     作者:CSDN 时至今日,"Big data"(大数据)时代的来临已经毋庸置疑,尤其是在电信.金融等行业,几乎已经到了"数据就是业务本身"的地步.这种趋势已经让很多相信数据之力量的企业做出改变. 在大数据技术大会

大数据时代的数据库选择:SQL还是NoSQL?_数据库其它

一.专家简介VoltDB公司首席技术官Ryan Betts表示,SQL已经赢得了大型企业的广泛部署,大数据是它可以支持的另一个领域.Couchbase公司首席执行官Bob Wiederhold表示,NoSQL是可行的选择,并且从很多方面来看,它是大数据的最佳选择,特别是涉及到可扩展性时.二.SQL经历时间的考验,并仍然在蓬勃发展结构化查询语言(SQL)是经过时间考验的胜利者,它已经主宰了几十年,目前大数据公司和组织(例如谷歌.Facebook.Cloudera和Apache)正在积极投资于SQL

武新博士:新型MPP数据库将支撑起大数据时代

大数据这个领域过去5年发展很快.热度很高,但是总的来说目前还在起步阶段.本次研讨会我会先谈谈数据,以及大数据对数据处理技术的压力,然后为大家分享一下为什么这几年数据处理技术上的创新很多. 1. 数据价值的发现与使用 在大数据的4个V中,最显著的特征应该是Value(价值).不管数据多大,是什么结构,来源如何,能给使用者带来价值的数据是最重要的数据. 我跟数据打了20多年的交道,从来没感觉到搞数据的地位有今天这么高.整个社会对数据的认知变了,大数据最大的贡献至少是让社会各个层面开始认识到数据的重要

大数据时代你需要知道的7个大数据定义

文章讲的是大数据时代你需要知道的7个大数据定义,大数据究竟是什么?很多人可能仍然有些混淆,本文让我们来看看大数据的一些主要的定义.首先要注意的是,行业内的所有人都普遍认同,大数据不只是更多的数据. (1) 最初的大数据 大数据的特征可以用很多词来描述.2001年Doug Laney最先提出"3V"模型, 包括数量 (Volume).速度(Velocity)和种类(Variety).在那以后,业界很多人把3V扩展到了11V,还包括有效性.真实性.价值和可见性等. (2) 大数据:技术 为

IDC:中国金融行业正步入大数据时代初级阶段

3月25日,IDC研究显示,当前,数据是重要资产的理念已经在中国金融行业形成共识,数据的真正价值在于能够洞察企业内部规律,数据的洞察力成为金融企业的核心竞争力.在中国金融行业信息化建设中,与信息加工密切相关的大数据管理正逐渐成为与核心业务系统建设.渠道建设和前置建设同等重要的领域. 经过多年的发展与积累,目前中国的大型商业银行和保险公司的数据量已经达到100TB以上级别,并且非结构化数据量在迅速增长.基于IDC对大数据的定义(通常数据量大于100TB, 数据量年增率大于60%,数据采集是高速数据

大数据时代的教育宏观治理体制现代化变革

随着云计算.大数据等新技术逐渐兴起,人类社会的信息化进程由计算机时代.互联网时代逐步迈向大数据时代.大数据作为新一代信息技术的集中反映,被视为具有无穷潜力的新兴产业领域,能为我国实现跨越式发展提供宝贵机会.[1]大数据正在深刻地改变着人们的思维方式和行为方式,也正在孕育着教育治理体系和教育治理能力的现代化变革.由于制度问题带有根本性.全局性.稳定性和长期性,随着大数据时代的到来,推进我国教育宏观治理体制在大数据时代的现代化变革,不仅是一个全新而重要的时代命题,而且具有重要的理论价值和现实意义.

大数据时代的教育革命

"人类历史中的许多灾难都源于这样一个事实,即社会的变化总是远远落后于技术的变化.这是不难理解的,因为人们十分自然地欢迎和采纳那些能提高生产率和生活水平的新技术,却拒绝接受新技术所带来的社会变化--因为采纳新思想.新制度和新做法总是令人不快的." --斯塔夫里阿诺斯<世界通史> 在当今的信息时代,云技术.物联网和基于二者的大数据技术正推动教育发生着变革.未来教育在互联网等技术的作用下变的越来越个性化,通过对大数据技术的应用将有利于个性化教育,标准化的学习内容由学生自组织学习,