信息技术导论 第五章 大数据 笔记

第五章   大数据

5.1 大数据概述

5.1.1   大数据产生背景与基本概念、主要特性

1、大数据产生的背景
1) 信息科技进步

现代信息技术产业已经拥有70多年的历史,其发展的过程先后经历了几次浪潮。先是20世纪六七十年代的大型机浪潮,此时的计算机体型庞大,计算能力也不高。上世纪80年代以后,随着微电子技术和集成技术的不断发展,计算机各类芯片不断小型化,兴起了微型机浪潮,PC成为主流。上世纪末,随着互联网的兴起,网络技术快速发展,由此掀起了网络化浪潮,越来越多的人能够接触到网络和使用网络。近几年随着手机及其他智能设备的兴起,全球网络在线人数激增,我们的生活已经被数字信息所包围,而这些所谓的数字信息就是我们通常所说的“数据”,我们可以将其称为大数据浪潮,也可以进一步看出,智能化设备的不断普及是大数据迅速增长的重要因素

面对数据爆炸式的增长,存储设备的性能也必须得到相应的提高。美国科学家戈登·摩尔发现了晶体管增长规律的“摩尔定律”。在摩尔定律的指引下,计算机产业会进行周期性的更新换代,表现在计算能为和性能的不断提高。同时以前的低速带宽也已经远远不能满足数据传输的要求,各种高速高频带宽不断被投入使用,光纤传输带宽的增长速度甚至超越了存储设备性能的提高速度,被称为是超摩尔定律。

智能设备的普及、物联网的广泛应用、存储设备性能的提高、网络带宽的不断增长都是信息科技的进步,它们为大数据的产生提供了储存和流通的物质基础。

2) 云计算技术兴起

云计算技术是互联网行业的一项新兴技术,它的出现使互联网行业产生了巨大的变革。我们平常所使用的各种网络云盘,就是云计算技术的一种具化表现。云计算技术通俗的来讲就是使用云端共享的软件、硬件以及各种应用,来得到我们想要的操作结果,而操作过程则由专业的云服务团队去完成。我们通常所说的云端就是“数据中心”,现在国内各大互联网公司、电信运营商、银行乃至政府各部委都建立了各自的数据中心,云计算技术已经在各行各业得到普及,并进一步占据优势地位。

云空间是数据存储的一种新模式,云计算技术将原本分散的数据集中在数据中心,为庞大数据的处理和分析提供了可能,可以说云计算为大数据庞大的数据存储和分散的用户访问提供了必需的空间和途径,是大数据诞生的技术基础。

3) 数据资源化趋势

根据产生的来源,大数据可以分为消费大数据和工业大数据。消费大数据是人们日常生活产生的大众数据,虽然只是人们在互联网上留下的印记,但各大互联网公司早已开始积累和争夺数据,谷歌依靠世界上最大的网页数据库,充分挖掘数据资产的潜在价值,打破了微软的垄断;Facebook基于人际关系数据库,推出了graph search搜索引擎;在国内阿里和京东两家最大的电商平台也打起了数据战,利用数据评估对手的战略动向、促销策略等等。在工业大数据方面,众多传统制造企业利用大数据成功实现数字转型表明,随着“智能制造”快速普及,工业与互联网深度融合创新,工业大数据技术及应用将成为未来提升制造业生产力、竞争力、创新能力的关键要素。

2、大数据的定义

①  麦肯锡全球研究所在其报告《Big data:The next frontier for innovation,competition,and productivity》中给出的大数据定义是:大数据指的是大小超出常规的数据库工具获取、存储、管理和分析能力的数据集。但它同时强调,并不是说一定要超过特定TB值的数据集才能算是大数据。

②  在维基百科中关于大数据的定义为:指的是所涉及的资料量规模巨大到无法透过目前主流软件工具,在合理时间内达到撷取、管理、处理、并整理成为帮助企业经营决策更积极目的的资讯。笔者认为,这并不是一个精确的定义,因为无法确定主流软件工具的范围,并且可接受时间也是个概略的描述。

③  互联网数据中心(IDC)从大数据的四个特征来定义,即海量的数据规模(Volume)、数据处理的快速性(Velocity)、多样的数据类型(Variety)、数据价值密度低(Value),即所谓的“4V”特性。然而,IBM认为大数据还应该具有其真实性(Veracity)。

④  全球性的信息技术研究和顾问公司Gartner给出了这样的定义:大数据是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。

⑤  美国国家标准技术研究院(NIST)将大数据定义为:数量大获取速度快或形态多样的数据,难以用传统关系型数据分析方法进行有效分析,或者需要大规模的水平扩展才能高效处理。

3、大数据的关键特征

大数据具有4V特征:大量(Volume)、多样(Variety)、高速(Velocity)、价值(Value)。

Volume(数据体量巨大):大量交互数据被记录和保存,数据规模从TB到PB数量级。

Velocity(数据类型繁多):结构化数据、半结构化数据和非结构化数据。

Variety(流动速度快):数据自身的状态与价值随着时空变化而不断发生演变。

Value(价值巨大但密度低):数据的价值没有随数据量的指数增长呈现出同比例上升。

5.1.2   大数据的发展历程

在大数据整个发展过程当中,我们按照进程将它分为4个阶段,分别是大数据的萌芽阶段、突破阶段、成熟阶段、应用阶段。

1、大数据萌芽阶段(1980—2008)

1980年[美]著名未来学家阿尔文·托夫勒著的《第三次浪潮》书中将“大数据”称为“第三次浪潮的华彩乐章”;上世纪末是大数据的萌芽期,处于数据挖掘技术阶段。随着数据挖掘理论和数据库技术的成熟,一些商业智能工具和知识管理技术开始被应用。2008年9月英国《自然—Nature》杂志推出了名为“大数据”的封面专栏。

2、大数据突破阶段(2009—2011)

2009—2010年“大数据”成为互联网技术行业中的热门词汇。2011年6月世界级领先的全球管理咨询公司麦肯锡发布了关于“大数据”的报告,正式定义了大数据的概念,后逐渐受到了各行各业关注;这个阶段非结构化的数据大量出现,传统的数据库处理难以应对,也称非结构化数据阶段。

3、大数据成熟阶段(2012—2016)

随着2012年《大数据时代》一书出版,“大数据”这一概念乘着互联网的浪潮在各行各业中扮演了举足轻重的角色。2013年大数据技术开始向商业、科技、医疗、政府、教育、经济、交通、物流及社会的各个领域渗透,因此2013年也被称为大数据元年,大数据时代悄然开启。

4、大数据应用阶段(2017—2022)

从2017年开始,大数据已经渗透到人们生活的方面面、在政策、法规、技术、应用等多重因素的推动下,大数据行业迎来了发展的爆发期。全国至少有已有13个省成立了21家大数据管理机构,同时大数据也成为高校的热门专业,申报数据科学与大数据技术本科专业的学校达到293所。近年来,数据规模呈几何级数高速长广据国际信息技术咨询企业国际数据公司(IDC)的报告,2020年全球数据赛储量将达到44ZB,到2030年将达到2500ZB。作为人口大国和制造大国,我国数据产生能力巨大,大数据资源极为丰富预计到2020年,我数据总量有望达到8000EB,占全球数据总量的21%,将成为名列前茅的数据资源大国和全球数据中心。据有关统计,截至2019年上半年,我国已有82个省级、副省级和地级政府上线了数据开放平台,涉及41.93%的省级行政区、66.67%的副省级城市和18.55%的地级城市。

5.1.3   大数据与云计算、人工智能技术的关系

大数据产业正在用一个超乎我们想象的速度蓬勃发展,借助大数据的风口,云计算和人工智能也同时走进我们的视野,他们三者之间有着不可分割、相互影响的关联。

1、大数据的概念

