大数据时代的互联网架构设计
上QQ阅读APP看书,第一时间看更新

第二节 大数据的相关概念与理论

一、数据科学理论

在摸索数据生产要素理论和数据创新理论的过程中,我们发现,对于两者更为准确的定位是数据中观理论和数据微观理论,因而必须要建立一个较为完整和宏观的数据科学体系。在一个宏观理论的基础上才能对两者进行更加深入的研究和拓展。

我们认为,如果放大至数据科学宏观理论,就必须着眼于三点:一是要有一个广泛和详尽的基础概念;二是要了解数据的基本属性;三是要以全新的思想和眼界,去观察并发展一个近乎全新的科学体系。

(一)广义数据的定义

数据的原有基础概念是科学实验、检验、统计等所获得的和用于科学研究、技术设计、查证、决策等方向的数值,或者是进行各种统计、计算、科学研究或技术设计等所依据的数值。

在信息技术高速发展的今天,各个行业对数据的要求发生了质变,数据原有的基础概念已经不能满足社会发展的需要,必须及时地对其加以修正和扩展。我们对数据的初步定义如下:在自然界和人类文明的发展中,当所有物质和意识的存在以某种形式或语言记录传承下来时,都会形成可见和不可见的载体或媒介,这些载体或媒介所承担的内容,都将被视为广义数据。而原有的数据概念,我们可以将其定义为狭义数据。

广义数据这个概念将是数据科学的起点、基础和核心,它的生成将极大地促使数据概念本身的内涵和外延更加丰富,使人类文明的延续和发展有更强有力的武器,甚至可以全面覆盖语言和文字的历史包容量和意义。而对于科技发展已经支撑新生价值的80%的当今社会,广义数据这个理念和思想,一定会给人们以巨大的想象空间,进而融合、激发、再造出更多的创新思想、生产方式和新型的生态链、生态圈。

(二)数据的基因特质

数据有许多人类没有关注到的特性,最鲜明的特性主要有以下七个方面。

1.数据的准确性、实时性、全面性

这是原有的狭义数据概念就包含的属性,但这些属性在原有概念中没有占据重要地位,通常以样本数据和事后分析来预估和推理事物的发展。在大数据发展的今天,这三个属性的功能和意义都极大提升,甚至将成为人们永久奋斗的目标。

2.数据的可复制性和继承性

在广义数据概念中,随着数据自身主观和客观的演变,可复制性和继承性的含义也将被无限放大。这是一个能令人无限遐想的理念。

3.数据的可见和不可见的规律性

可见和不可见的规律性,彻底打破了数据的传统理念,使数据上升为既是物质存在又是思想意识的客观事物。

4.数据的跨界、跨领域的关联性和重组性

跨界、跨领域的关联和重组,将是数据自身发展的天性。随着技术的进步,这种数据主观上或者客观上被无限放大的蔓延方式,将是创新与创造最直接的发展路径,但人类也将面临前所未有的挑战和危机。

5.事物的泛数据化倾向特性

所有事物在理论上均可数据化,这是数据科学的基础概念和终极目标。从某种意义上理解,数据科学将是所有自然科学和社会科学的载体和媒介,是一切科学传承的外在表现。

6.数据的安全性和可靠性

广义数据给了人们巨大无比的想象空间,但安全性和可靠性所带来的问题也成为文明发展重要的衍生物。这些问题将是目前数据时代面临的最大障碍。

7.数据的突变性及裂变性

裂变是病毒式发展的基本路径,有助于高速度的实现。但突变是数据最可怕的敌人。随着人工智能等各项信息技术的发展,突变性将越来越不可发现和不可预见。从生物界可以看出,突变中99%的结果都是恶变,仅有1%的结果是进化,但这个进化一定是革命性的。可以预言,广义数据也具有这种属性,需要我们高度关注和严防死守。

信息系统是数据应用的平台和工具,在实际运行中,人们对系统的各种需求,其实质就是对数据的需求。数据作为信息的最基础的细胞要素,是目前所知的现实存在的最小物质的规律性信息单元,其作用是决定性的。如果人们对这个最小单元进行科学化、系统化的研究与拓展,发现和应用好数据的规律和属性,将极大地促进人们了解并把握事物的发展规律,为诸多预言提供理论依据和佐证,这是新型信息化建设的基础和核心。

