大数据的基本概念
1、什么是大数据?大数据(Big data或Megadata):大数据,或称巨量数据、海量数据、大资料,指的是所涉及的数据量规模巨大到无法通过人工,在合理时间达到截取、管理、处理、并整理成为人类所能解读的形式的信息。大数据新手学习交流群,如果有想学习大数据或者交流经验的都可以加入,一起互相学习交流:→→→点击我即可加入圈子2、大数据特点①Volume:数据量大,包括采集、存储和计算的量都非常大。大数据的起始计量单位至少是P(1000个T)、E(100万个T)或Z(10亿个T)。②Variety:种类和来源多样化。包括结构化、半结构化和非结构化数据,具体表现为网络日志、音频、视频、图片、地理位置信息等等,多类型的数据对数据的处理能力提出了更高的要求。③Value:数据价值密度相对较低,或者说是浪里淘沙却又弥足珍贵。随着互联网以及物联网的广泛应用,信息感知无处不在,信息海量,但价值密度较低,如何结合业务逻辑并通过强大的机器算法来挖掘数据价值,是大数据时代最需要解决的问题。④Velocity:数据增长速度快,处理速度也快,时效性要求高。比如搜索引擎要求几分钟前的新闻能够被用户查询到,个性化推荐算法尽可能要求实时完成推荐。这是大数据区别于传统数据挖掘的显著特征。⑤Veracity:数据的准确性和可信赖度,即数据的质量。二、数据仓库1、什么是数据仓库?在计算中,数据仓库(DW或DWH)也称为企业数据仓库(EDW),是用于报告和数据分析的系统,被视为商业智能的核心组件。DWs从一个或多个不同源的综合数据的中央储存库。他们将当前和历史数据存储在一个地方,用于为整个企业的工作人员创建分析报告。2、数据仓库两种操作方式的特点①在线分析处理(OLAP)的特点是交易量相对较低。查询往往非常复杂,涉及到聚合。对于OLAP系统,响应时间是一种有效性度量。数据挖掘技术广泛使用OLAP应用程序。OLAP数据库以多维模式(通常为星型模式)存储汇总的历史数据。与数据集市相比,OLAP系统通常具有数小时的数据延迟,而数据集市预计延迟将接近一天。OLAP方法用于分析来自多个来源和视角的多维数据。OLAP中的三个基本操作是:总结(合并),钻取和切片和切块。②联机事务处理(OLTP)的特点是大量短暂的在线事务(INSERT,UPDATE,DELETE)。OLTP系统强调非常快速的查询处理并保持多访问环境中的数据完整性。对于OLTP系统,有效性以每秒交易次数来衡量。OLTP数据库包含详细和当前的数据。用于存储事务数据库的模式是实体模型(通常是3NF)。规范化是对在该系统中数据建模技术的规范。三、ETL与DM的区别ETL/Extraction-Transformation-Loading——用于完成DB到DW的数据转存,它将DB中的某一个时间点的状态,“抽取”出来,根据DW的存储模型要求,“转换”一下数据格式,然后再“加载”到DW的一个过程,这里需要强调的是,DB的模型是ER模型,遵从范式化设计原则,而DW的数据模型是雪花型结构或者星型结构,用的是面向主题,面向问题的设计思路,所以DB和DW的模型结构不同,需要进行转换。DM/Data Mining/数据挖掘——这个挖掘,不是简单的统计了,他是根据概率论的或者其他的统计学原理,将DW中的大数据量进行分析,找出我们不能直观发现的规律。四、Hadoop1、什么是Hadoop?维基百科上面,Hadoop的定义是:一个用java语言编写的便于大型数据集合的分布式储存和计算的软件框架。简单来说,这是计算机领域的一个开源软件,任何程序开发者都可以看到它的源代码,并且进行编译。它的出现让大数据的储存和处理一下子变的快了很多,也便宜了很多。2、Hadoop特点是什么?①高效率(Efficient):分布式云计算,采用标准x86架构服务器大规模集群实现,每个模块都是一个离散的处理单元,使用并行计算技术,及群内各计算节点负载均衡,当某节点负荷过高时,可智能的将负荷转移到其他节点,并支持节点线性平滑扩展;分布式云存储,采用x86服务器的本地硬盘实现,使用分布式文件系统,每份数据至少保存在3个节点,保证存储设计的性能和可靠性目标。②可靠性(Reliable):能搞自身的维护数据的多个成本,并且在任务失败是自动的重新部署计算任务③可扩容性(Scalable):能可靠的储存和处理PB级的数据④成本低(Economical):可以通过普通机器组成的服务器群来分发以及处理数据。这些服务器群总计可达数千个节点。
大数据产生的原因
进入2012年,大数据(big data)一词越来越多地被提及,人们用它来描述和定义信息爆炸时代产生的海量数据,并命名与之相关的技术发展与创新。它已经上过《纽约时报》《华尔街日报》的专栏封面,进入美国白宫官网的新闻,现身在国内一些互联网主题的讲座沙龙中,甚至被嗅觉灵敏的证券公司等写进了投资推荐报告。数据正在迅速膨胀并变大,它决定着企业的未来发展,虽然现在企业可能并没有意识到数据爆炸性增长带来问题的隐患,但是随着时间的推移,人们将越来越多的意识到数据对企业的重要性。大数据时代对人类的数据驾驭能力提出了新的挑战,也为人们获得更为深刻、全面的洞察能力提供了前所未有的空间与潜力。最早提出大数据时代到来的是全球知名咨询公司麦肯锡,麦肯锡称:“数据,已经渗透到当今每一个行业和业务职能领域,成为重要的生产因素。人们对于海量数据的挖掘和运用,预示着新一波生产率增长和消费者盈余浪潮的到来。”“大数据”在物理学、生物学、环境生态学等领域以及军事、金融、通讯等行业存在已有时日,却因为近年来互联网和信息行业的发展而引起人们关注。大数据在互联网行业指的是这样一种现象:互联网公司在日常运营中生成、累积的用户网络行为数据。这些数据的规模是如此庞大,以至于不能用G或T来衡量,大数据的起始计量单位至少是P(1000个T)、E(100万个T)或Z(10亿个T)。
产生大数据的的一个很重要的因素是芯片技术的提升,信息处理能力按照摩尔定理逐年加快,同时成本相对下降。芯片技术的提升导致数据存储成本的下降、信息传输速率的不断提升、计算能力的提升,缺了任何一项,大数据就很难生存。在这个过程中,互联网、移动互联网的普及的快速发展让大数据向我们快速走来。有了这些作为基础,各种传感器的出现,物联网的应用不断涌现,大数据将会越来越大。
大数据这个术语的出现大概可追溯到Apache的开源项目Nutch。当时,大数据——Big Data——是用来描述为更新网络搜索索引需同时进行批量处理或分析的大量数据集。随着MapReduce和Google File System(GFS)的发布,从2009年开始,大数据才开始成为互联网行业的流行词汇,也吸引了越来越多的关注。物联网、云计算、移动互联网、手机与平板电脑、PC以及遍布各个角落的各种各样的传感器,无一不是大数据的来源或承载方。可以说,大数据就在我们的身边——从阿里巴巴、1号店、京东商城等电子商务数据,到QQ、MSN等即时聊天内容,再到Google、Bing、百度,又到社会网络与微博数据等,都在生产、承载着大数据。随着大量的数据的产生也给数据处理和挖掘带来许多困难,信息处理量的增大(注:据统计,Facebook对某一主题进行搜索时,需在超过50TB的数据中迅速找出相关内容;在eBay存储了超过2PB的数据以备查询需要),很多传统方法(如RDBMS、SQL查询等)都不能直接应用在对海量数据的处理上,否则时间开销将会变得非常大。对大数据的挖掘与分析变得愈发重要。而通过对Google、百度、Bing、Facebook、网页文本、微博消息等的挖掘与分析,使人们的行为和情绪的细化测量成为可能。挖掘用户的行为习惯和喜好,从凌乱纷繁的大数据背后找到符合用户兴趣和习惯的产品和服务并对产品和服务进行有针对性地调整和优化,本身就蕴含着巨大的商机。北京理工大学大数据搜索与挖掘实验室张华平主任研发的NLPIR大数据语义智能分析技术是满足大数据挖掘对语法、词法和语义的综合应用。NLPIR大数据语义智能分析平台是根据中文数据挖掘的综合需求,融合了网络精准采集、自然语言理解、文本挖掘和语义搜索的研究成果,并针对互联网内容处理的全技术链条的共享开发平台。NLPIR大数据语义智能分析平台主要有精准采集、文档转化、新词发现、批量分词、语言统计、文本聚类、文本分类、摘要实体、智能过滤、情感分析、文档去重、全文检索、编码转换等十余项功能模块,平台提供了客户端工具,云服务与二次开发接口等多种产品使用形式。各个中间件API可以无缝地融合到客户的各类复杂应用系统之中,可兼容Windows,Linux, Android,Maemo5, FreeBSD等不同操作系统平台,可以供Java,Python,C,C#等各类开发语言使用。
大数据概念的提出
2014 年,马云提出,“人类正在从 IT 时代走向 DT 时代”。如果说在 IT 时代是以自我控制、自我管理为主,那么到了 DT(Data Technology) 时代,则是以服务大众、激发生产力为主。 在 DT 时代,人们比以往任何时候更能收集到更丰富的数据。数据正在变革我们的生活,催生了大数据行业的发展。百度百科中这样定义大数据(big data),指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。这个新处理模式,就是大数据技术了。下图是我整理的主要大数据技术发展历程。在大数据时代,传统的软件已经无法处理和挖掘大量数据中的信息。最重要的变革着就是谷歌的“三架马车”。谷歌在 2004 年左右相继发布谷歌分布式文件系统 GFS、大数据分布式计算框架 Mapreduce、大数据 Nosql 数据库 BigTable ,这三篇论文奠定了大数据技术的基石。变革总是像谷歌那样的大公司主导的,在当时大部分公司还在致力于提高单机性能时,谷歌已经开始设想把数据存储、计算分给大量的廉价计算机去执行。受 Google 的论文启发,2004 年 7 月,Doug Cutting 和 Mike Cafarella 在 Nutch 中实现了类似 GFS 的功能,即后来 HDFS 的前身。后来 2005 年 2 月,Mike Cafarella在 Nutch 中实现了 MapReduce 的最初版本。到 2006 年 Hadoop 从 Nutch 中分离出来并启动独立项目。Hadoop 的开源推动了后来大数据产业的蓬勃发展,带了了一场深刻的技术革命。接下来,大数据相关技术不断发展,开源的做法让大数据生态逐渐形成。由于 Mapredece 编程繁琐,Facebook 贡献 Hive,sql 语法为数据分析、数据挖掘提供巨大帮助。第一个运营 Hadoop 的商业化公司 Cloudera 也在 2008 年成立。由于内存硬件已经突破成本限制,2014 年 Spark 逐渐替代 Mapreduce 的地位,受到业界追捧。Spark 在内存内运行程序的运算速度能做到比 Hadoop MapReduce 的运算速度快 100 倍,并且其运行方式适合机器学习任务。Spark 在 2009 年诞生于 UC Berkeley AMPLab, 2010 年开源,2013 年贡献到 Apache 基金会。Spark 和 Mapreduce 都专注于离线计算,通常时间是几十分钟甚至更长时间,为批处理程序。由于实时计算的需求,流式计算引擎开始出现,包括 Storm、Flink、Spark Streaming。大数据存储和处理技术的发展同时也带动了数据分析、机器学习的蓬勃发展,也促使了新兴产业的不断涌现。大数据技术是基石,人工智能的落地是下一个的风口。身处在互联网行业中,感觉到技术进步很快,要略去浮躁,把握住变革的到来。摘录一个总结: 1.论文奠定技术发展基石; 2.业务催生技术不断突破; 3.效率倒逼技术迭代更新
大数据这一术语产生于全球数据爆炸增长的背景下,用来形容庞大的数据集合。而大数据时代的到来标志着一场深刻的革命,这似乎才是信息化发展的“第三次浪潮”。其来势之迅猛,对经济社会及人们的生产生活影响之巨大、之深刻,是难以估量的。信息正以生产资料要素的身份参与到生产之中,其表现形式就是信息数据的资源化和人们行为的数据化,大到数字政府、数字经济、数字社会,小到数字城市、数字交通、数字环保等都应运而生。数据资源这种取之不尽、用之不竭并在无限循环中的交互作用,使其价值难以估量。虽然,我国大数据发展起步较晚,但发展速度却非常快。国家对大数据十分重视,明确提出要“实施国家大数据战略,推进数据资源开放共享”。大数据已成为时代的潮流,历史的必然。在新中国成立70周年之际,我们回顾过去,聚焦大数据这一新兴技术的发展。为大家呈现大数据在我国发展的一些脉络;同时展望未来,迎接新一轮科技革命的机遇与挑战。
作者:数据控
链接:https://zhuanlan.zhihu.com/p/254907113
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
大数据战略作为‘十三五’期间的十四大国家战略之一,是中国经济发展新的驱动力。大数据通过提供全样本分析手段,使得很多不可能变成可能,在各个行业领域都已经产生了重要影响,大数据的魅力无处不在。今天的文章,我就从大数据的发展历史、特点、现状和典型案例等角度,对大数据技术进行一下综合介绍。(1)大数据的发展历程随着计算机和网络的发展,信息不断“爆炸”:1970s: 超大规模数据库 (VLDB)【GB=10^9字节】21世纪初:海量数据(massive data)【TB=10^12字节】2008年:Big data 【PB=1015字节】现在实际的数据量已经达到:ZB=103EB=106PB=1021字节一个新单位:1YB=103ZB=1024字节2008年9月4日,《自然》(Nature)刊登了一个名为“Big Data”的专辑。2011年5月,美国著名咨询公司麦肯锡(McKinsey)发布《大数据:创新、竞争和生产力的下一个前沿》的报告,首次提出了“大数据”概念,认为数据已经成为经济社会发展的重要推动力。大数据指的是大小超出常规的数据库工具获取、存储、管理和分析能力的数据集。2013年3月29日,美国奥巴马政府宣布推出“大数据研究和发展计划”(Big Data Research and Development Initiative),有人将其比之为克林顿政府当年提出的“信息高速公路”计划 。该计划涉及美国国家科学基金会、卫生研究院、能源部、国防部等6个联邦政府部门,投资超两亿美元,研发收集、组织和分析大数据的工具及技术。2012年7月日本推出“新ICT战略研究计划”,在新一轮IT振兴计划中日本政府把大数据发展作为国家层面战略提出。这是日本新启动的2011年大地震一度搁置的政府ICT战略研究。英国政府也宣称投资6亿英镑科学资金,并计划在未来两年内在大数据和节能计算研究投资1.89亿英镑。政府把大量的资金投入到计算基础设施,用以捕捉并分析通过开放式数据革命获得的数据流,带动企业投入更多的资金。2012年3月,我国科技部发布的“十二五国家科技计划信息技术领域2013年度备选项目征集指南”把大数据研究列在首位。中国分别举办了第一届(2011年)和第二届(2012年)“大数据世界论坛”。IT时代周刊等举办了“大数据2012论坛”,中国计算机学会举办了“CNCC2012大数据论坛”。国家科技部,863计划信息技术领域2015年备选项目包括超级计算机、大数据、云计算、信息安全、第五代移动通信系统(5G)等。2015年8月31日,国务院正式印发《促进大数据发展行动纲要》。国内外传统IT巨头(IBM、微软、惠普、Oracle,联想、浪潮等),通过“硬件+软件+数据”整合平台,向用户提供大数据完备的基础设施和服务,实现“处理-存储-网络设备-软件-应用”,即所谓“大数据一体机”。在大数据时代,这些厂商在原有结构化数据处理的同时,开始加大在可扩展计算、内存计算、库内分析、实时流处理和非结构化数据处理等方面的投入,通过并购大数据分析企业,迅速增强大数据分析实力和扩展市场份额。国内外互联网巨头(亚马逊、Google、Facebook、阿里巴巴、百度、腾讯等),这些互联网公司基于开源大数据框架(在大数据时代,催生了开源的大数据分布式处理软件框架Hadoop:包括分布式文件系统HDFS,并行编程框架Map-Reduce,数据仓库工具Hive和大数据分析平台Pig等)进行了自身应用平台的定制和开发,基于自身应用平台、庞大的用户群、海量用户信息以及互联网处理平台,提供精确营销、个性化推介等商务活动,并开始对外提供大数据平台服务。(3)大数据的特点:四个VVolume(Amount of Data):大容量(主要体现数据存储量大和计算量大)。Velocity(Speed of Data in & out ):快速率(主要指数据更新、增长速度快,数据存储、传输、处理速度快)。Variety(Range of Data Types & Sources):多样性(包括结构化的原数据库表格数据和半结构化、非结构化的文本、视频、图像等信息)。Value(Usefulness of Data):高价值(大海捞针,“在大数据困难面前,不被利用就是成本”)。(4)大数据存储、检索与挖掘分析的关键技术大数据的存储、检索与挖掘分析,目前已经形成了完整和成熟的开源和商业生态链。包括关系型数据库, 非关系型数据库,NoSQL, 流计算,SQL on Hadoop, OLAP on Hadoop, OLTP on Hadoop,Cache 缓存,In-Memory DB, In-Memory Data Grid等等 。利用自然语言处理、信息检索、数据挖掘、机器学习等技术,可以从大数据中获得有价值的信息和知识。(5)大数据的典型案例互联网大数据交通大数据社交大数据生物大数据(6)云计算和大数据时代的来临云计算在中国已经开始普及式、爆发式增长大数据时代,云计算及大数据已进行了全面融合。云计算侧重资源管理,而大数据侧重业务应用。云计算资源池化的管理模式是大数据应用的前提。云计算提供的存储和计算资源池可动态支撑大数据分析业务不断变化的需求。
第四范式 大数据对科学研究产生的影响
第四范式成立于 2014 年,是一家人工智能技术与服务提供商,数据科技驱动行业应用的创新者,业务是利用机器学习技术和经验,通过对数据进行精准预测与挖掘,揭示出数据背后的规律,帮助企业提升效率、降低风险,获得更大的商业价值。其研发的先知平台为企业级 AI 平台[1]。目前,第四范式已在银行、保险、政务、能源、智能制造、零售、医疗、证券等领域积累超过上万个AI落地案例,助力各行各业 AI 创新变革。
吉姆·格雷是一个传奇人物。他是1998年图灵奖得主,著名的计算机科学家。2007年1月28日,他在自己酷爱的航海运动中驾驶帆船失踪于茫茫大海之上。短短17天之前,1月11日,他在加州山景城召开的NRC-CSTB(National Research Council-Computer Science and Telecommunications Board)上,发表了他的著名演讲:科学方法的一次革命。在这篇演讲中,吉姆·格雷将科学研究的范式分为四类——除了之前的实验范式、理论范式、仿真范式之外,新的信息技术已经促使新的范式出现——数据密集型科学发现(Data-Intensive Scientific Discovery)。这个第四范式,所谓的“数据密集型”,也就是现在我们所称的“大数据”。吉姆·格雷(左)一、何谓“第四范式”“范式”一词,英文名Paradigm,一般指已经形成模式的,可直接套用的某种特定方案或路线。在计算机科学界,编程有编程范式,数据库有数据库架构的范式,不一而足。总之,你将其认为是某种必须遵循的规范或大家都在用的套路即可。在科学发现领域,第一范式,是指以实验为基础的科学研究模式。简单说来,就是以伽利略为代表的文艺复兴时期的科学发展初级阶段。在这一阶段,伽利略老师爬上比萨斜塔扔俩铁球,掐着脉搏为摆动计时等等我们耳熟能详的故事,为现代科学开辟了崭新的领域,开启了现代科学之门。当实验条件不具备的时候,为了研究更为精确的自然现象,第二范式,即理论研究为基础的科学研究模式随之而来。在这个阶段,科学家们会将无法用实验模拟的科学原理用模型简化,去掉一些复杂的因素,只留下关键因素,然后通过演算得到结论。比如我们熟知的牛顿第一定律:任何物体都要保持匀速直线运动或静止状态,直到外力迫使它改变运动状态为止。这个结论就是在假设没有摩擦力的情况下得出的。令人欣喜的是,当时的理论科学与实验科学结合得如此完美,任何一个理论都很容易被实验所证实。因此第二范式很快成为了重要的科研范式。第二范式发展到极致是19世纪末,当时牛顿三大定律解释了经典力学,麦克斯韦理论解释了电磁学。经典物理学的大厦构建得宏伟壮观,而且似乎毫无瑕疵。结果在20世纪初,天边的两朵乌云无情地破坏了它的完美。量子力学和相对论两座暂新的高山拔地而起,那是科学的另一个黄金时代。然而,不论是量子力学还是相对论,不约而同地以理论研究为主,超凡的头脑和计算超越了实验。尽管在一段时间之后,经过复杂设计的实验终究还是证实了计算的理论。因此每一位中学物理老师都会把牛顿和爱因斯坦相提并论,并称人类历史上最伟大的两位物理学家。随着验证理论的难度和经济投入越来越高,正在科学研究逐渐力不从心之际,另一位顶尖科学家站了出来。冯·诺依曼老师,在上世纪中期提出了现代电子计算机的架构,并一直持续到今天。冯·诺依曼于是,随着电子计算机的高速发展,第三范式,即利用电子计算机对科学实验进行模拟仿真的模式得到迅速普及。不论在基础科学研究还是工程实验中,计算机仿真越来越多地取代实验,成为科研的常用方法。半个世纪之后的2013年,诺贝尔化学奖甚至授予了用计算机模拟开发多尺度复杂化学系统模型的科学家卡普拉斯、莱维特和瓦谢勒。诺贝尔化学奖评选委员会在当天发表的声明中说:现在,对化学家来说,计算机是同试管一样重要的工具,计算机对真实生命的模拟已为化学领域大部分研究成果的取得立下了“汗马功劳”。那么,当时间进入互联网时代,吉姆·格雷认为,鉴于数据的爆炸性增长,数据密集范式理应并且已经从第三范式即计算范式中分离出来,成为一个独特的科学研究范式,即“第四范式”。二、“第四范式”的特点同样是计算,第四范式与第三范式有什么区别呢?最显著的区别就是:计算范式是先提出可能的理论,再搜集数据,然后通过计算仿真进行理论验证。而数据密集型范式,是先有了大量的已知数据,然后通过计算得出之前未知的可信的理论。简单举个例子说明吧。以前我们对一个问题(比如雾霾)进行研究是这样的:首先,发现问题,比如出现雾霾了,想知道雾霾是什么,怎么预防。其次,发现这个事儿好像不那么简单,雾霾的形成机理除了源头、成分等东西之外,还包括气象因素,包括地形、风向、湿度等等,参数之多超出了我们的控制范围。那么我们要怎么办呢?去除一些看起来不怎么重要的参数,保留一些简单的参数,提出一个理论。然后搜集数据,用计算机进行模拟,并不断对理论进行修正。最后得出可信度比较高的结果,以此来对可能形成雾霾天气的预测。这条途径大家都熟悉,这就是第三范式。但是,这条途径中有一个看起来很小的问题:你如何确定哪些参数是重要的,哪些是不重要的?那些看起来不重要的参数,会不会在某些特定条件下,起到至关重要的作用?毕竟南美洲的一只蝴蝶扇扇翅膀都可能引起印度洋的风暴啊不是么?从这一点来看,能够获取最全面的数据,也许才能真正探寻到雾霾的成因,以及做出更科学的预测。那么第四范式就是这样一个研究方法。首先,布置海量的监测点,收集海量的数据。海量的意思就是比传统意义上多得多。传统意义上我们在北京市布置几十个上百个监测点,海量的意思……嗯,我们假设每款手机都自带PM2.5测量功能,这样全北京市就有2000万的监测点,而且这些监测点还有空间的移动信息。这样相对于固定监测点所产生的数据,就是海量数据。其次,利用这些数据,分析得出雾霾的形成原因和预测。最后,验证预测,从中总结出理论。大家已经看到了,第二和第三步我都只用了一句话。不是因为它很简单,恰恰相反,而是因为它太复杂,我无法在这篇小文章中详细阐述。事实上,在当今,许多研究人员所面临的最大问题,已经不是缺少数据,而是面对太多的数据,不知道怎么来使用它们。因为这种体量的数据,基本上可以认为,已经超出了普通人的理解和认知能力。幸运的是我们有了超级计算机,有了计算集群,有了超大的分布式数据库,还有了基于互联网的云计算。这就使得运用第四范式的科学研究成为了可能。三、“第四范式”的挑战第四范式科研已经在气象和环境、生物和医学方面取得了很大进展,但很明显,随着移动互联网的发展,各行各业产生的数据呈现爆炸式的增长,科研人员所面对的各个领域的数据只会越来越多。那么问题来了,实现第四范式的科研,从中发现更多更新的成果,所面临的挑战有哪些呢?第一,不同结构数据的整合。作为一个研究雾霾的人员,我需要气象数据,还需要工厂排放的数据、汽车尾气的数据,这些不同来源的数据势必有不同的形态。简单点说,一个excel表跟一个word文档,怎么把它们结合起来使用(当然实际情况比这个复杂得多)。这是一开始我们要使用第四范式时就会面对的最大问题。第二,海量数据的处理。你使用的excel表可以处理多少条数据?很多人可能不知道,一个工作表是65535行(2的16次方=65536)和255列(2的8次方=256)。桌面使用的Access数据表呢?我实际使用中,基本上超过十万条速度就会很慢了。SQL Server或者Oracle这类商用数据库?百万到千万级数据记录问题不大,过亿甚至到千亿的量级,凭借分布式处理也还可以支撑。但更多呢?千万亿量级呢?不要以为千万亿量级是一个很遥远的概念。简单起见,不按1024按1000算,一MB就是一百万Byte,一GB就是十亿,一TB就是万亿,一PB就是千万亿……PB后面是EB、ZB、YB。嗯,阿里巴巴2014年3月宣布其数据量已经超过100PB。所以说,当你想剁手的时候,想像一下你给这么多数据里所做的贡献也不过是沧海一粟,估计负罪感会减轻很多吧。为了解决这么多数据的问题,常见的数据库肯定是只能摊手了。好在做搜索引擎的那些人早就要面对这个问题,然后他们也比较好地解决了这个问题。谷歌的MapReduce架构,阿帕奇在此基础上弄出的Hadoop,几年的功夫就席卷了计算机界,成为目前分析大数据的领先平台。所以现在这个问题暂时算是解决了,当然了,永远只能是“暂时”解决。第三,算法的发展。其实针对大数据的算法没多少好说的,基本上还是最开始那些算法。最基本的,贝叶斯、决策树、k-关联算法、聚类分析。值得一提的是人工智能,从70年代发展以后,近几年人工智能倒是借着大数据的东风发展了一把。因为人工智能主要依靠大量数据的训练,所以数据越多,对人工智能的训练就越靠谱。因此类似于人工智能、遗传算法之类的分层次不太可控的算法,应该是发展方向。第四,研究结论的展现。这是值得一提的方面。对于大数据的分析,展现出的结论一般人未必能直观地了解。本来嘛,过亿数量级的数据,已经超出了人类统计学的理解能力。如何将其展现给人类(甲方/用户/普通群众),则是一个如何将神化的东西接地气的问题。大数据分析结果的可视化,在近几年确实是一个热点。另一方面,移动互联时代,读图比读文字要直观得多(本文只有文字而没有图是一大缺陷,希望我罗里吧嗦的文字能够让看的人看得懂)。大家在微博上看到的大部分大数据分析结论,都是图片更直观。因此,如何将研究结果展现出来,让人脑能够接受,这也是一个很重要的问题。数据的可视化展示四、高校利用“第四范式”开展科研本来作为科普文,到第三部分也就可以结束了。但身为高校的一份子,有些事情还是想继续说说,遂有此部分文字。作为科研的主力军,我国高校承担了国家70%以上的科研项目,并取得了大量的科研成果。同时,自上世纪八十年代以来,我国高校迅速经过第一和第二范式的科研训练,很快接受了第三范式。计算机仿真成为科研中快速追赶世界领先水平的重要手段。然而,面对大数据海啸(这个词已经取代了“浪潮”成为更形象的比喻了)的第四范式,我国高校却面临一定的困局。首先,收集并管理海量数据,需要巨量的投入。没有一所高校或研究机构能够负担上千万台服务器这样的投入。另一方面,在互联网和云计算技术已经发展成熟的时代,重复投入建设也是一种巨大的浪费。其次,大部分高校尚未能理解大数据对于科研意味着什么。提出理论、进行模拟和仿真、得到结论这一传统步骤仍然是主要的研究方式,更遑论大数据的基本原理和分析方法,很多科研人员更是所知寥寥。这一困局无法突破,科研的未来只能继续跟在别人身后亦步亦趋,难以在工程学科、社会学科等方面得出重大的成果。而如果能够突破这一困局,或许将成为我国整个科技工作实现弯道超车的关键。事实上,非洲一些贫困国家的科研,已经通过互联网实现与欧洲或北美的共同研究,并取得了相当快的进展。利用欧洲和北美积累的科研大数据,非洲一些国家比如肯尼亚、南非、阿尔及利亚的科研水平得到了大幅的提高。传统大数据研究的步骤个人认为,要积极拥抱科研的“第四范式”,国内高校需要在以下几个方面取得突破:1、尽快搭建自身的虚拟云平台,为科研人员提供虚拟计算空间。目前浙江大学已经计划与阿里巴巴合作建设私有云,将来为每位教师提供个人的计算空间服务。2、将云计算、大数据分析技术作为基础课程设置,使其作为科研的基本工具和必要科研素质。3、与大型互联网企业进行合作,作为科研平台建设的一部分,力争以低廉价格获取各类海量数据和计算资源。在这方面,斯坦福大学与亚马逊云服务的合作可作借鉴。亚马逊为美国大学提供廉价的云计算资源及可供分析的数据资源,解脱了大学对于这方面巨量投入的负担,同时也使得亚马逊积累的海量数据能够得到更好的利用。4、以交叉学科平台建设、协同创新中心建设等多样化的科研模式创新,促进不同类型不同来源数据的整合,形成新知识新发现的不断涌现。综上,数据密集型科技发现范式,超越了时间和空间的限制,也超越了学科藩篱,是科技发展史上难得的契机。抓住其发展方向,扩大其应用范围,实现我国科研的跨越式发展并非天方夜谭。
云计算与大数据的关系
一、云计算最初的目标我们首先来说云计算。云计算最初的目标是对资源的管理,管理的主要是计算资源、网络资源、存储资源三个方面。1管数据中心就像配电脑什么叫计算、网络、存储资源?比如你要买台笔记本电脑,是不是要关心这台电脑是什么样的CPU?多大的内存?这两个就被我们称为计算资源。这台电脑要上网,就需要有个可以插网线的网口,或者有可以连接我们家路由器的无线网卡。您家也需要到运营商比如联通、移动或者电信开通一个网络,比如100M的带宽。然后会有师傅弄一根网线到您家来,师傅可能会帮您将您的路由器和他们公司的网络连接配置好。这样您家的所有的电脑、手机、平板就都可以通过您的路由器上网了。这就是网络资源。您可能还会问硬盘多大?过去的硬盘都很小,大小如10G之类的;后来即使500G、1T、2T的硬盘也不新鲜了。(1T是1000G),这就是存储资源。对于一台电脑是这个样子的,对于一个数据中心也是同样的。想象你有一个非常非常大的机房,里面堆了很多的服务器,这些服务器也是有CPU、内存、硬盘的,也是通过类似路由器的设备上网的。这时的问题就是:运营数据中心的人是怎么把这些设备统一的管理起来的呢?2灵活就是想啥时要都有,想要多少都行管理的目标就是要达到两个方面的灵活性。具体哪两个方面呢?举个例子来理解:比如有个人需要一台很小的电脑,只有一个CPU、1G内存、10G的硬盘、一兆的带宽,你能给他吗?像这种这么小规格的电脑,现在随便一个笔记本电脑都比这个配置强了,家里随便拉一个宽带都要100M。然而如果去一个云计算的平台上,他要想要这个资源时,只要一点就有了。这种情况下它就能达到两个方面灵活性:时间灵活性:想什么时候要就什么时候要,需要的时候一点就出来了;空间灵活性:想要多少就有多少。需要一个太很小的电脑,可以满足;需要一个特别大的空间例如云盘,云盘给每个人分配的空间动不动就很大很大,随时上传随时有空间,永远用不完,也是可以满足的。空间灵活性和时间灵活性,即我们常说的云计算的弹性。而解决这个弹性的问题,经历了漫长时间的发展。3物理设备不灵活第一个阶段是物理设备时期。这个时期客户需要一台电脑,我们就买一台放在数据中心里。物理设备当然是越来越牛,例如服务器,内存动不动就是百G内存;例如网络设备,一个端口的带宽就能有几十G甚至上百G;例如存储,在数据中心至少是PB级别的(一个P是1000个T,一个T是1000个G)。然而物理设备不能做到很好的灵活性:首先是它缺乏时间灵活性。不能够达到想什么时候要就什么时候要。比如买台服务器、买个电脑,都要有采购的时间。如果突然用户告诉某个云厂商,说想要开台电脑,使用物理服务器,当时去采购就很难。与供应商关系好的可能需要一个星期,与供应商关系一般的就可能需要采购一个月。用户等了很久电脑才到位,这时用户还要登录上去慢慢开始部署自己的应用。时间灵活性非常差。其次是它的空间灵活性也不行。例如上述的用户需要一个很小很小的电脑,但现在哪还有这么小型号的电脑?不能为了满足用户只要一个G的内存是80G硬盘的,就去买一个这么小的机器。但是如果买一个大的,又会因为电脑大,需要向用户多收钱,可用户需要用的只有那么小一点,所以多付钱就很冤。4虚拟化灵活多了有人就想办法了。第一个办法就是虚拟化。用户不是只要一个很小的电脑么?数据中心的物理设备都很强大,我可以从物理的CPU、内存、硬盘中虚拟出一小块来给客户,同时也可以虚拟出一小块来给其他客户。每个客户只能看到自己的那一小块,但其实每个客户用的是整个大的设备上的一小块。虚拟化的技术使得不同客户的电脑看起来是隔离的。也就是我看着好像这块盘就是我的,你看着这块盘就是你的,但实际情况可能我的这个10G和你的这个10G是落在同样一个很大很大的存储上。而且如果事先物理设备都准备好,虚拟化软件虚拟出一个电脑是非常快的,基本上几分钟就能解决。所以在任何一个云上要创建一台电脑,一点几分钟就出来了,就是这个道理。这样空间灵活性和时间灵活性就基本解决了。5虚拟世界的赚钱与情怀在虚拟化阶段,最牛的公司是VMware。它是实现虚拟化技术比较早的一家公司,可以实现计算、网络、存储的虚拟化。这家公司很牛,性能做得非常好,虚拟化软件卖得也非常好,赚了好多的钱,后来让EMC(世界五百强,存储厂商第一品牌)给收购了。但这个世界上还是有很多有情怀的人的,尤其是程序员里面。有情怀的人喜欢做什么事情?开源。这个世界上很多软件都是有闭源就有开源,源就是源代码。也就是说,某个软件做的好,所有人都爱用,但这个软件的代码被我封闭起来,只有我公司知道,其他人不知道。如果其他人想用这个软件,就要向我付钱,这就叫闭源。但世界上总有一些大牛看不惯钱都让一家赚了去的情况。大牛们觉得,这个技术你会我也会;你能开发出来,我也能。我开发出来就是不收钱,把代码拿出来分享给大家,全世界谁用都可以,所有的人都可以享受到好处,这个叫做开源。比如最近的蒂姆·伯纳斯·李就是个非常有情怀的人。2017年,他因“发明万维网、第一个浏览器和使万维网得以扩展的基本协议和算法”而获得2016年度的图灵奖。图灵奖就是计算机界的诺贝尔奖。然而他最令人敬佩的是,他将万维网,也就是我们常见的WWW技术无偿贡献给全世界免费使用。我们现在在网上的所有行为都应该感谢他的功劳,如果他将这个技术拿来收钱,应该和比尔盖茨差不多有钱。开源和闭源的例子有很多:例如在闭源的世界里有Windows,大家用Windows都得给微软付钱;开源的世界里面就出现了Linux。比尔盖茨靠Windows、Office这些闭源的软件赚了很多钱,称为世界首富,就有大牛开发了另外一种操作系统Linux。很多人可能没有听说过Linux,很多后台的服务器上跑的程序都是Linux上的,比如大家享受双十一,无论是淘宝、京东、考拉……支撑双十一抢购的系统都是跑在Linux上的。再如有Apple就有安卓。Apple市值很高,但是苹果系统的代码我们是看不到的。于是就有大牛写了安卓手机操作系统。所以大家可以看到几乎所有的其他手机厂商,里面都装安卓系统。原因就是苹果系统不开源,而安卓系统大家都可以用。在虚拟化软件也一样,有了VMware,这个软件非常贵。那就有大牛写了两个开源的虚拟化软件,一个叫做Xen,一个叫做KVM,如果不做技术的,可以不用管这两个名字,但是后面还是会提到。6虚拟化的半自动和云计算的全自动要说虚拟化软件解决了灵活性问题,其实并不全对。因为虚拟化软件一般创建一台虚拟的电脑,是需要人工指定这台虚拟电脑放在哪台物理机上的。这一过程可能还需要比较复杂的人工配置。所以使用VMware的虚拟化软件,需要考一个很牛的证书,而能拿到这个证书的人,薪资是相当高,也可见复杂程度。所以仅仅凭虚拟化软件所能管理的物理机的集群规模都不是特别大,一般在十几台、几十台、最多百台这么一个规模。这一方面会影响时间灵活性:虽然虚拟出一台电脑的时间很短,但是随着集群规模的扩大,人工配置的过程越来越复杂,越来越耗时。另一方面也影响空间灵活性:当用户数量多时,这点集群规模,还远达不到想要多少要多少的程度,很可能这点资源很快就用完了,还得去采购。所以随着集群的规模越来越大,基本都是千台起步,动辄上万台、甚至几十上百万台。如果去查一下BAT,包括网易、谷歌、亚马逊,服务器数目都大的吓人。这么多机器要靠人去选一个位置放这台虚拟化的电脑并做相应的配置,几乎是不可能的事情,还是需要机器去做这个事情。人们发明了各种各样的算法来做这个事情,算法的名字叫做调度(Scheduler)。通俗一点说,就是有一个调度中心,几千台机器都在一个池子里面,无论用户需要多少CPU、内存、硬盘的虚拟电脑,调度中心会自动在大池子里面找一个能够满足用户需求的地方,把虚拟电脑启动起来做好配置,用户就直接能用了。这个阶段我们称为池化或者云化。到了这个阶段,才可以称为云计算,在这之前都只能叫虚拟化。7云计算的私有与公有云计算大致分两种:一个是私有云,一个是公有云,还有人把私有云和公有云连接起来称为混合云,这里暂且不说这个。私有云:把虚拟化和云化的这套软件部署在别人的数据中心里面。使用私有云的用户往往很有钱,自己买地建机房、自己买服务器,然后让云厂商部署在自己这里。VMware后来除了虚拟化,也推出了云计算的产品,并且在私有云市场赚的盆满钵满。公有云:把虚拟化和云化软件部署在云厂商自己数据中心里面的,用户不需要很大的投入,只要注册一个账号,就能在一个网页上点一下创建一台虚拟电脑。例如AWS即亚马逊的公有云;例如国内的阿里云、腾讯云、网易云等。亚马逊为什么要做公有云呢?我们知道亚马逊原来是国外比较大的一个电商,它做电商时也肯定会遇到类似双十一的场景:在某一个时刻大家都冲上来买东西。当大家都冲上买东西时,就特别需要云的时间灵活性和空间灵活性。因为它不能时刻准备好所有的资源,那样太浪费了。但也不能什么都不准备,看着双十一这么多用户想买东西登不上去。所以需要双十一时,就创建一大批虚拟电脑来支撑电商应用,过了双十一再把这些资源都释放掉去干别的。因此亚马逊是需要一个云平台的。然而商用的虚拟化软件实在是太贵了,亚马逊总不能把自己在电商赚的钱全部给了虚拟化厂商。于是亚马逊基于开源的虚拟化技术,如上所述的Xen或者KVM,开发了一套自己的云化软件。没想到亚马逊后来电商越做越牛,云平台也越做越牛。由于它的云平台需要支撑自己的电商应用;而传统的云计算厂商多为IT厂商出身,几乎没有自己的应用,所以亚马逊的云平台对应用更加友好,迅速发展成为云计算的第一品牌,赚了很多钱。在亚马逊公布其云计算平台财报之前,人们都猜测,亚马逊电商赚钱,云也赚钱吗?后来一公布财报,发现不是一般的赚钱。仅仅去年,亚马逊AWS年营收达122亿美元,运营利润31亿美元。8云计算的赚钱与情怀公有云的第一名亚马逊过得很爽,第二名Rackspace过得就一般了。没办法,这就是互联网行业的残酷性,多是赢者通吃的模式。所以第二名如果不是云计算行业的,很多人可能都没听过了。第二名就想,我干不过老大怎么办呢?开源吧。如上所述,亚马逊虽然使用了开源的虚拟化技术,但云化的代码是闭源的。很多想做又做不了云化平台的公司,只能眼巴巴的看着亚马逊挣大钱。Rackspace把源代码一公开,整个行业就可以一起把这个平台越做越好,兄弟们大家一起上,和老大拼了。于是Rackspace和美国航空航天局合作创办了开源软件OpenStack,如上图所示OpenStack的架构图,不是云计算行业的不用弄懂这个图,但能够看到三个关键字:Compute计算、Networking网络、Storage存储。还是一个计算、网络、存储的云化管理平台。当然第二名的技术也是非常棒的,有了OpenStack之后,果真像Rackspace想的一样,所有想做云的大企业都疯了,你能想象到的所有如雷贯耳的大型IT企业:IBM、惠普、戴尔、华为、联想等都疯了。原来云平台大家都想做,看着亚马逊和VMware赚了这么多钱,眼巴巴看着没办法,想自己做一个好像难度还挺大。现在好了,有了这样一个开源的云平台OpenStack,所有的IT厂商都加入到这个社区中来,对这个云平台进行贡献,包装成自己的产品,连同自己的硬件设备一起卖。有的做了私有云,有的做了公有云,OpenStack已经成为开源云平台的事实标准。9 IaaS, 资源层面的灵活性随着OpenStack的技术越来越成熟,可以管理的规模也越来越大,并且可以有多个OpenStack集群部署多套。比如北京部署一套、杭州部署两套、广州部署一套,然后进行统一的管理。这样整个规模就更大了。在这个规模下,对于普通用户的感知来讲,基本能够做到想什么时候要就什么什么要,想要多少就要多少。还是拿云盘举例子,每个用户云盘都分配了5T甚至更大的空间,如果有1亿人,那加起来空间多大啊。其实背后的机制是这样的:分配你的空间,你可能只用了其中很少一点,比如说它分配给你了5个T,这么大的空间仅仅是你看到的,而不是真的就给你了,你其实只用了50个G,则真实给你的就是50个G,随着你文件的不断上传,分给你的空间会越来越多。当大家都上传,云平台发现快满了的时候(例如用了70%),会采购更多的服务器,扩充背后的资源,这个对用户是透明的、看不到的。从感觉上来讲,就实现了云计算的弹性。其实有点像银行,给储户的感觉是什么时候取钱都有,只要不同时挤兑,银行就不会垮。10总结到了这个阶段,云计算基本上实现了时间灵活性和空间灵活性;实现了计算、网络、存储资源的弹性。计算、网络、存储我们常称为基础设施Infranstracture, 因而这个阶段的弹性称为资源层面的弹性。管理资源的云平台,我们称为基础设施服务,也就是我们常听到的IaaS(Infranstracture As A Service)。二、云计算不光管资源,也要管应用有了IaaS,实现了资源层面的弹性就够了吗?显然不是,还有应用层面的弹性。这里举个例子:比如说实现一个电商的应用,平时十台机器就够了,双十一需要一百台。你可能觉得很好办啊,有了IaaS,新创建九十台机器就可以了啊。但90台机器创建出来是空的,电商应用并没有放上去,只能让公司的运维人员一台一台的弄,需要很长时间才能安装好的。虽然资源层面实现了弹性,但没有应用层的弹性,依然灵活性是不够的。有没有方法解决这个问题呢?人们在IaaS平台之上又加了一层,用于管理资源以上的应用弹性的问题,这一层通常称为PaaS(Platform As A Service)。这一层往往比较难理解,大致分两部分:一部分笔者称为“你自己的应用自动安装”,一部分笔者称为“通用的应用不用安装”。自己的应用自动安装:比如电商应用是你自己开发的,除了你自己,其他人是不知道怎么安装的。像电商应用,安装时需要配置支付宝或者微信的账号,才能使别人在你的电商上买东西时,付的钱是打到你的账户里面的,除了你,谁也不知道。所以安装的过程平台帮不了忙,但能够帮你做得自动化,你需要做一些工作,将自己的配置信息融入到自动化的安装过程中方可。比如上面的例子,双十一新创建出来的90台机器是空的,如果能够提供一个工具,能够自动在这新的90台机器上将电商应用安装好,就能够实现应用层面的真正弹性。例如Puppet、Chef、Ansible、Cloud Foundary都可以干这件事情,最新的容器技术Docker能更好的干这件事情。通用的应用不用安装:所谓通用的应用,一般指一些复杂性比较高,但大家都在用的,例如数据库。几乎所有的应用都会用数据库,但数据库软件是标准的,虽然安装和维护比较复杂,但无论谁安装都是一样。这样的应用可以变成标准的PaaS层的应用放在云平台的界面上。当用户需要一个数据库时,一点就出来了,用户就可以直接用了。有人问,既然谁安装都一个样,那我自己来好了,不需要花钱在云平台上买。当然不是,数据库是一个非常难的东西,光Oracle这家公司,靠数据库就能赚这么多钱。买Oracle也是要花很多钱的。然而大多数云平台会提供MySQL这样的开源数据库,又是开源,钱不需要花这么多了。但维护这个数据库,却需要专门招一个很大的团队,如果这个数据库能够优化到能够支撑双十一,也不是一年两年能够搞定的。比如您是一个做单车的,当然没必要招一个非常大的数据库团队来干这件事情,成本太高了,应该交给云平台来做这件事情,专业的事情专业的人来做,云平台专门养了几百人维护这套系统,您只要专注于您的单车应用就可以了。要么是自动部署,要么是不用部署,总的来说就是应用层你也要少操心,这就是PaaS层的重要作用。虽说脚本的方式能够解决自己的应用的部署问题,然而不同的环境千差万别,一个脚本往往在一个环境上运行正确,到另一个环境就不正确了。而容器是能更好地解决这个问题。容器是 Container,Container另一个意思是集装箱,其实容器的思想就是要变成软件交付的集装箱。集装箱的特点:一是封装,二是标准。在没有集装箱的时代,假设将货物从 A运到 B,中间要经过三个码头、换三次船。每次都要将货物卸下船来,摆得七零八落,然后搬上船重新整齐摆好。因此在没有集装箱时,每次换船,船员们都要在岸上待几天才能走。有了集装箱以后,所有的货物都打包在一起了,并且集装箱的尺寸全部一致,所以每次换船时,一个箱子整体搬过去就行了,小时级别就能完成,船员再也不用上岸长时间耽搁了。这是集装箱“封装”、“标准”两大特点在生活中的应用。那么容器如何对应用打包呢?还是要学习集装箱。首先要有个封闭的环境,将货物封装起来,让货物之间互不干扰、互相隔离,这样装货卸货才方便。好在 Ubuntu中的LXC技术早就能做到这一点。封闭的环境主要使用了两种技术,一种是看起来是隔离的技术,称为 Namespace,也即每个 Namespace中的应用看到的是不同的 IP地址、用户空间、程号等。另一种是用起来是隔离的技术,称为 Cgroups,也即明明整台机器有很多的 CPU、内存,而一个应用只能用其中的一部分。所谓的镜像,就是将你焊好集装箱的那一刻,将集装箱的状态保存下来,就像孙悟空说:“定”,集装箱里面就定在了那一刻,然后将这一刻的状态保存成一系列文件。这些文件的格式是标准的,谁看到这些文件都能还原当时定住的那个时刻。将镜像还原成运行时的过程(就是读取镜像文件,还原那个时刻的过程)就是容器运行的过程。有了容器,使得 PaaS层对于用户自身应用的自动部署变得快速而优雅。三、大数据拥抱云计算在PaaS层中一个复杂的通用应用就是大数据平台。大数据是如何一步一步融入云计算的呢?1数据不大也包含智慧一开始这个大数据并不大。原来才有多少数据?现在大家都去看电子书,上网看新闻了,在我们80后小时候,信息量没有那么大,也就看看书、看看报,一个星期的报纸加起来才有多少字?如果你不在一个大城市,一个普通的学校的图书馆加起来也没几个书架,是后来随着信息化的到来,信息才会越来越多。首先我们来看一下大数据里面的数据,就分三种类型,一种叫结构化的数据,一种叫非结构化的数据,还有一种叫半结构化的数据。结构化的数据:即有固定格式和有限长度的数据。例如填的表格就是结构化的数据,国籍:中华人民共和国,民族:汉,性别:男,这都叫结构化数据。非结构化的数据:现在非结构化的数据越来越多,就是不定长、无固定格式的数据,例如网页,有时候非常长,有时候几句话就没了;例如语音,视频都是非结构化的数据。半结构化数据:是一些XML或者HTML的格式的,不从事技术的可能不了解,但也没有关系。其实数据本身不是有用的,必须要经过一定的处理。例如你每天跑步带个手环收集的也是数据,网上这么多网页也是数据,我们称为Data。数据本身没有什么用处,但数据里面包含一个很重要的东西,叫做信息(Information)。数据十分杂乱,经过梳理和清洗,才能够称为信息。信息会包含很多规律,我们需要从信息中将规律总结出来,称为知识(Knowledge),而知识改变命运。信息是很多的,但有人看到了信息相当于白看,但有人就从信息中看到了电商的未来,有人看到了直播的未来,所以人家就牛了。如果你没有从信息中提取出知识,天天看朋友圈也只能在互联网滚滚大潮中做个看客。有了知识,然后利用这些知识去应用于实战,有的人会做得非常好,这个东西叫做智慧(Intelligence)。有知识并不一定有智慧,例如好多学者很有知识,已经发生的事情可以从各个角度分析得头头是道,但一到实干就歇菜,并不能转化成为智慧。而很多的创业家之所以伟大,就是通过获得的知识应用于实践,最后做了很大的生意。所以数据的应用分这四个步骤:数据、信息、知识、智慧。最终的阶段是很多商家都想要的。你看我收集了这么多的数据,能不能基于这些数据来帮我做下一步的决策,改善我的产品。例如让用户看视频的时候旁边弹出广告,正好是他想买的东西;再如让用户听音乐时,另外推荐一些他非常想听的其他音乐。用户在我的应用或者网站上随便点点鼠标,输入文字对我来说都是数据,我就是要将其中某些东西提取出来、指导实践、形成智慧,让用户陷入到我的应用里面不可自拔,上了我的网就不想离开,手不停地点、不停地买。很多人说双十一我都想断网了,我老婆在上面不断地买买买,买了A又推荐B,老婆大人说,“哎呀,B也是我喜欢的啊,老公我要买”。你说这个程序怎么这么牛,这么有智慧,比我还了解我老婆,这件事情是怎么做到的呢?2数据如何升华为智慧数据的处理分几个步骤,完成了才最后会有智慧。第一个步骤叫数据的收集。首先得有数据,数据的收集有两个方式:第一个方式是拿,专业点的说法叫抓取或者爬取。例如搜索引擎就是这么做的:它把网上的所有的信息都下载到它的数据中心,然后你一搜才能搜出来。比如你去搜索的时候,结果会是一个列表,这个列表为什么会在搜索引擎的公司里面?就是因为他把数据都拿下来了,但是你一点链接,点出来这个网站就不在搜索引擎它们公司了。比如说新浪有个新闻,你拿百度搜出来,你不点的时候,那一页在百度数据中心,一点出来的网页就是在新浪的数据中心了。第二个方式是推送,有很多终端可以帮我收集数据。比如说小米手环,可以将你每天跑步的数据,心跳的数据,睡眠的数据都上传到数据中心里面。第二个步骤是数据的传输。一般会通过队列方式进行,因为数据量实在是太大了,数据必须经过处理才会有用。可系统处理不过来,只好排好队,慢慢处理。第三个步骤是数据的存储。现在数据就是金钱,掌握了数据就相当于掌握了钱。要不然网站怎么知道你想买什么?就是因为它有你历史的交易的数据,这个信息可不能给别人,十分宝贵,所以需要存储下来。第四个步骤是数据的处理和分析。上面存储的数据是原始数据,原始数据多是杂乱无章的,有很多垃圾数据在里面,因而需要清洗和过滤,得到一些高质量的数据。对于高质量的数据,就可以进行分析,从而对数据进行分类,或者发现数据之间的相互关系,得到知识。比如盛传的沃尔玛超市的啤酒和尿布的故事,就是通过对人们的购买数据进行分析,发现了男人一般买尿布的时候,会同时购买啤酒,这样就发现了啤酒和尿布之间的相互关系,获得知识,然后应用到实践中,将啤酒和尿布的柜台弄的很近,就获得了智慧。第五个步骤是对于数据的检索和挖掘。检索就是搜索,所谓外事不决问Google,内事不决问百度。内外两大搜索引擎都是将分析后的数据放入搜索引擎,因此人们想寻找信息的时候,一搜就有了。另外就是挖掘,仅仅搜索出来已经不能满足人们的要求了,还需要从信息中挖掘出相互的关系。比如财经搜索,当搜索某个公司股票的时候,该公司的高管是不是也应该被挖掘出来呢?如果仅仅搜索出这个公司的股票发现涨的特别好,于是你就去买了,其实其高管发了一个声明,对股票十分不利,第二天就跌了,这不坑害广大股民么?所以通过各种算法挖掘数据中的关系,形成知识库,十分重要。3大数据时代,众人拾柴火焰高当数据量很小时,很少的几台机器就能解决。慢慢的,当数据量越来越大,最牛的服务器都解决不了问题时,怎么办呢?这时就要聚合多台机器的力量,大家齐心协力一起把这个事搞定,众人拾柴火焰高。对于数据的收集:就IoT来讲,外面部署这成千上万的检测设备,将大量的温度、湿度、监控、电力等数据统统收集上来;就互联网网页的搜索引擎来讲,需要将整个互联网所有的网页都下载下来。这显然一台机器做不到,需要多台机器组成网络爬虫系统,每台机器下载一部分,同时工作,才能在有限的时间内,将海量的网页下载完毕。对于数据的传输:一个内存里面的队列肯定会被大量的数据挤爆掉,于是就产生了基于硬盘的分布式队列,这样队列可以多台机器同时传输,随你数据量多大,只要我的队列足够多,管道足够粗,就能够撑得住。对于数据的存储:一台机器的文件系统肯定是放不下的,所以需要一个很大的分布式文件系统来做这件事情,把多台机器的硬盘打成一块大的文件系统。对于数据的分析:可能需要对大量的数据做分解、统计、汇总,一台机器肯定搞不定,处理到猴年马月也分析不完。于是就有分布式计算的方法,将大量的数据分成小份,每台机器处理一小份,多台机器并行处理,很快就能算完。例如著名的Terasort对1个TB的数据排序,相当于1000G,如果单机处理,怎么也要几个小时,但并行处理209秒就完成了。所以说什么叫做大数据?说白了就是一台机器干不完,大家一起干。可是随着数据量越来越大,很多不大的公司都需要处理相当多的数据,这些小公司没有这么多机器可怎么办呢?4大数据需要云计算,云计算需要大数据说到这里,大家想起云计算了吧。当想要干这些活时,需要很多的机器一块做,真的是想什么时候要就什么时候要,想要多少就要多少。例如大数据分析公司的财务情况,可能一周分析一次,如果要把这一百台机器或者一千台机器都在那放着,一周用一次非常浪费。那能不能需要计算的时候,把这一千台机器拿出来;不算的时候,让这一千台机器去干别的事情?谁能做这个事儿呢?只有云计算,可以为大数据的运算提供资源层的灵活性。而云计算也会部署大数据放到它的PaaS平台上,作为一个非常非常重要的通用应用。因为大数据平台能够使得多台机器一起干一个事儿,这个东西不是一般人能开发出来的,也不是一般人玩得转的,怎么也得雇个几十上百号人才能把这个玩起来。所以说就像数据库一样,其实还是需要有一帮专业的人来玩这个东西。现在公有云上基本上都会有大数据的解决方案了,一个小公司需要大数据平台的时候,不需要采购一千台机器,只要到公有云上一点,这一千台机器都出来了,并且上面已经部署好了的大数据平台,只要把数据放进去算就可以了。云计算需要大数据,大数据需要云计算,二者就这样结合了。
所谓4V,具体指如下4点:
1.大量。大数据的特征首先就体现为“大”,从先Map3时代,一个小小的MB级别的Map3就可以满足很多人的需求,然而随着时间的推移,存储单位从过去的GB到TB,乃至现在的PB、EB级别。随着信息技术的高速发展,数据开始爆发性增长。社交网络(微博、推特、脸书)、移动网络、各种智能工具,服务工具等,都成为数据的来源。淘宝网近4亿的会员每天产生的商品交易数据约20TB;脸书约10亿的用户每天产生的日志数据超过300TB。迫切需要智能的算法、强大的数据处理平台和新的数据处理技术,来统计、分析、预测和实时处理如此大规模的数据。
2.多样。广泛的数据来源,决定了大数据形式的多样性。任何形式的数据都可以产生作用,目前应用最广泛的就是推荐系统,如淘宝,网易云音乐、今日头条等,这些平台都会通过对用户的日志数据进行分析,从而进一步推荐用户喜欢的东西。日志数据是结构化明显的数据,还有一些数据结构化不明显,例如图片、音频、视频等,这些数据因果关系弱,就需要人工对其进行标注。
大数据
3.高速。大数据的产生非常迅速,主要通过互联网传输。生活中每个人都离不开互联网,也就是说每天个人每天都在向大数据提供大量的资料。并且这些数据是需要及时处理的,因为花费大量资本去存储作用较小的历史数据是非常不划算的,对于一个平台而言,也许保存的数据只有过去几天或者一个月之内,再远的数据就要及时清理,不然代价太大。基于这种情况,大数据对处理速度有非常严格的要求,服务器中大量的资源都用于处理和计算数据,很多平台都需要做到实时分析。数据无时无刻不在产生,谁的速度更快,谁就有优势。
4.价值。这也是大数据的核心特征。现实世界所产生的数据中,有价值的数据所占比例很小。相比于传统的小数据,大数据最大的价值在于通过从大量不相关的各种类型的数据中,挖掘出对未来趋势与模式预测分析有价值的数据,并通过机器学习方法、人工智能方法或数据挖掘方法深度分析,发现新规律和新知识,并运用于农业、金融、医疗等各个领域,从而最终达到改善社会治理、提高生产效率、推进科学研究的效果。
大数据的主要应用
一、购物营销当我们打开淘宝,京东等购物APP时,总是会发现,这些APP比我们自己还懂自己,能够未卜先知的知道我们最近需要什么。篮球迷在湖人赢了比赛的时候打开淘宝,会发现詹姆斯的球衣就在首页;一个怀孕的妈妈,打开京东,发现进口的奶粉已经在召唤她购买;一个经常听神曲的大妈,广场舞音响的推荐总在眼前。这就是商家通过手机浏览的数据分析,知道我们近期的需求,之后精准的向我们进行推销。如今人们网络购物的行为越来越频繁,网络购物的体验也越来越好。而影响网络购物体验的一个最重要的方面就是物流的速度。双11十多年前就火爆中国,但人们记忆犹新的就是双11买的物品很长时间才能拿到,少则一周,多则半个月,严重影响购物者的体验。而如今双十一的成交量增加了上百倍,但送货的速度却提升了不少。很多物品能保证晚上下单,第二天就送达,即使购买的是新疆的葡萄干,也能在24小时到货。速度提升的背后,离不开大数据的赋能。物流仓储与购物平台合作,通过分析用户的浏览数据,购物车,下定金情况,预知某一地区的购买量,进行提前备货。当用户付款之后,货物是从离用户100公里内的仓储中心发货,而不是千里之外的新疆发货。通过大数据中心的调控,物流分拣系统能最科学合理的进行装车。在智慧系统的指引下,快递员也能按照最优的线路进行高效的配送。二、交通出行如今百度地图、高德地图已经成了我们出行必不可少的工具。没了地图,很多时候我们将寸步难行。有了地图,即使在九曲回肠的复杂道路中,也可以顺利的抵达我们想去的一个网红美食店。手机地图能够做到精准的导航和实时的路况预测得益于大数据的分析。一是地图公司有自己数据采集车,前期采集了海量的数据存储在数据库中。二是每一个使用地图的用户,都共享了自己的位置,贡献了自己的数据。通过对同一时间段同一路段用户的使用情况进行分享,地图很容易就能得知哪里堵车,哪里畅通,提前告知使用者。三、政务处理大数据在助力政府的政务处理方面同样发挥着重要的作用。近年来精准扶贫是各级政府的首要工程,扶贫如何做到精准,考验着政府的执政能力。精准扶贫首先要做到的就是精准,贫困户是不是真正的贫困户,这在过往是一件很难解决的难题。上级政府只有依靠下级政府的统计上报进行拨款,于是关系户成了贫困户,真正贫困的人缺难以得到实质性的帮助。现如今有了大数据的加持,政府通过建档立卡,通过网络数据分析,对每一个贫困户进行核实。家里老人的就医记录,子女的工资水平,养殖等副业的收入等等都将进行评估,以确保精准扶贫落实到位。电信诈骗无孔不入,但当电信诈骗遇上大数据,诈骗份子也将插翅难逃。如今利用大数据分析,诈骗短信,诈骗网站很容易被识别拦截。通过分析诈骗份子的“伪基站”地址,登录网址等信息也能很快锁定诈骗份子的藏身之处。四、信用体系俗话说民无信不立,国无信不强。可见信用对于个人,对于国家都有非常重要的意义。但如何识别一个人是否有信用,却不是一件容易的事。在熟人社会里,我们可以通过一个人过往的表现,言行来判断他的信用。但在陌生人社会里,想要判定一个人是否有信用就很难了。这也影响了整个社会的运行,例如信用系统不完善,个人去银行贷款很难,网络购物也难以发展。但如今有了大数据,这些难题都迎刃而解了。例如支付宝的芝麻积分,就是通过分析用户的学历、存款、购物行为、交友特征、履约历史等等数据来赋予用户对应的分数,表示用户的信用等级,同时将特定的特权开放给对应等级的用户。现在支付宝、微信等信用数据都已并入央行主导的国民信用体系里,成为国家队。中国也正式建立了自己的信用体系,真正实现了有信用走遍天下都不怕,无信用则寸步难行。20世纪最重要的资源是石油,谁掌握了石油,谁就统治了世界。21世纪最重要的资产则是数据,谁能在数据这座金矿中挖出黄金,谁就能掌握话语权,造福社会,创造财富。
企业推动大数据行业发展
大数据利用其独特的大数据分析能力,帮助工业企业变得更有效率并提高生产率。公司可以获得大量数据,帮助制造企业减少浪费并提高生产流程的产量。通过高级分析,工业组织可以将信息可视化,识别模式并对其进行优化,以提高生产质量。大数据可以通过以下方式由制造商使用:实时监控 制造过程可以在生产过程的各个部分提供可用于优化生产质量的实时信息。预测 大数据分析可用于预测需求和生产,帮助企业提高绩效。更好的决策 通过大数据揭示的洞察力可以帮助制造商通过确定趋势并应对挑战来做出更好的决策。预防性维护 通过系统分析,制造公司可以更准确地预测系统故障,并采用预防性维护。这可以大大减少损失和昂贵维修工作的开支。质量保证 可以使用数据来检测制造过程中的错误并检测过程缺陷。分析可以提供实时警告信号,提供质量保证。定价策略 通过内部和外部来源的数据,可以开发可以增加利润的定价模型。还可以以不同的价格对产品进行需求预测。然后使用这些见解来生成准确的定价策略。 通过整合数据和应用先进的分析技术提高生产力,制造商可以提高效率,提高产品质量。在新兴市场,制造商可以通过抓住市场份额,提高利润率,开始建立竞争优势。在发达市场,化学公司可以使用大数据来降低成本,并在产品和服务方面提供更大的创新。
大数据的关键技术
我们之前了解了大数据现在已经达到什么地步,以及它现在主要做了哪些事情,也稍微了解一下,现在大多数的大数据公司都是怎么做的,接下来了解大数据的四个关键技术。数据采集、预处理与存储技术。数据采集,与之相关的有数据采集师这个岗位,大多数情况下是用python语言来做的。预处理我们管它叫ETL,就是信息提取,会把一些噪音去掉,然后提取一些关键信息。大多数也都是基于python+spark技术来做。存储就是HDFS技术。数据分析以及数据挖掘。这部分主要是基于sparkSQL,以及一些算法方面相关的技术。spark推荐Python或者Scala数据安全和隐私保护。这块涉及比较少,主要是基于Cobol来做的。数据的中心体系机构,下图很好的做了解释,最底下是源数据,主要通过日志、探针等方式来采取一些结构化、非结构化的数据。往上一层把数据进行提取、整合,之后加一些算法和规则,算出来特征属性,之后做清洗,然后把数据存起来。最后就是一些计算和挖掘出的一些现成的数据做数据可视化。
典型的大数据计算架构
数据分析工作虽然隐藏在业务系统背后,但是具有非常重要的作用,数据分析的结果对决策、业务发展有着举足轻重的作用。随着大数据技术的发展,数据挖掘、数据探索等专有名词曝光度越来越高,但是在类似于Hadoop系列的大数据分析系统大行其道之前,数据分析工作已经经历了长足的发展,尤其是以BI系统为主的数据分析,已经有了非常成熟和稳定的技术方案和生态系统,对于BI系统来说,大概的架构图如下:可以看到在BI系统里面,核心的模块是Cube,Cube是一个更高层的业务模型抽象,在Cube之上可以进行多种操作,例如上钻、下钻、切片等操作。大部分BI系统都基于关系型数据库,关系型数据库使用SQL语句进行操作,但是SQL在多维操作和分析的表示能力上相对较弱,所以Cube有自己独有的查询语言MDX,MDX表达式具有更强的多维表现能力,所以以Cube为核心的分析系统基本占据着数据统计分析的半壁江山,大多数的数据库服务厂商直接提供了BI套装软件服务,轻易便可搭建出一套Olap分析系统。不过BI的问题也随着时间的推移逐渐显露出来:BI系统更多的以分析业务数据产生的密度高、价值高的结构化数据为主,对于非结构化和半结构化数据的处理非常乏力,例如图片,文本,音频的存储,分析。由于数据仓库为结构化存储,在数据从其他系统进入数据仓库这个东西,我们通常叫做ETL过程,ETL动作和业务进行了强绑定,通常需要一个专门的ETL团队去和业务做衔接,决定如何进行数据的清洗和转换。随着异构数据源的增加,例如如果存在视频,文本,图片等数据源,要解析数据内容进入数据仓库,则需要非常复杂等ETL程序,从而导致ETL变得过于庞大和臃肿。当数据量过大的时候,性能会成为瓶颈,在TB/PB级别的数据量上表现出明显的吃力。数据库的范式等约束规则,着力于解决数据冗余的问题,是为了保障数据的一致性,但是对于数据仓库来说,我们并不需要对数据做修改和一致性的保障,原则上来说数据仓库的原始数据都是只读的,所以这些约束反而会成为影响性能的因素。ETL动作对数据的预先假设和处理,导致机器学习部分获取到的数据为假设后的数据,因此效果不理想。例如如果需要使用数据仓库进行异常数据的挖掘,则在数据入库经过ETL的时候就需要明确定义需要提取的特征数据,否则无法结构化入库,然而大多数情况是需要基于异构数据才能提取出特征。在一系列的问题下,以Hadoop体系为首的大数据分析平台逐渐表现出优异性,围绕Hadoop体系的生态圈也不断的变大,对于Hadoop系统来说,从根本上解决了传统数据仓库的瓶颈的问题,但是也带来一系列的问题:从数据仓库升级到大数据架构,是不具备平滑演进的,基本等于推翻重做。大数据下的分布式存储强调数据的只读性质,所以类似于Hive,HDFS这些存储方式都不支持update,HDFS的write操作也不支持并行,这些特性导致其具有一定的局限性。基于大数据架构的数据分析平台侧重于从以下几个维度去解决传统数据仓库做数据分析面临的瓶颈:分布式计算:分布式计算的思路是让多个节点并行计算,并且强调数据本地性,尽可能的减少数据的传输,例如Spark通过RDD的形式来表现数据的计算逻辑,可以在RDD上做一系列的优化,来减少数据的传输。分布式存储:所谓的分布式存储,指的是将一个大文件拆成N份,每一份独立的放到一台机器上,这里就涉及到文件的副本,分片,以及管理等操作,分布式存储主要优化的动作都在这一块。检索和存储的结合:在早期的大数据组件中,存储和计算相对比较单一,但是目前更多的方向是在存储上做更多的手脚,让查询和计算更加高效,对于计算来说高效不外乎就是查找数据快,读取数据快,所以目前的存储不单单的存储数据内容,同时会添加很多元信息,例如索引信息。像类似于parquet和carbondata都是这样的思想。总的来说,目前围绕Hadoop体系的大数据架构大概有以下几种:传统大数据架构之所以叫传统大数据架构,是因为其定位是为了解决传统BI的问题,简单来说,数据分析的业务没有发生任何变化,但是因为数据量、性能等问题导致系统无法正常使用,需要进行升级改造,那么此类架构便是为了解决这个问题。可以看到,其依然保留了ETL的动作,将数据经过ETL动作进入数据存储。优点:简单,易懂,对于BI系统来说,基本思想没有发生变化,变化的仅仅是技术选型,用大数据架构替换掉BI的组件。缺点:对于大数据来说,没有BI下如此完备的Cube架构,虽然目前有kylin,但是kylin的局限性非常明显,远远没有BI下的Cube的灵活度和稳定度,因此对业务支撑的灵活度不够,所以对于存在大量报表,或者复杂的钻取的场景,需要太多的手工定制化,同时该架构依旧以批处理为主,缺乏实时的支撑。适用场景:数据分析需求依旧以BI场景为主,但是因为数据量、性能等问题无法满足日常使用。流式架构在传统大数据架构的基础上,流式架构非常激进,直接拔掉了批处理,数据全程以流的形式处理,所以在数据接入端没有了ETL,转而替换为数据通道。经过流处理加工后的数据,以消息的形式直接推送给了消费者。虽然有一个存储部分,但是该存储更多的以窗口的形式进行存储,所以该存储并非发生在数据湖,而是在外围系统。优点:没有臃肿的ETL过程,数据的实效性非常高。缺点:对于流式架构来说,不存在批处理,因此对于数据的重播和历史统计无法很好的支撑。对于离线分析仅仅支撑窗口之内的分析。适用场景:预警,监控,对数据有有效期要求的情况。Lambda架构Lambda架构算是大数据系统里面举足轻重的架构,大多数架构基本都是Lambda架构或者基于其变种的架构。Lambda的数据通道分为两条分支:实时流和离线。实时流依照流式架构,保障了其实时性,而离线则以批处理方式为主,保障了最终一致性。什么意思呢?流式通道处理为保障实效性更多的以增量计算为主辅助参考,而批处理层则对数据进行全量运算,保障其最终的一致性,因此Lambda最外层有一个实时层和离线层合并的动作,此动作是Lambda里非常重要的一个动作,大概的合并思路如下:优点:既有实时又有离线,对于数据分析场景涵盖的非常到位。缺点:离线层和实时流虽然面临的场景不相同,但是其内部处理的逻辑却是相同,因此有大量荣誉和重复的模块存在。适用场景:同时存在实时和离线需求的情况。Kappa架构 Kappa架构在Lambda 的基础上进行了优化,将实时和流部分进行了合并,将数据通道以消息队列进行替代。因此对于Kappa架构来说,依旧以流处理为主,但是数据却在数据湖层面进行了存储,当需要进行离线分析或者再次计算的时候,则将数据湖的数据再次经过消息队列重播一次则可。优点:Kappa架构解决了Lambda架构里面的冗余部分,以数据可重播的超凡脱俗的思想进行了设计,整个架构非常简洁。缺点:虽然Kappa架构看起来简洁,但是施难度相对较高,尤其是对于数据重播部分。适用场景:和Lambda类似,改架构是针对Lambda的优化。Unifield架构 以上的种种架构都围绕海量数据处理为主,Unifield架构则更激进,将机器学习和数据处理揉为一体,从核心上来说,Unifield依旧以Lambda为主,不过对其进行了改造,在流处理层新增了机器学习层。可以看到数据在经过数据通道进入数据湖后,新增了模型训练部分,并且将其在流式层进行使用。同时流式层不单使用模型,也包含着对模型的持续训练。优点:Unifield架构提供了一套数据分析和机器学习结合的架构方案,非常好的解决了机器学习如何与数据平台进行结合的问题。缺点:Unifield架构实施复杂度更高,对于机器学习架构来说,从软件包到硬件部署都和数据分析平台有着非常大的差别,因此在实施过程中的难度系数更高。适用场景:有着大量数据需要分析,同时对机器学习方便又有着非常大的需求或者有规划。总结以上几种架构为目前数据处理领域使用比较多的几种架构,当然还有非常多其他架构,不过其思想都会或多或少的类似。数据领域和机器学习领域会持续发展,以上几种思想或许终究也会变得过时。