大数据,或称巨量资料,指的是需要新处理模式才能具有更强的决策力、洞察力和流程优化能力的海量、高增长率和多样化的信息资产。简言之,从各种各样类型的数据中,快速获得有价值信息的能力,就是大数据技术。明白这一点至关重要,也正是这一点促使该技术具备走向众多企业的潜力。

大数据时代已经来临,它将在众多领域掀起变革的巨浪。但我们要冷静的看到,大数据的核心在于为客户挖掘数据中蕴藏的价值,而不是软硬件的堆砌。因此,针对不同领域的大数据应用模式、商业模式研究将是大数据产业健康发展的关键。我们相信,在国家的统筹规划与支持下,通过各地方政府因地制宜制定大数据产业发展策略,通过国内外IT龙头企业以及众多创新企业的积极参与,大数据产业未来发展前景十分广泛。

2、云计算的概念

云计算是基于互联网的相关服务的增加、使用和交付模式,这种模式提供可用的、便捷的、按需的网络访问,进入可配置的计算资源共享池(资源包括网络,服务器,存储,应用软件,服务),这些资源能够被快速提供,只需投入很少的管理工作,或与服务供应商进行很少的交互。通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源。云是网络、互联网的一种比喻说法。过去在图中往往用云来表示电信网,后来也用来表示互联网和底层基础设施的抽象。因此云计算甚至可以让你体验每秒10万亿次的运算能力,拥有这么强大的计算能力可以模拟核爆炸、预测气候变化和市场发展趋势。用户通过电脑、笔记本、手机等方式接入数据中心,按自己的需求进行运算。

3、人工智能的概念

人工智能是研究使计算机来模拟人的某些思维过程和智能行为(如学习、推理、思考、规划等)的学科,主要包括计算机实现智能的原理、制造类似于人脑智能的计算机,使计算机能实现更高层次的应用。人工智能将涉及到计算机科学心理学、哲学和语言学等学科。可以说几乎是自然科学和社会科学的所有学科,其范围已远远超出了计算机科学的范畴,人工智能与思维科学的关系是实践和理论的关系,人工智能是处于思维科学的技术应用层次,是它的一个应用分支。

从思维观点看,人工智能不仅限于逻辑思维,要考虑形象思维、灵感思维才能促进人工智能的突破性的发展,数学常被认为是多种学科的基础科学,数学也进入语言、思维领域,人工智能学科也必须借用数学工具,数学不仅在标准逻辑、模糊数学等范围发挥作用,数学进入人工智能学科,它们将互相促进而更快地发展。

大数据、云计算、人工智能三者间的关系物联网是互联网的应用拓展,与其说物联网是网络,不如说物联网是业务和应用。因此,应用创新是物联网发展的核心,以用户体验为核心的创新是物联网发展的灵魂。云计算相当于人的大脑,是物联网的神经中枢。云计算是基于互联网的相关服务的增加、使用和交付模式,通常涉及通过互联网来提供动态易扩展且经常是虚拟化的资源。大数据相当于人的大脑从小学到大学记忆和存储的海量知识,这些知识只有通过消化,吸收、再造才能创造出更大的价值。人工智能打个比喻为一个人吸收了人类天量的知识(数据),不断的深度学习、进化成为一方高人。人工智能离不开大数据,更是基于云计算平台完成深度学习进化。

简单总结:通过物联网产生、收集海量的数据存储于云平台,再通过大数据分析,甚至更高形式的人工智能为人类的生产活动,生活所需提供更好的服务这必将是第四次工业革命进化的方向。

4、云计算与大数据

从技术上看,大数据与云计算的关系就像一枚硬币的正反面一样密不可分,大数据必然无法用单台的计算机进行处理,必须采用分布式计算架构。它的特色在于对海量数据的挖掘,但它必须依托云计算的分布式处理、分布式数据库、云存储和虚拟化技术。

5、人工智能与大数据

如果我们把人工智能看成一个嗷嗷待哺拥有无限潜力的婴儿,某一领域专业的海量的深度的数据就是喂养这个天才的奶粉。奶粉的数量决定了婴儿是否能长大,而奶粉的质量则决定了婴儿后续的智力发育水平。

与以前的众多数据分析技术相比,人工智能技术立足于神经网络,同时发展出多层神经网络,从而可以进行深度机器学习。与以外传统的算法相比,这一算法并无多余的假设前提(比如线性建模需要假设数据之间的线性关系),而是完全利用输入的数据自行模拟和构建相应的模型结构。这一算法特点决定了它是更为灵活的、且可以根据不同的训练数据而拥有自优化的能力。

但这一显著的优点带来的便是显著增加的运算量。在计算机运算能力取得突破以前,这样的算法几乎没有实际应用的价值。大概十月年前,我们尝试用神经网络运算一组并不海量的数据,整整等待三天都不一定会有结果。但今天的情况却大大不同了。高速并行运算、海量数据、更优化的算法共同促成了人工智能发展的突破。这一突破,如果我们在三十年以后回头来看,将会是不弱于互联网对人类产生深远影响的另一项技术,它所释放的力量将再次彻底改变我们的生活。

6、人工智能与云计算

人工智能是程序算法和大数据结合的产物。而云计算是程序的算法部分,物联网是收集大数据根系的一部分。可以简单的认为:人工智能=云计算+大数据(一部分来自物联网)。随着物联网在生活中的铺开,它将成为大数据最大,最精准的来源。

现在已进入大数据、云计算、人工智能时代,我们必须弄清楚他们的本质抓住机遇,跟上趋势,创新发展,才能在高科技的发展大潮中立于不败之地。

5.2 大数据的关键技术

5.2.1   Hadoop、MapReduce、NoSQL等技术基本功能

1、Hadoop
1) Hadoop的概述

Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。Hadoop实现了一个分布式文件系统(Distributed File System),其中一个组件是HDFS。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS 放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,而MapReduce则为海量的数据提供了计算。

Hadoop是一个能够让用户轻松架构和使用的分布式计算平台。用户可以轻松地在Hadoop上开发和运行处理海量数据的应用程序。它主要有以下几个优点:

①  高可靠性:Hadoop按位存储和处理数据的能力值得人们信赖。

②  高扩展性:Hadoop是在可用的计算机集簇间分配数据并完成计算任务的,这些集族可以方便地扩展到数以千计的节点中。

③  高效性:Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快。

④  高容错性:Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配。

⑤  低成本:与一体机、商用数提合库以及QliWView,Yonghook Z-Suite等数据集市相比,hadoop是开源的,项目的软件成本因此会大大降低。

Hadoop带有用Java语言编写的框架,因此运行在Linux生产平台上是非常理想的。Hadoop上的应用程序也可以使用其他语言编写,比如C++。

2) Hadoop原理及运行机制

Hadoop的核心由3个子项目组成:Hadoop Common、HDFS、MapReduce。Hadoop由许多元素构成。其最底部是Hadoop Distributed File Syster(HDFS),它存储Hadoop集群中所有存储节点上的文件。HDFS的上一层是MapReduce引擎,该引擎由JobTrackers和TaskTrackers组成。通过对Hadoop分布式计算平台最核心的分布式文件系统HDFS、MapReduce处理过程以及数据仓库工具Hive和分布式数据库Hbase的介绍,基本涵盖了Hatop分布式平台的所有技术核心。

①  Hadoop Common(Hadoop公共服务模块)是Hadoop体系最底层的一个模块,为Hadoop各子项目提供了开发所需的API。在Hadoop 0.20及以前的版本中,Hadoop Common包含HDFS、MapReduce和其他项目公共内容,从Hadoop 0.21开始,HDFS和MapReduce被分离为独立的子项目,其余内容为Hadoop Common,如系统配置工具Configuration、远程过程调用RPC、序列化机制等。