利用这些特性,我们就可以解释为什么新一代信息技术会以超出想象的速度发展,其本质就是数据的重组、隐含性展现和突变等属性在发挥积极的作用,进而创造出令人咋舌的新生事物和发展模式。

(三)数据生产要素理论

在大数据时代,数据的实质正在发生根本性的改变,数据已经从记录过程的依据发展成为生产要素。原有的生产要素大致分为能源、矿产、土地及其他自然资源,劳动力,资本(诸如货币或货币等价物等)三大类。在过去某一时间段内,我们也模糊地将技术和信息划分在生产要素里,但这种观点不够准确。现在,我们可以清晰、坚定地认为:数据是一种重要的生产要素。这个定义不仅可以描述为数据是技术和信息的载体和表现形式,更能精准阐述数据作为当今科技的核心实质。

当一个新的生产要素加入任何原有的生产方式时,会使原有生产要素的权重发生改变,对生产要素质量进化产生推动作用,形成新的爆发式增长,甚至是技术性和产业性革命,从而大幅度地促进人类文明的进步。数据这个生产要素一定会起到这个作用。

数据生产要素还具有与原有生产要素相互转化的作用,具体分为以下两种形式。

(1)原有生产要素转化为数据生产要素的倾向。在数据按照生产要素进行重新配置时,原有生产要素的存在形式并没有改变,但记录生产要素的数据需要被另行抽取出来,用于整体生产要素的配置和部署,再根据部署结果和需要进一步定义下一周期数据的属性和内容。周而复始,整个过程会持续不断地被优化,无限接近最佳方案。数据在这个循环中,其数量、内容、属性、结构、内在价值和战略意义将发生巨大的改变,完全改变人们原有的数据概念,使数据向泛数据化发展。

例如,困扰中国的雾霾,其主要成分是二次污染物,其颗粒大小为10微米以下,主要来源于能源和工业污染,其次才是汽车排放。煤炭是我国的主要能源,如果我们事先对煤炭的能量转换过程及产生物进行深入研究,对发达国家的历史数据和历史事件做好大数据的分析和预判,在研究一次污染的同时,注意二次污染的形成规律和吸附特性,就不至于出现如此大范围的严重威胁人身健康和经济发展的重度污染,也不至于浪费大量的人力财力去整改结构部署和生产流程。从目前的科技发展水平和研究成果来看,这些研究数据能够而且不难被得到,监控成本也不高,治理和替代手段也可以逐步摸索实施。也就是说,雾霾这个问题是能够被日益改善的。但问题是,我们一直坚持粗放的生产方式和发展模式,不关注新技术的发展和应用,没有树立科学发展的理念,已经习惯了即使无视科学精确的数据也一样赚钱、一样产生GDP的行为,我们正在为此付出沉重的代价。究其本质,我们认为,要以大数据为手段对事件和数据进行抽取和排除,生成尽可能严谨、科学、内容翔实的全量数据。同时,综合考虑各种成因的利弊,统筹协调各个生产要素的权重,形成科学合理的综合实施规划,对我们国家的经济发展至关重要。

(2)当数据生产要素作为催化剂和交互媒介时,原有生产要素之间产生相互影响,各自整体权重相互转化,产生向最优化方案靠近的倾向。例如,在产业升级实践中,突破口就是我们要把手头的生产要素尽可能地数据化,并做到准确、全量、实时、互联互通。如能实现,我们就可以做到数据创新的技术升级,从而带来产业的革命。如把物流数据进行全量整合,就能立即优化能源、人力、资本三个生产要素的权重匹配;把学生的学习数据进行智能化处理,就能立即改变校舍资源、能源、交通、教师人力资源、行业管理资源的配置结构,甚至带来教育产业的革命,实现真正的智慧教育和素质教育。

二、大数据相关概念与理论

(一)数据分片与路由