②  HDFS(Hadoop stributed File System,分布式文件系统)是一个类似于Google GFS的开源的分布式文件系统,是Hadoop体系中数据存储管理的基础。它提供了一个有扩展、高可靠、高可用的大规模数据分布式存储管理系统,基于物理上分布在各个数据存储节点的本地Linux系统的文件系统,为上层应用程序提供了一个逻辑上成为整体的大规模数据存储文件系统。

③  MapReduce(并行计算框架)是一种计算模型,用以进行大数据量的计算。其中Map对数据集上的独立元素进行指定的操作,生成键—值对形式中间结果;Reduce则对中间结果中相同“键”的所有“值”进行规约,以得到最终结果。MapReduce这样的功能划分,非常适合在大量计算机组成的分布式并行环境。

2、MapReduce
1) MapRedue的概述

它主要由Client、JobTracker、TaskTracker及Task4个部分组成:

①  JobTracke负责资源监控和作业调度。JobTracker监控所有TaskTracker与job的健康状况,一旦发现失败,就将相应的任务转移到其他节点:同时,JobTracker会跟踪任务的执行进度、资源使用量等信息,并将这些信息告诉任务调度器,而调度器会在资源出现空闲时,选择合适的任务使用这些资源。在Hadoop中,任务调度器是一个可插拔的模块,用户可以根据自己的需要设计相应的调度器;

②  TaskTracker会周期性地通过Heartbeat将本节点上资源的使用情况和任务的运行进度汇报JobTracker,同时接收JobTracker发送过来的命令并执行相应的操作(如启动新任务、结束任务等)。TaskTracker便用“slot”等量划分本节点上的资源量。“slot”代表计算资源(CPU、内存等)。一个Task获取到一个slot后才有机会运行,而Hadoop调度器的作用就是将各个TaskTracker上的空闲slot分配给Task使用。slot分为Map slot和Reduce slot两种,分别供MapTask和ReduceTask使用。TrackeTask通过slot数目(可配置参数)限定Task的并发度。

③  Task分为MapTask和ReduceTask两种,均由TaskTracker启动。HDFS以固定大小的block为基本单位存储数据,而对MapReduce而言,其处理单位是split。split是一个逻辑概念,只包含一些元数据信息,如数据起始位置、数据长度、数据所在节点等。它的划分方法完全由用户自己决定。但需要注意的是,split的多少决定了MapTask的数目,因为每个split只会交给一个MapTask处理。

2) MapReduce的特性
①  可扩展性

MapReduce的扩展性包括数据的可扩展性和计算规模的可扩展性。MapReduce的数据可扩展性体现在随着数据规模的扩大而表现持续的有效性;计算规模的可扩展性体现在随着集群中节点数的增加保持接近线性的增长。

②  高容错性

MapReduce的高容错性体现在可动态增加/减少计算节点,真正实现了弹性计算,而且该框架使用了多种有效的机制来提高容错性,如节点自动重启技术,当集群中的节点失效时,能有效处理失效节点的检测和恢复。

③  高效性

MapReduce采用了数据/代码互定位的技术方法,减少了集群中的数据通信,从而有效降低网络带宽。集群中的每个计算节点尽量负责处理本地存储的数据,仅当本地节点无法处理本地数据时,再采用就近原则寻找其它可用计算节点,并把数据传送到该可用计算节点。

④  动态灵活的资源分配和调度

MapReduce将提交的计算作业分为多个计算任务,任务调度功能主要负责为这些划分后的计算任务分配和调度计算节点(Map节点和educe节点),同时也负责一些计算性能的优化处理,如支持作业调度的优先级和任务抢占等。

⑤  隐藏底层细节

MapReduce的最大优势在于封装了底层实现细节,减少了编程人员在大规模数据处理时需要考虑的诸如数据分布存储管理、数据分发、数据通信和同步等诸多细节问题,有效降低了并行编程难度。编程人员可以从底层细节中解放出来,仅需要关心应用层本身的算法设计,从而提高了编程人员在分布式编程环境下的编程效率。

3、NoSQL

NoSQL,泛指非关系型的数据库。随着Web 2.0网站的兴起,传统的关系型数据库是在处理Web 2.0网站,特别是超大规模和高并发的SNS类型的Web 2.0系数据库纯动态网站已经显得力不从心,出现了很多难以克服的问题,而非关系型的数据则由于其本身的特点得到了非常迅速的发展。NOSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,特别是大数据应用难题。

1) NoSQL的基本含义

NoSQL 最常见的解释是“non—relational”,“Not Only SQL”也被很多人接受。NoSQL仅仅是一个概念,泛指非关系型的数据库,区别于关系数据库,它们不保证关系数据的ACID特性。NOSQL是一项全新的数据库革命性运动,其拥护者们提倡运用非关系型的数据存储,相对于铺天盖地的关系型数据库运用,这概念无疑是一种全新的思维的注入。

NoSQL有如下优点:易扩展,NOSQL数据库种类繁多,但是一个共同的特点都是去掉关系数据库的关系型特性。数据之间无关系,这样就非常容易扩展。无形之间也在架构的层面上带来了可扩展的能力。大数据量,高性能,NOSQL数据库都具有非常高的读写性能,尤其在大数据量下,同样表现优秀。这得益于它的无关系性,数据库的结构简单。

2) NoSQL的分类
①  键值(Key—Value)存储数据库

这一类数据库主要会使用到一个哈希表,这个表中有一个特定的键和一个指针指向特定的数据。Key/value模型对于IT系统来说的优势在于简单易部署。但是如果数据库管理员(DBA)只对部分值进行查询或更新的时候,Key/value就显得效率低下了。举例如:Tokyo Cabinet/Tyrant,Redis,Voldemort,Oracle BDB。

②  列存储数据库

这部分数据库通常是用来应对分布式系储的海量数据。键仍然存在,但是它们的特点是指向了多个列。这些列是由列家族来安排的。如:Cassandra,Hbase,Riak。

③  文档型数据库

文档型数据库的灵感是来自于Lotus Notes办公软件的,而且它同第一种键值存储相类似。该类型的数据模型是版本化的文档,半结构化的文档以特定的格式存储,比如JSON。文档型数据库可以看作是键值数据库的升级版,允许之间嵌套键值,在处理网页等复杂数据时,文档型数据库比传统键值数据库的查询效率更高。如:CouchDB,MongoDb。国内也有文档型数据库SequoiaDB,已经开源。

④  图形(Graph)数据库

图形结构的数据库同其他行列以及刚性结构的SQL数据库不同,它是使用灵活的图形模型,并且能够扩展到多个服务器上。NoSQL数据库没有标准的查询语言(SQL),因此进行数据库查询需要制定数据模型。许多NoSQL数据库都有REST式的数据接口或者查询API。如:Neo4J,InfoGrid,Infinite Graph。

3) NoSQL的特点

对于NoSQL并没有一个明确的范围和定义,但是它们都普遍存在下面一些共同特征:

①  易拓展

NoSQL数据库种类繁多,但是一个共同的特点都是去掉关系数据库的关系型特性。数据之间无关系,这样就非常容易扩展。无形之间,在架构的层面上带来了可扩展的能力。

②  大数据量,高性能

NoSQL数据库都具有非常高的读写性能,尤其在大数据量下同样表现优秀,这得益于它的无关系性,数据库的结构简单。一般MySQL使用Query Cache。NoSQI的Cache是记录级的,是一种细粒度的Cache,所以NoSQL在这个层面上来说性能就要高很多。

③  灵活的数据模型

NoSQL无须事先为要存储的数据建立字段,随时可以存储自定义的数据格式。而在关系数据库里,增删字段是一件非常麻烦的事情。如果是非常大数据量的表,增加字段简直就是一个噩梦。这点在大数据量的Web 2.0时代尤其明显。

④  高可用

NoSQL在不太影响性能的情况,就可以方便地实现高可用的架构。比如Cassandra、HBase模型,通过复制模型也能实现高可用。

4) NoSQL的体系框架

NoSQL框架体系NosoL整体框架分为四层,由下至上分为数据持久层(data persistence)、整体分布层(data distribution model)、数据逻辑模型层(datalogical model)、和接口层(interface),层次之间相辅相成,协调工作。

数据持久层定义了数据的存储形式,主要包括基于硬盘、内存、接口、订制可拔插四种形式。基于内存形式的数据存取速度最快,但可能会造成数据丢失。基于硬盘的数据存储可能保存很久,但存取速度较基于内存形式的慢。内存和硬盘相结合的形式,结合了前两种形式的优点,既保证了速度,又保证了数据不丢失。订制可拔插则保证了数据存取具有较高的灵活性。

数据分布层定义了数据是如何分布的,相对于关系型数据库,NoSQL可选的机制比较多,主要有三种形式:一是CAP支持,可用于水平扩展。二是多数据中心支持,可以保证在横跨多数据中心是也能够平稳运行。三是动态部署支持,可以在运行着的集群中动态地添加或删除节点。

数据逻辑层表述了数据的逻辑表现形式,与关系型数据库相比,NoSQL在逻辑表现形式上相当灵活,主要有四种形式:一是键值模型,这种模型在表现形式上比较单一,但却有很强的扩展性。二是列式模型,这种模型相比于键值模型能够支持较为复杂的数据,但扩展性相对较差。三是文档模型,这种模型对于复杂数据的支持和扩展性都有很大优势。四是图模型,这种模型的使用场景不多,通常是基于图数据结构的数据定制的。

接口层为上层应用提供了方便的数据调用接口,提供的选择远多于关系型数据库。接口层提供了五种选择:Rest,Thrift,Map/Reduce,Get/Put,特定语言API,使得应用程序和数据库的交互更加方便。

NoSQL分层架构并不代表每个产品在每一层只有一种选择。相反,这种分层设计提供了很大的灵活性和兼容性,每种数据库在不同层面可以支持多种特性。

4、开源的NoSQL数据库软件

开源的NoSQL数据库软件有Membase、MongoDB。

5.2.2   爬虫、清洗等技术基本概念及常用工具认知

1、爬虫
1) 爬虫的概述

网络爬虫(又称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。

网络爬虫是一个自动提取网页的程序,它为搜索引擎从万维网上下载网页,是搜索引擎的重要组成。传统爬虫从一个或若干初始网页的URL开始,获得初始网页上的URL,在抓取网页的过程中,不断从当前页面上抽取新的URL放入队列,直到满足系统的一定停止条件。聚焦爬虫的工作流程较为复杂,需要根据一定的网页分析算法过滤与主题无关的链接,保留有用的链接并将其放入等待抓取的URL队列。然后,它将根据一定的搜索策略从队列中选择下一步要抓取的网页URL,并重复上述过程,直到达到系统的某一条件时停止。另外,所有被爬虫抓取的网页将会被系统存贮,进行一定的分析、过滤,并建立索引,以便之后的查询和检索;对于聚焦爬虫来说,这一过程所得到的分析结果还可能对以后的抓取过程给出反馈和指导。

相对于通用网络爬虫,聚焦爬虫还需要解决三个主要问题:

①  对抓取目标的描述或定义;

②  对网页或数据的分析与过滤;

③  对URL的搜索策略。

2) 爬虫的分类

网络爬虫按照系统结构和实现技术,大致可以分为以下几种类型:通用网络爬虫(General Purpose Web Crawler)、聚焦网络爬虫(Focused Web Crawler)、增量式网络爬虫(Incremental Web Crawler)、深层网络爬虫(Deep Web Crawler)。实际的网络爬虫系统通常是几种爬虫技术相结合实现的。

抓取目标的描述和定义是决定网页分析算法与URL搜索策略如何制订的基础。而网页分析算法和候选URL排序算法是决定搜索引擎所提供的服务形式和爬虫网页抓取行为的关键所在。这两个部分的算法又是紧密相关的。

现有聚焦爬虫对抓取目标的描述分为基于目标网页特征、基于目标数据模式和基于领域概念3种。

①  基于目标网页特征

基于目标网页特征的爬虫所抓取、存储并索引的对象一般为网站或网页。根据种子样本获取方式可分为:

Ⅰ  预先给定的初始抓取种子样本;

Ⅱ  预先给定的网页分类目录和与分类目录对应的种子样本,如Yahoo!分类结构等;

Ⅲ  通过用户行为确定的抓取目标样例,分为:

a) 用户浏览过程中显示标注的抓取样本;

b) 通过用户日志挖掘得到访问模式及相关样本。

其中,网页特征可以是网页的内容特征,也可以是网页的链接结构特征,等等。

②  基于目标数据模式

基于目标数据模式的爬虫针对的是网页上的数据,所抓取的数据一般要符合定的模式,或者可以转化或映射为目标数据模式。

③  基于领域概念

另一种描述方式是建立目标领域的本体或词典,用于从语义角度分析不同特征在某一主题中的重要程度。

3) 爬虫的网页搜索策略

网页的抓取策略可以分为深度优先、广度优先和最佳优先三种。深度优先很多情况下会导致爬虫的陷入(trapped)问题,目前常见的是广度优先和最佳优先方法。

①  广度优先搜索

广度优先搜索策略是指在抓取过程中,在完成当前层次的搜索后,才进行下一层次的搜索。该算法的设计和实现相对简单。在目前为覆盖尽可能多的网页,一般使用广度优先搜索方法。也有很多研究将广度优先搜索策略应用于聚焦爬虫中。其基本思想是认为与初始URL在一定链接距离内的网页具有主题相关性的概率很大。另外一种方法是将广度优先搜索与网页过滤技术结合使用,先用广度优先策略抓取网页,再将其中无关的网页过滤掉。这些方法的缺点在于,随着抓取网页的增多,大量的无关网页将被下载并过滤,算法的效率将变低。

②  最佳优先搜索

最佳优先搜索策略按照一定的网页分析算法,预测候选URL与目标网页的相似度,或与主题的相关性,并选取评价最好的一个或几个URL进行抓取。它只访问经过网页分析算法预测为“有用”的网页。存在的一个问题是,在爬虫抓取路径上的很多相关网页可能被忽略,因为最佳优先策略是一种局部最优搜索算法。因此需要将最佳优先结合具体的应用进行改进,以跳出局部最优点。将在第4节中结合网页分析算法作具体的讨论。研究表明,这样的闭环调整可以将无关网页数量降低30%~90%。

③  深度优先搜索

深度优先搜索策略从起始网页开始,选择一个URL进入,分析这个网页中的URL,选择一个再进入。如此一个链接一个链接地抓取下去,直到处完一条路线之后再处理下一条路线。深度优先策略设计较为简单。然而门户网站提供的链接往往最具价值,PageRank也很高,但每深入一层,网页价值和PageRank都会相应地有所下降。这暗示了重要网页通常距离种子较近,而过度深入抓取到的网页却价值很低。同时,这种策略抓取深度直接影响着抓取命中率以及抓取效率,对抓取深度是该种策略的关键。相对于其他两种策略而言,此种策略很少被使用。

4) 爬虫网页分析算法

网页分析算法可以归纳为基于网络拓扑、基于网页内容和基于用户访问行为三种类型。

①  拓扑分析算法

基于网页之间的链接,通过已知的网页或数据,来对与其有直接或间接链接关系的对条(可以是网页或网站等)作出评价的算法。又分为网页粒度、网站粒度和网页块粒度这三种。

②  网页内容分析算法