在大数据背景下,数据规模已经由GB级别跨越到PB级别,单机明显无法存储与处理如此规模的数据,只能依靠大规模集群来对这些数据进行存储和处理,所以系统的可扩展性成为衡量系统优劣的重要指标。传统并行数据库系统为了支持更多的数据,往往采用纵向扩展(Scale Up)的方式,即不增加机器数量,而是通过改善单机硬件资源配置来解决问题。而目前主流的大数据存储与计算系统通常采用横向扩展(Scale Out)的方式来支持系统的可扩展性,即通过增加机器数目来获得水平扩展能力。Stoica I, Morris R, Karger D, et al.Chord:A scalable peer-to-peer lookup service for internet applications.San Diego:Proceedings of the 2001 Conference on Applications, Technologies, Architectures, and Protocols for Computer Communications,2001.与此对应,对于待存储处理的海量数据,需要通过数据分片(Shard/Partition)来将数据进行切分并分配到各个机器中去。数据分片后,如何能够找到某条记录的存储位置就成为必然要解决的问题,这一般被称为数据路由(Routing)。

数据分片与数据复制是紧密联系的两个概念,对于海量数据,通过数据分片可实现系统的水平扩展,而通过数据复制可保证数据的高可用性。Garcia-Molina H, Ullman J D, Widom J.数据库系统实现.杨冬青,吴愈青,包小源,译.2版.北京:机械工业出版社,2010.因为目前大规模存储与计算系统都是采用普通商用服务器来作为硬件资源池的,形式各异的故障经常发生,为了保证数据在故障常发环境下仍然可用,需要将同一份数据复制存储在多处。同时,数据复制还可以增加读操作的效率,客户端可以从多个备份数据中选择物理距离较近的进行读取,这样既增加了读操作的并发性又可以提高单次读的读取效率,图1-2展示了数据分片与数据复制的关系。

图1-2 数据分片与数据复制的关系

(二)数据复制及其基础理论

在大数据存储系统中,为了增加系统的可用性,往往会将同一数据存储多份副本,工业界的常规做法是三备份。将数据复制成多份,除了增加存储系统的可用性外,还可以增加读操作的并发性,但是这样也会带来数据一致性问题:因为同一数据存在多个副本,在并发的众多客户端读/写请求下,如何维护数据一致视图非常重要,即使存储系统中在外部使用者看起来有多副本数据,其表现也应和单份数据一样。

1.CAP理论

2000年,美国加利福尼亚大学伯克利分校的Eric Brewer教授提出了著名的CAP理论,即一个分布式系统不可能同时满足一致性(Consistency)、可用性(Availability)和分区容错性(Partition Tolerance)这三个需求,最多只能同时满足两个。2002年,麻省理工学院的Seth Gilbert和Nancy Lynch证明了CAP理论的正确性。根据CAP理论,一致性(C)、可用性(A)和分区容错性(P)三者不可兼得,必须有所取舍。因此,系统架构师不需要把精力浪费在如何设计同时满足C、A、P三者的完美分布式系统上,而是应该研究如何进行取舍,满足实际的业务需求。

2.CAP定义

C:一致性。一致性表示一个事务的操作是不可分割的,要么这个事务完成,要么这个事务不完成,不会出现这个事务完成了一半的情况。这种事务的原子性使得数据具有一致性。任何一个读操作总是能读取到之前完成的写操作结果,在分布式环境中,要求多点的数据是一致的。

通常情况下,数据库中存在的“脏数据”就属于数据缺乏一致性的表现,而在分布式系统中常出现的不一致情况是读/写数据时缺乏一致性。Chang F, Dean J, Ghemawat S, et al.BigTable:A distributed storage system for structured data.Symposium on Operating Systems Design and Implementation,2006,26(2):15.比如两个节点做数据冗余,第一个节点有一个写操作,数据更新以后没有有效地对第二个节点的数据更新,在读取第二个节点的时候就会出现数据不一致的问题。

A:可用性。每个操作总是能够在确定的时间内返回,也就是系统随时都是可用的。可用性好主要是指系统能够很好地为用户服务,不出现用户操作失败或访问超时等用户体验不好的情况。在分布式系统中,通常情况下,可用性与分布式数据冗余、负载均衡等有着很大的关联。

P:分区容错性。在出现网络分区(比如断网)的情况下,分离的系统也能正常运行,分区容错性与扩展性紧密相关。在分布式应用中,一些分布式的原因可能导致系统无法正常运转。好的分区容错性要求应用虽然是一个分布式系统,但看上去却是一个可以正常运转的整体。

3.CAP原理分类