基于网页内容的分析算法指的是利用网页内容(文本、数据等资源)特征进行的网页评价。网页的内容从原来的以超文本为主,发展到后来动态页面(或称为Hidden Web)数据为主,后者的数据量约为直接可见页面数据(PIW,Publicly Indexable Web)的400~500倍。另一方面,多媒体数据、Web Service等各种网络资源形式也日益丰富。因此,基于网页内容的分析算法也从原来的较为单纯的文本检索方法,发展为涵盖网页数据抽取、机器学习、数据挖掘、语义理解等多种方法的综合应用。本节根据网页数据形式的不同,将基于网页内容的分析算法,归纳以下三类:第一种针对以文本和超链接为主的无结构或结构很简单的网页;第二种针对从结构化的数据源(如RDBMS)动态生成的页面,其数据不能直接批量访问;第三种针对的数据界于第一和第二类数据之间,具有较好的结构,显示遵循一定模式或风格,且可以直接访问。

基于文本的网页分析算法分为:

Ⅰ  纯文本分类与聚类算法

很大程度上借用了文本检索的技术。文本分析算法可以快速有效的对网页进行分类和聚类,但是由于忽略了网页间和网页内部的结构信息,很少单独使用。

Ⅱ  超文本分类和聚类算法

根据网页链接网页的相关类型对网页进行分类,依靠相关联的网页推测该网页的类型。

5) 网络爬虫的组成
①  控制器

控制器是网络爬虫的中央控制器,它主要是负责根据系统传过来的URL链接,分配一线程,然后启动线程调用爬虫爬取网页的过程。

②  解析器

解析器是负责网络爬虫的主要部分,其负责的工作主要有:下载网页的功能,对网页的文本进行处理,如过滤功能,抽取特殊HTML标签的功能,分析数据功能。

③  资源库

主要是用来存储网页中下载下来的数据记录的容器,并提供生成索引的目标源。中大型的数据库产品有:Oracle、Sql Server等。

6) 常用的爬虫工具汇总
①  页面下载器

Requests、scrapy、selenium+chrome+PhantomJ(抓取动态网页)、Splash(抓取动态网页)。

②  页面解释器

BeautifulSoup(入门级)、pyquery(类似jQuery)、lxml、parsel、scrapy的Selector(强烈推荐,比较高级的封装,基于parsel)

③  数据存储

txt文本、csv文件、sqlite3(python自带)、MySQL、MongoDB。

④  其他工具

exec js;执行js、pyv8;执行js、html5lib。

2、数据清洗
1) 数据清洗的基本概念
①  数据清洗

数据清洗(Data cleaning)是对数据进行重新审查和校验的过程,目的在于删除重复信息、纠正存在的错误,并提供数据一致性。

数据清洗从名字上也看的出就是把“脏”的“洗掉”,指发现并纠正数据文件中可识别的错误的最后一道程序,包括检查数据一致性,处理无效值和缺失值等。因为数据仓库中的数据是面向某一主题的数据的集合,这些数据从多个业务系统中抽取而来而且包含历史数据,这样就避免不了有的数据是错误数据、有的数据相互之间有冲突,这些错误的或有冲突的数据显然是我们不想要的,称为“脏数据”。我们要按照一定的规则把“脏数据”“洗掉”,这就是数据清洗。而数据清洗的任务是过滤那些不符合要求的数据,将过滤的结果交给业务主管部门,确认是否过滤掉还是由业务单位修正之后再进行抽取。不符合要求的数据主要是有不完整的数据、错误的数据、重复的数据三大类。数据清洗是与问卷审核不同,录入后的数据清理一般是由计算机而不是人工完成。

②  一致性检查

一致性检查(consistency check)是根据每个变量的合理取值范围和相互关系,检查数据是否合乎要求,发现超出正常范围,逻辑上不合理或者相互矛盾的数据。

③  无效值和缺失值的处理

由于调查、编码和录入误差,数据中可能存在一些无效值和缺失值,需要给予适当的处理。常用的处理方法有:估算、整例删除、变量删除和成对删除。

2) 数据清洗的原理

数据清洗原理:利用有关技术如数理统计、数据挖掘或预定义的清理规则将脏数据转化为满足数据质量要求的数据。

3) 数据清洗的主要类型
①  残缺数据

这一类数据主要是一些应该有的信息缺失,如供应商的名称、分公司的名称、客户的区域信息缺失、业务系统中主表与明细表不能匹配等。对于这一类数据过滤出来,按缺失的内容分别写入不同Excel文件向客户提交,要求在规定的时间内补全。补全后才写入数据仓库。

②  错误数据

这一类错误产生的原因是业务系统不够健全,在接收输入后没有进行判断直接写入后台数据库造成的,比如数值数据输成全角数字字符、字符串数据后面有一个回车操作、日期格式不正确、日期越界等。这一类数据也要分类,对于类似于全角字符、数据前后有不可见字符的问题,只能通过与SQL语句的方式找出来,然后要求客户在业务系统修正之后抽取。日期格式不正确的或者是日期越界的这一类错误会导致ETL运行失败,这一类错误需要去业务系统数据库用SQL的方式挑出来,交给业务主管部门要求限期修正,修正之后再抽取。

③  重复数据

对于这一类数据,特别是维表中会出现这种情况,将重复数据记录的所有字段导出来,让客户确认并整理。

数据清洗是一个反复的过程,不可能在几天内完成,只有不断的发现问题,解决问题。对于是否过滤、是否修正,一般要求客户确认,对于过滤掉的数据,写入Excel文件或者将过滤数据写入数据表,在ETL开发的初期可以每天向业务单位发送过滤数据的邮件,促使他们尽快地修正错误,同时也可以做为将来验证数据的依据。数据清洗需要注意的是不要将有用的数据过滤掉,对于每个过滤规则认真进行验证,并要用户确认。

4) 数据清洗方法

一般来说,数据清理是将数据库精简以除去重复记录,并使剩余部分转换成标准可接收格式的过程。数据清理标准模型是将数据输入到数据清理处理器,通过一系列步骤“清理”数据,然后以期望的格式输出清理过的数据。数据清理从数据的准确性、完整性、一致性、唯一性、适时性、有效性几个方面来处理数据的丢失值、越界值、不一致代码、重复数据等问题。

数据清理一般针对具体应用,因而难以归纳统一的方法和步骤,但是根据数据不同可以给出相应的数据清理方法。

①  解决不完整数据(即值缺失)的方法

大多数情况下,缺失的值必须手工填入(即手工清理)。当然,某些缺失值可以从本数据源或其它数据源推导出来,这就可以用平均值、最大值、最小值或更为复杂的概率估计代替缺失的值,从而达到清理的目的。

②  错误值的检测及解决方法

用统计分析的方法识别可能的错误值或异常值,如偏差分析、识别不遵守分布或回归方程的值,也可以用简单规则库(常识性规则、业务特定规则等)检查数据值,或使用不同属性间的约束、外部的数据来检测和清理数据。

③  重复记录的检测及消除方法

数据库中属性值相同的记录被认为是重复记录,通过判断记录间的属性值是否相等来检测记录是否相等,相等的记录合并为一条记录(即合并/清除)。合并/清除是消重的基本方法。

④  不一致性(数据源内部及数据源之间)的检测及解决方法

从多数据源集成的数据可能有语义冲突,可定义完整性约束用于检测不一致性,也可通过分析数据发现联系,从而使得数据保持一致。

5) 数据清理工具

开发的数据清理工具大致可分为三类:

①  数据迁移工具允许指定简单的转换规则,如将字符gender替换成sex。sex公司的PrismWarehouse是一个流行的工具,就属于这类。

②  数据清洗工具使用领域特有的知识(如邮政地址)对数据作清洗。它们通常采用语法分析和模糊匹配技术完成对多数据源数据的清理。某些工具可以指明源的“相对清洁程度”。工具Integrity和Trillum属于这一类。

③  数据审计工具可以通过扫描数据发现规律和联系。因此,这类工具可以看作是数据挖掘工具的变形。

5.2.3   大数据分析、挖掘、可视化技术等基本概念

1、大数据分析
1) 大数据分析的概述

大数据分析是指对规模巨大的数据进行分析。大数据可以概括为5个V,数据量大(Volume)、速度快(Velocity)、类型(Variety)、价值(Value)、真实性(Veracity)。

大数据作为时下最火热的IT行业的词汇,随之而来的数据仓库、数据安全数据分析、数据挖掘等等围绕大数据的商业价值的利用逐渐成为行业人士争相追捧的利润焦点。随着大数据时代的来临,大数据分析也应运而生。

2) 大数据分析的步骤
1、可视化分析(Analytic Visualizations)

不管是对数据分析专家还是普通用户,数据可视化是数据分析工具最基本的要求。可视化可以直观的展示数据,让数据自己说话,让观众听到结果。

2、数据挖掘算法(Data Mining Algorithms)

可视化是给人看的,数据挖掘就是给机器看的。集群、分割、孤立点分析还有其他的算法让我们深入数据内部,挖掘价值。这些算法不仅要处理大数据的量也要处理大数据的速度。

3、预测性分析能力(Predictive Analytic Capabilities)

数据挖掘可以让分析员更好的理解数据,而预测性分析可以让分析员根据可视化分析和数据挖掘的结果做出一些预测性的判断。

4、语义引擎(Semantic Engines)

我们知道由于非结构化数据的多样性带来了数据分析的新的挑战,我们需要一系列的工具去解析、提取、分析数据。语义引擎需要被设计成能够从“文档”中智能提取信息。

5、数据质量和数据管理(Data Quality and Master Data Management)

数据质量和数据管理是一些管理方面的最佳实践。通过标准化的流程和工具对数据进行处理可以保证一个预先定义好的高质量的分析结果。

假如大数据真的是下一个重要的技术革新的话,我们最好把精力关注在大数据能给我们带来的好处,而不仅仅是挑战。

6、数据存储、数据仓库

数据仓库是为了便于多维分析和多角度展示数据、按特定模式进行存储所建立起来的关系型数据库。在商业智能系统的设计中,数据仓库的构建是关键,是商业智能系统的基础,承担对业务系统数据整合的任务,为商业智能系统提供数据抽取、转换和加载(ETL),并按主题对数据进行查询和访问,为联机数据分析和数据挖掘提供数据平台。

2、数据挖掘
1) 数据挖掘的概述

数据挖掘是指从大量的数据中通过算法搜索隐藏于其中信息的过程。数据挖掘通常与计算机科学有关,并通过统计、在线分析处理、情报检索、机器学习、专家系统(依靠过去的经验法则)和模式识别等诸多方法来实现上述目标。

数据挖掘的对象可以是任何类型的数据源,可以是关系数据库,此类包含结构化数据的数据源;也可以是数据仓库、文本、多媒体数据、空间数据、时序数据、Web数据,此类包含半结构化数据甚至异构性数据的数据源。发现知识的方法可以是数字的、非数字的,也可以是归纳的。最终被发现的知识可以用不信息管理、查询优化、决策支持及数据自身的维护等。

2) 数据挖掘的步骤

在实施数据挖掘之前,先制定采取什么样的步骤,每一步都做什么,达到什么样的目标是必要的,有了好的计划才能保证数据挖掘有条不紊地实施并取得成功。很多软件供应商和数据挖掘顾问公司提供了一些数据挖掘过程模型,来指导他们的用户一步步地进行数据挖掘工作。比如,SPSS公司的5A和SAS公司的SEMMA。

数据挖掘过程模型步骤主要包括定义问题、建立数据挖掘库、分析数据、准备数据、建立模型、评价模型和实施。下面让我们来具体看一下每个步骤的具体内容:

①  定义问题

在开始知识发现之前最先的也是最重要的要求就是了解数据和业务问题。必须要对目标有一个清晰明确的定义,即决定到底想干什么。比如想提高电子信箱的利用率时,想做的可能是“提高用户使用率”,也可能是“提高一次用户使用的价值”,要解决这两个问题而建立的模型几乎是完全不同的,必须做出决定。

②  建立数据挖掘库

建立数据挖掘库包括以下几个步骤:数据收集,数据描述,选择,数据质量评估和数据清理,合并与整合,构建元数据,加载数据挖掘库,维护数据挖掘库。

③  分析数据

分析的目的是找到对预测输出影响最大的数据字段,和决定是否需要定义导出字段。如果数据集包含成百上千的字段,那么浏览分析这些数据将是一件非常耗时和累人的事情,这时需要选择一个具有好的界面和功能强大的工具软件来协助你完成这些事情。

④  准备数据

这是建立模型之前的最后一步数据准备工作。可以把此步骤分为四个部分:选择变量,选择记录,创建新变量,转换变量。

⑤  建立模型

建立模型是一个反复的过程。需要仔细考察不同的模型以判断哪个模型对面对的商业问题最有用。先用一部分数据建立模型,然后再用剩下的数据来测试和验证这个得到的模型。有时还有第三个数据集,称为验证集,因为测试集可能受模型的特性的影响,这时需要一个独立的数据集来验证模型的准确性。训练和测试数据挖掘模型需要把数据至少分成两个部分,一个用于模型训练,另一个用于模型测试。

⑥  评价模型

模型建立好之后,必须评价得到的结果、解释模型的价值。从测试集中得到的准确率只对用于建立模型的数据有意义。在实际应用中,需要进一步了解错误的类型和由此带来的相关费用的多少。经验证明,有效的模型并不一定是正确的模型。造成这一点的直接原因就是模型建立中隐含的各种假定。因此,直接在现实世界中测试模型很重要。先在小范围内应用,取得测试数据,觉得满意之后再向大范围推广。

⑦  实施

模型建立并经验证之后,可以有两种主要的使用方法。第一种是提供给分析人员做参考;另一种是把此模型应用到不同的数据集上。

3) 数据挖掘的分析方法

数据挖掘分为有指导的数据挖掘和无指导的数据挖掘。有指导的数据挖掘是利用可用的数据建立一个模型,这个模型是对一个特定属性的描述。无指导的数据挖掘是在所有的属性中寻找某种关系。具体而言,分类、估值和预测属于有指导的数据挖掘;关联规则和聚类属于无指导的数据挖掘。

①  分类

它首先从数据中选出已经分好类的训练集,在该训练集上运用数据挖掘技术,建立一个分类模型,再将该模型用于对没有分类的数据进行分类。

②  估值

估值与分类类似,但估值最终的输出结果是连续型的数值,估值的量并非预先确定。估值可以作为分类的准备工作。

③  预测

它是通过分类或估值来进行,通过分类或估值的训练得出一个模型,如果对于检验样本组而言该模型具有较高的准确率,可将该模型用于对新样本的未知变量进行预测。

④  相关性分组或关联规则

其目的是发现哪些事情总是一起发生。

⑤  聚类

它是自动寻找并建立分组规则的方法,它通过判断样本之间的相似性,把相似样本划分在一个簇中。

4) 数据挖掘的经典算法

目前,数据挖掘的算法主要包括神经网络法、决策树法、遗传算法、粗糙集法、模糊集法、关联规则法等。

①  神经网络法

神经网络法是模拟生物神经系统的结构和功能,是一种通过训练来学习的非线性预测模型,它将每一个连接看作一个处理单元,试图模拟人脑神经元的功能,可完成分类、聚类、特征挖掘等多种数据挖掘任务。神经网络的学习方法主要表现在权值的修改上,其优点是具有抗干扰、非线性学习、联想记忆功能,对复杂情况能得到精确的预测结果;缺点首先是不适合处理高维变量,不能观察中间的学习过程,具有“黑箱”性输出结果也难以解释;其次是需较长的学习时间。神经网络法主要应用于数据挖掘的聚类技术中。

②  决策树法