传统的关系型数据库因为要保障数据的强一致性和可用性,因而属于CA模式,对于分区容错性的支持比较差。对于分布式数据库系统而言,分区容错性是基本需求,因此只有CP和AP两种选择。CP模式保证分布在网络上不同节点数据的一致性,但对可用性支持不足,这类系统主要有BigTable、HBase、MongoDB、Redis、MemcacheDB、BerkeleyDB等。AP模式主要以实现“最终一致性”(Eeventual Consistency)来确保可用性和分区容错性,但弱化了对数据的一致性要求,典型的系统包括Dynamo、Cassandra、Tokyo Cabinet、CouchDB、SimpleDB等。

HBase和Cassandra是NoSQL数据库中的代表系统。HBase可以看作谷歌的BigTable系统的开源实现,它构建于和谷歌File System类似的HDFS(Hadoop Distributed File System, Hadoop分布式文件系统)之上;而Cassandra则更接近于亚马逊的Dynamo数据库,和Dynamo的不同之处在于,Cassandra结合了谷歌BigTable的Column Family的数据模型。Calder B, Wang J, Ogus A, et al.Windows Azure Storage:A highly available cloud storage service with strong consistency.Cascais:Proceedings of the 23rd ACM Symposium on Operating Systems Principles,2011.可以简单地认为,Cassandra是一个P2P的、具有高可靠性和丰富的数据模型的分布式文件系统。

4.ACID和BASE方法论

ACID指的是关系型数据库为了支持事务(Transaction)的正确性和可靠性,必须满足的4项特性,即原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。这几项特性的具体解释如下。

1)原子性

一个事务中的所有操作,要么全部完成,要么都不完成,不会结束在中间的某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。比如转账,要么转成功,要么没转出去,不会发生钱转走了对方却没收到的情况。

2)一致性

在事务开始之前和事务结束以后,数据库的完整性没有被破坏,不会发生数据不一致的情况。

3)隔离性

当两个或多个事务并发访问(此处访问指查询和修改的操作)数据库的同一数据时所表现出的相互关系。事务隔离可以分不同级别,来对数据的不同操作产生的相互影响进行不同程度的隔离。

4)持久性

在事务操作完成以后,该事务对数据库所做的更改便持久并且完全地保存在数据库之中。

传统的SQL数据库(关系型数据库)支持的是强一致性,也就是在更新完成后,任何后续访问都将返回更新过的值。为了实现ACID,往往需要频繁对库或表加锁,这使得其在互联网应用中捉襟见肘。比如SNS(社会化网络服务)网站的每个互动都需要一条或多条数据库操作,对数据库读写的并发要求非常高,而传统数据库无法很好地满足这种需求。

对于很多Web应用,尤其是对SNS应用来说,一致性要求可以降低,而对可用性的要求需要提高。为了支持高并发读写,有些NoSQL(非关系型数据库)产品采用了最终一致性的原则,从而产生了基于弱一致性的BASE方法论。Decandia G, Hastorun D, Jampani M, et al.Dynamo:Amazon's highly available Key-Calue store.Washington D C:Proceedings of 21 st ACM SIGOPS Symposium on Operating Systems Principles,2007.所谓弱一致性是指系统不保证后续访问将返回更新过的值,要想得到更新的值需要符合很多条件才行。从更新到保证任一观察者看到更新值的时刻之间的这段时间被称为不一致窗口。最终一致性是弱一致性的一种特殊形式,存储系统保证如果对象没有新的更新,最终所有访问都将返回最后更新的值。如果没有发生故障,不一致窗口的最大值可以根据通信延迟、系统负载、复制方案涉及的副本数量等因素确定。

BASE,即Basically Available(基本可用)、Softstate(软状态)、Eventual Consistency(最终一致性)几个词的组合。BASE的英文意义是碱,而ACID是酸,有点水火不容的意思。BASE模型与ACID模型相反,其完全不同于ACID模型,它牺牲高一致性,获得可用性或可靠性。它仅需要保证系统基本可用,支持分区失败,允许状态在一定时间内不同步,保证数据达到最终一致性即可。BASE思想主要强调基本的可用性,如果需要高可用性,也就是纯粹的高性能,那么就要牺牲一致性或容错性。BASE构成了大多数NoSQL数据库的方法论基础。