决策树是根据对目标变量产生效用的不同而建构分类的规则,通过一系列的规则对数据进行分类的过程,其表现形式是类似于树形结构的流程图。最典型的算法是J.R.Quinlan于1986年提出的ID3算法,之后在ID3算法的基础上又提出了极其流行的C 4.5算法。采用决策树法的优点是决策制定的过程是可见的,不需要长时间构造过程、描述简单,易于理解,分类速度快;缺点是很难基于多个变量组合发现规则。决策树法擅长处理非数值型数据,而且特别适合大规模的数据处理。决策树提供了一种展示类似在什么条件下会得到什么值这类规则的方法。比如,在贷款申请中,要对申请的风险大小做出判断。

③  遗传算法

遗传算法模拟了自然选择和遗传中发生的繁殖、交配和基因突变现象,是一种采用遗传结合、遗传交叉变异及自然选择等操作来生成实现规则的、基于进化理论的机器学习方法。它的基本观点是“适者生存”原理,具有隐含并行性、易于和其他模型结合等性质。主要的优点是可以处理许多数据类型,同时可以并行处理各种数据;缺点是需要的参数太多,编码困难,一般计算量比较大。遗传算法常用于优化神经元网络,能够解决其他技术难以解决的问题。

④  粗糙集法

粗糙集法也称粗糙集理论,是由波兰数学家Z Pawlak在20世纪80年代初提出的,是一种新的处理含糊、不精确、不完备问题的数学工具,可以处理数据约简、数据相关性发现、数据意义的评估等问题。其优点是算法简单,在其处理过程中前以不需要关于数据的先验知识,可以自动找出问题的内在规律;缺点是难以直接处理连续的属性,须先进行属性的离散化。因此,连续属性的离散化问题是制约粗糙集理论实用化的难点。粗糙集理论主要应用于近似推理、数字逻辑分析和化简、建立预测模型等问题。

⑤  模糊集法

模糊集法是利用模糊集合理论对问题进行模糊评判、模糊决策、模糊模式识别和模糊聚类分析。模糊集合理论是用隶属度来描述模糊事物的属性。系统的复杂性越高,模糊性就越强。

⑥  关联规则法

关联规则反映了事物之间的相互依赖性或关联性。其最著名的算法是R.Agrawal等人提出的Apriori算法。其算法的思想是:首先找出频繁性至少和预定意义的最小支持度一样的所有频集,然后由频集产生强关联规则。最小支持度和最小可信度是为了发现有意义的关联规则给定的2个阈值。在这个意义上,数据挖掘的目的就是从源数据库中挖掘出满足最小支持度和最小可信度的关联规则。

5) 数据挖掘存在的问题

与数据挖掘有关的,还牵扯到隐私问题,例如一个雇主可以通过访问医疗记录来筛选出那些有糖尿病或者严重必脏病的人,从而意图削减保险支出。然而,这种做法会导致伦理和法律问题。对于政府和商业数据的挖掘,可能会涉及到的,是国家安全或者商业机密之类的问题。这对于保密也是个不小的挑战。

数据挖掘有很多合法的用途,例如可以在患者群的数据库中查出某药物和其副作用的关系。这种关系可能在1000人中也不会出现一例,但药物学相关的项目就可以运用此方法减少对药物有不良反应的病人数量,还有可能挽救生命;但这当中还在着数据库可能被滥用的问题。

数据挖掘实现了用其他方法不可能实现的方法来发现信息,但它必须受到规范,应当在适当的说明下使用。如果数据是收集自特定的个人,那么就会出现一些涉及保密、法律和伦理的问题。

3、可视化技术

可视化是一种映射,将客观世界的信息映射为易于被人类感知的视觉模式。数据可视化将数据映射为视觉模式,探索、解释隐藏在数据背后的信息,在保证信息传递的基础上寻求美感,用数据讲故事既是一门科学,又是一门艺术!

根据目标的不同,数据可视化可分为探索性分析和解释性分析:

①  探索性分析:探索、理解数据,并找出事先不确定、但值得关注或分享的信息。

②  解释性分析:向受众解释确定的问题,并有针对性的进行交流和展示。

数据可视化工具有:

集成软件工具:Excel、Google Sheet、Tableau等。

编程语言工具:R、Python可视化的第三方库、D3.js等。

特定数据工具:Gephi、QGIS、Gapminder等。

后期制作工具:Adobe Illustrator、Inkscape、信息图Infographics Piktochart等。

5.3 大数据主要应用领域

5.3.1   大数据的典型应用

在表来的几十年里,大数据影响着每一个人。大数据冲击着许多主要行业,包括零售金融行业、医疗行业等,大数据也在彻底地改变着我们的生活。

1、智慧城市

如今,世界超过一半的人口生活在城市里,到2050年这一数字会增长到75%。政府需要利用一些技术手段来管理好城市,使城市里的资源得到良好配置。大数据作为其中的一项技术可以有效帮助政府实现资源科学配置,精细化运营城市,打造智慧城市。

2、金融行业

大数据在金融行业应用范围较广,很多金融行业建立了大数据平台,对金融行业的交易数据进行采集和处理。大数据在金融行业的应用主要应用于精准营销、风险管控、决策支持、效率提升、金融产品设计等五个方面。

3、医疗行业

医疗行业拥有大量病例、病理报告、医疗方案、药物报告等。如果这些数据进行整理和分析,将会极大地帮助医生和病人。在未来,借助于大数据平台我们可以收集疾病的基本特征、病例和治疗方案,建立针对疾病的数据库,帮助医生进行疾病诊断。

4、农牧业

农产品不容易保存,合理种植和养殖农产品对农民非常重要。借助于大数据提供的消费能力和趋势报告,政府将为农牧业生产进行合理引导,依据需求进行生产,避免产能过剩,造成不必要的资源和社会财高浪费。

大数据技术可以帮助政府实现农业的精细化管理,实现科学决策。在数据驱动下,结合无人机技术,农民可以采集农产品生长信息、病虫害信息。

5、零售行业

零售行业可以通过客户购买记录,了解客户关联产品购买喜好,将相关的产品放到一起增加产品销售额。零售行业还可以记录客户购买习惯,对于必备生活用品,在客户即将用完之前通过精准广告的方式提醒客户进行购买。或者定期通过网上商城进行送货,既帮助客户解决了问题,又提高了客户体验。利用大数据的技术,零售行业将至少会提高30%左右的销售额,并提高客户购买体验。

6、大数据技术产业

进入移动互联网之后,非结构化数据和结构化数据呈指数方式增长。现在人类社会每两年产生的数据将超过人类历史过去所有数据的总量。这些大数据为大数据技术产业提供了巨大的商业机会。据估计全世界在大数据采集、存储、处理、清晰、分析所产生的商业机会将会超过2000亿美金,包括政府和企业在大数据计算和存储,数据挖掘和处理等方面等投资。未来中国的大数据产业将会呈几何级数增长,在5年之内,中国的大数据产业将会形成万亿规模的市场。

7、物流行业

物流行业借助于大数据,可以建立全国物流网络,了解各个节点的运货需求和运力,合理配置资源,降低货车的返程空载率,降低超载率,减少重复路线运输降低小规模运输比例。通过大数据技术,及时了解各个路线货物运送需求,同时建立基于地理位置和产业链的物流港口,实现货物和运力的实配比,提高物流行业的运输效率。

借助于大数据技术对物流行业进行的优化资源配置,至少可以增加物流行业10%左右的收入,其市场价值将在5000亿左右。

8、房地产业

借助于大数据,房地产业可以了解开发土地所在范围常驻人口数量、流动人口数量、消费能力、消费特点、年龄阶段,人口特征等重要信息。这些信息将会帮助房地商在商业地产开发、商户招商、房屋类型、小区规模进行科学规划。利用大数据技术,房地产行业将会降低房地产开发前的规划风险合理制定房价,合理制定开发规模,合理进行商业规划。已经有房地产公司将大数据技术应用于用户画像、土地规划、商业地产开发等领域,并取得了良好的效果。

9、制造业

制造业过去面临生产过剩的压力,很多产品包括家电、纺织产品、钢材、水泥、电解铝等都没有按照市场实际需要生产,造成了资源的极大浪费。利用电商数据、移动互联网数据、零售数据,我们可以了解未来产品市场都需求,合理规划产品生产,避免生产过剩。大数据技术还可以根据社交数据和购买数据来了解客户需求,帮助厂商进行产品开发,设计和生产出满足客户需要的产品。

10、互联网广告业

大数据技术可以将客户在互联网上的行为记录下来,对客户的行为进行分析打上标签并进行用户画像。利用移动互联网大数据技术进行的精准营销将会提高十倍以上的客户转化率,广告行业的程序化购买正在逐步替代广播式广告投放。大数据技术将帮助广告主和广告公司直接将广告投放给目标用户,其将会降低广告投入,提高广告的转化率。

5.3.2   大数据未来发展趋势

在大数据发展的过程中,逐渐表现出以下几种趋势:

1、数据的资源化

何为资源化,是指大数据成为企业和祛参关注的重要战略资源,并已成为大家争相抢夺的新焦点。因而,企业必须要提前制定大数据营销战略计划,抢占市场先机。

2、与云计算的深度结合

大数据离不开云处理,云处理为大数据提供了弹性可拓展的基础设备,是产生大数据的平台之一。自2013年开始,大数据技术已开始和云计算技术紧密结合,预计未来两者关系将更为密切。除此之外,物联网、移动互联网等新兴计算形态,也将一齐助力大数据革命,让大数据营销发挥出更大的影响力。

3、科学理论的突破

随着大数据的快速发展,就像计算机和互联网一样,大数据很有可能是新一轮的技术革命。随之兴起的数据挖掘、机器学习和人工智能等相关技术,可能会改变数据世界里的很多算法和基础理论,实现科学技术上的突破。

4、数据科学和数据联盟的成立

未来,数据科学将成为一门专门的学科,被越来越多的人所认知。各大高校将设立专门的数据科学类专业,也会催生一批与之相关的新的就业岗位。与此同时,基于数据这个基础平台,也将建立起跨领域的数据共享平台,之后,数据共享将扩展到企业层面,并且成为未来产业的核心一环。

5、数据泄露泛滥

未来几年数据泄露事件的增长率也许会达到100%,除非数据在其源头就能够得到安全保障。可以说,在未来,每个财富500强企业都会面临数据攻击,无论他们是否已经做好安全防范。而所有企业,无论规模大小,都需要重新审视今天的安全定义。在财富500强企业中,超过50%将会设置首席信息安全官这一职位。企业需要从新的角度来确保自身以及客户数据,所有数据在创建之初便需要获得安全保障,而并非在数据保存的最后一个环节,仅仅加强后者的安全措施已被证明于事无补。

6、数据管理称为核心竞争力

数据管理成为核心竞争力,直接影响财务表现。当“数据资产是企业核心资产”的概念深入人心之后,企业对于数据管理便有了更清晰的界定,将数据管理作为企业核心竞争力,持续发展,战略性规划与运用数据资产,成为企业数据管理的核心。数据资产管理效率与主营业务收入增长率、销售收入增长率显著正相关;此外,对于具有互联网思维的企业而言,数据资产竞争力所占比重为36.8%,数据资产的管理效果将直接影响企业的财务表现。

7、数据质量是BI(商业智能)成功的关键

采用自助式商业智能工具进行大数据处理的企业将会脱颖而出。其中要面临的一个挑战是,很多数据源会带来大量低质量数据。想要成功,企业需要理解原始数据与数据分析之间的差距,从而消除低质量数据并通过BI获得更佳决策。

8、数据生态系统复合化程度加强

大数据的世界不只是一个单一的、巨大的计算机网络,而是一个由大量活动构件与多元参与者元素所构成的生态系统,终端设备提供商、基础设施提供商网络服务提供商、网络接入服务提供商、数据服务使能者、数据服务提供商、触点服务、数据服务零售商等等一系列的参与者共同构建的生态系统。而今,这样一套数据生态系统的基本雏形已然形成,接下来的发展将趋向于系统内部角色的细分,也就是市场的细分;系统机制的调整,也就是商业模式的创新;系统结构的调整,也就是竞争环境的调整等等,从而使得数据生态系统复合化程度逐渐增强。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
概览Apache Geode 是一个数据管理平台,提供实时的、一致的、贯穿整个云架构地访问数据关键型应用.Geode 池化了服务器上的内存, CPU, 网络资源, 和本地磁盘,跨多个进程来管理应用对象和应用行为. 它使用了动态数据复制和分区技术来实现高可用, 高性能, 高可扩展性, 和容错. 另外, 对于一个分布式数据容器, Apache Geode 是一个基于内存的数据管理系统, 提供了可靠的异步事件通知和可靠的消息投递.Apache Geode 是一个相当成熟, 强健的技术, 最初由GemStone Systems 公司开发(位于美国俄勒冈州的比弗顿市). 商标为 GemFire™, 此项技术初期被广泛应用在金融领域, 用于华尔街交易平台,作为事务性, 低延时的数据引擎. 那么今天Apache Geode 有超过600家大中型企业级用户, 主要是必须满足低延时和24x7 高可靠要求的,高可扩展的关键业务应用系统. 此工程目前在ASF下正处于孵化阶段, 通过孵化器来提供赞助. 孵化对于所有新加入的工程很重要,直到基础设施, 通信, 决策流程足够稳定,和其他成功的 ASF工程一致. 当孵化器状态完成或代码稳定时, 它提示此工程完全由 ASF 承认.主要概念和模块缓存 是一个抽象的概念, 在一个 Geode 分布式系统中用于描述一个节点.在每个缓存中, 你定义数据 regions. 数据 regions 类似于传统关系型数据库中的'表'的概念, 以分布式的方式来管理数据 , 表现为名/值对儿形式. 在分布式系统的每个缓存成员中, 一个 复制 region 保存数据的拷贝. 一个 分区 region 跨缓存成员来同步数据. 在系统配置后, 客户端应用能够访问regions 中的分布式数据, 而不需要知道系统整体架构的知识. 你能够定义监听器来接收通知, 当数据发生变化时, 同时你也能够定义超时标准来删除在一个 region 中的废弃掉的数据.Locators 提供了发现和负载均衡服务. 你配置带有 locator 服务列表的客户端, 同时 locators 维护一个成员服务器的动态列表. 默认情况下, Geode 客户端和服务器使用端口 40404 和多播来互相发现.Geode 包含了如下的特性:结合冗余, 复制, 和 "shared nothing" 的一致性架构来交付 '自动防故障' 的可靠性和高性能.水平扩展到数千个缓存成员, 具有多种缓存拓扑结构来满足不同的企业级部署需求. 缓存能够跨多台机器进行分布.异步和同步缓存更新传播.Delta 传播只分发新版本和旧版本的变化量 (delta) , 而不是整个对象, 从而可以节省大量的网络开销.通过经过优化的, 低延时的通信层进行可靠的异步事件通知, 高保障的消息投递.在没有额外硬件的辅助下, 应用可以加速4 到 40,000 倍.数据感知和实时BI. 当你查询时, 如果数据变化了, 你能够立刻在系统中看见数据的变化.集成 Spring 框架来加速和简化高可扩展、高并发和事务型企业级应用的开发复杂度.JTA 兼容的事务支持.集群的配置可以写到文件中和导出到其他集群中.通过HTTP做 远程集群管理.基于REST应用开发的REST APIs.滚动升级是可行的, 但是需要服从新特性的限制问题. 标签:Apache

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

新世紀渾水摸魚戰士

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值