




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
大数据分析的三个技巧/cio/2013年01月08日09:03来源:CIO时代网【文章摘要】大数据的性质是有他的三个特点(数据量大、种类多、处理速度快)决定的,数据分析的角色和作用理所因此是由大数据的性质决定的。当数据分析作用于大数据时,大数据必须身兼数职。意思确实是数据分析在一个组织中扮演着多种角色和担负着多重责任。数据分析的职位是由DJPatil和JeffHammerbacher制定的,他们试图称呼数据组的同事们,而又不想因为称呼而限制他们的能力。(becauseofimproperjobtitlelikebusinessanalystorresearchscientistBuildingDataScienceTeams)随着大数据在驱动企业成功中越来越有决定性作用,数据分析也变得越来越受欢迎。然而,一些领导者对数据分析扮演的角色和它所起的作用仍然不是专门了解,就像专门多时候领导者不明白如何从大数据中抽取有用的信息,尽管专门清晰的明白这些大数据是专门可信的。他们的脚步落后了——他们的眼光在大数据的利用上其实是模糊的。大数据的性质是有他的三个特点(数据量大、种类多、处理速度快)决定的,数据分析的角色和作用理所因此是由大数据的性质决定的。当数据分析作用于大数据时,大数据必须身兼数职。意思确实是数据分析在一个组织中扮演着多种角色和担负着多重责任。多种知识的掌握为了解决数据量大的问题,大数据平台(例如:ApacheHadoop、LexisNexisHPPC)要求数据是被整理过的。数据分析员应该具有大数据平台应用的全方位知识,如此才能熟练的应用数据平台处理大数据。数据分析元应当具有以下知识:1、了解大数据平台的框架,例如:DFS和MapReduce,他们的编程框架提供强大的应用程序设计。这就意味着数据分析员还要有软件构筑和设计的能力。2、精通大数据平台支持的编程语言,例如:Java,Python,C++,orECL,等等。3、具有熟练的数据库知识,特不是用到SQL语言的数据库,像:HBase,CouchDB,等等。因为大数据平台经常需要数据库来存储和转换数据。4、具有数学/统计学、机器学习、数据挖掘领域的专业知识。一个企业的成功不是由数据量决定的,而是由能否成功的从大数据中发觉和抽取有用的知识模式和关系决定的,然后用这些有价值的信息制造出有价值的产品。统计学、机器学习和数据挖掘能够专门好的用于理解数据和发掘数据的价值。自然,为了成功数据分析者必须具备这些领域的专门知识。会使用一些数据挖掘工具或者平台(例如:R,Excel,SPSSandSAS)是最好的,能够《TopAnalyticsandbigdatasoftwaretools》这本书。5、熟练应用自然语言处理的软件或工具。大数据的内容大都来自于文本文件、新闻、社交媒体和报告、建议书等等。因此了解和掌握至少一种自然语言处理软件或工具关于做一个成功的分析者起着决定性的作用。6、应用至少一种数据可视化工具。为了更有效的演示数据存在的模式和关系,能应用好数据可视化工具无疑是对数据分析员的一个加分。那个地点有20款数据可视化工具的链接。创新——好奇随着数据变化速度的加快,经常也会有新的发觉和问题出现,数据分析员应该对那些变化敏感、对新发觉好奇,同时找出应对新问题的方法。他/她也要热情的及时相互沟通,从新问题中探究新产品的思路和解决方案,成为产品创新的驾驭者。商业技能首先,数据分析员多元化的性质决定了数据分析员要好专门强的沟通能力,在企业里数据分析员必须和不同的人沟通,其中包括:沟通和理解业务需求、应用程序的要求、把数据的模式和关系翻译给市场部、产品开发组和公司高管看。关于企业来讲有效的沟通是及时采取行动应对大数据新发觉的关键。数据分析员应该是能联系所有,专门好的沟通者。第二、数据分析员要具有良好的规划和组织能力。如此他/她才能巧妙地处理多个任务、树立正确的优先顺序、保证按时完成任务。第三,数据分析员应该具有讲服力、激情、和演讲能力。才能引导人们基于数据的发觉做出正确的决定,让人们相信新发觉的价值。数据分析员在某种意义上讲是领导者,驱动产品创新。所有这些大数据的性质决定了数据分析员该具备的技巧和他们在企业中扮演的角色。盘点大数据分析的十二大杀手锏分类:
BI
MapReduce2011-11-1913:12
218人阅读
评论(0)
\o"收藏"收藏
\o"举报"举报
当数据以成百上千TB不断增长的时候,我们需要一种独特技术来应对这种前所未有的挑战。大数据分析迎来大时代全球各行各业的组织机构差不多意识到,最准确的商务决策来自于事实,而不是凭空臆想。这也就意味着,他们需要在内部交易系统的历史信息之外,采纳基于数据分析的决策模型和技术支持。互联网点击数据、传感数据、日志文件、具有丰富地理空间信息的移动数据和涉及网络的各类评论,成为了海量信息的多种形式。极具挑战性的是,传统的数据库部署不能处理数TB数据,也不能专门好的支持高级不的数据分析。在过去十几年中,大规模并行处理(MPP)平台和列存储数据库开启了新一轮数据分析史上的革命。而且近年来技术不断进展,我们开始看到,技术升级带来的已知架构之间的界限变得更加模糊。更为重要的是,开始逐步出现了处理半结构化和非结构化信息的NoSQL等平台。大数据分析迎来大时代本文中,我们将向大伙儿介绍迄今为止,包括EMC的Greenplum、Hadoop和MapReduce等提供大数据分析的产品。此外,惠普前段时刻收购实时分析平台Vertica、IBM独立的基于DB2智能分析系统和Netezza的相关产品。因此,也有微软的ParallelDataWarehouse、SAP旗下公司Sybase的SybaseIQ数据仓库分析工具等。下面,就让我们来了解业界大数据分析的这十二大产品:1.模块化EMCAppliance处理多种数据类型2010年EMC收购了Greenplum,随后,利用EMC自身存储硬件和支持复制与备份功能的Greenplum大规模并行处理(MPP)数据库,推出了EMCGreenplumDataComputingAppliance(DCA)。通过与SAS和MapR等合作伙伴,DCA扩大了对Greenplum的数据库支持。支持大数据分析的EMCAppliance今年5月,EMC推出了自己的Hadoop软件工具,而且该公司还承诺,今年秋季公布的模块化DCA将支持GreenplumSQL/关系型数据库,Hadoop部署也能在同样的设备上得到支持。借助Hadoop,EMC能够解决诸如网络点击数据、非结构数据等真正大数据分析的困难。模块化的DCA也能够在同样的设备上支持长期保留的高容量的存储模块,从而满足监测需求。2.Hadoop和MapReduce提炼大数据Hadoop是一个开放源码的分布式数据处理系统架构,要紧面向存储和处理结构化、半结构化或非结构化、真正意义上的大数据(通常成百上千的TB甚至PB级不数据)应用。网络点击和社交媒体分析应用,正在极大地推动应用需求。Hadoop提供的MapReduce(和其他一些环境)是处理大数据集理想解决方案。MapReduce能将大数据问题分解成多个子问题,将它们分配到成百上千个处理节点之上,然后将结果汇合到一个小数据集当中,从而更容易分析得出最后的结果。MapReduce结构图Hadoop能够运行在低成本的硬件产品之上,通过扩展能够成为商业存储和数据分析的替代方案。它差不多成为专门多互联网巨头,比如AOL、eHarmony(美国在线约会网站)、易趣、Facebook、Twitter和Netflix大数据分析的要紧解决方案。也有更多传统的巨头公司比如摩根大通银行,也正在考虑采纳这一解决方案。3.惠普Vertica电子商务分析今年二月被惠普收购的Vertica,是能提供高效数据存储和快速查询的列存储数据库实时分析平台。相比传统的关系数据库,更低的维护和运营成本,就能够获得更快速的部署、运行和维护。该数据库还支持大规模并行处理(MPP)。在收购之后,惠普随即推出了基于x86硬件的HPVertica。通过MPP的扩展性能够让Vertica为高端数字营销、电子商务客户(比如AOL、Twitter、Groupon)分析处理的数据达到PB级。惠普Vertica实时分析平台事实上,早在惠普收购之前,Vertica就推出有包括内存、闪存快速分析等一系列创新产品。它是首个新增Hadoop链接支持客户治理关系型数据的产品之一,也是首个基于云部署风险的产品平台之一。目前,Vertica支持惠普的云服务自动化解决方案。4.IBM提供运维和分析数据仓库去年,IBM推出了基于DB2的SmartAnalyticSystem(图中左侧),那么它为何还要收购另外的Netezza方案平台呢?因为前者是具备高扩展性企业数据仓库的平台,能够支持成千上万的用户和各类应用操作。比如,呼叫中心通常拥有大量的雇员需要快速回拨客户的历史通话记录。SmartAnalyticSystem提供了整合信息的DB2数据库,预配置CognosBI软件模块,能够在IBMPowerSystem(RISC或者X86架构)上运行。SmartAnalyticSystem及NetezzaNetezza致力于为数字化营销公司、电信、和其他挖掘成百上千TB甚至PB级不数据的公司,提供高可扩展分析应用的解决方案。IBM的NetezzaTwinFin数据仓库设备,支持大规模并行处理,能够在一天时刻内部署完毕。Netezza支持多种语言和方式进行数据库分析,其中包括Java、C、C++、Python和MapReduce。与此同时,它还支持如SAS,IBMSPSS使用的矩阵操作方法和R编程语言。IBMNetezza最近增加了一个高容量长期存档设备以满足更多要求。5.Infobright减少DBA工作量和查询时刻Infobright列存储数据库,旨在为数十TB级不数据提供各类分析服务。而这一块也正是甲骨文和微软SQLServer的核心市场之一。InfoBright还表示,建立在MySQL基础之上的数据库也提供了另外一种选择,它专门针对分析应用、低成本简化劳动力工作、交付高性能的服务进行设计。列存储数据库能够自动创建索引,而且无需进行数据分区和DBA调整。相比传统数据库,它能够减少90%的人工工作量,而且由于其采纳高数据压缩,在数据库许可和存储等方面的开支也能够减少一半。KnowledgeGrid查询引擎InfoBright最新的4.0版本产品,新增了一个DomainExpert的功能。企业用户能够借此忽略不断重复的那些数据,比如邮箱地址、URL和IP地址。与此同时,公司还能够增加与呼叫记录、业务交易或者地理位置信息相关的数据。KowledgeGrid查询引擎则能够关心过滤那些静态数据而只关注那些变化的数据。也确实是讲,它能够关心节约数据查询的时刻,因为那些无关的数据无需进行解压缩和筛选。6.Kognitio提供三倍速度和虚拟多维数据集Kognitio是一家本身不生产硬件产品的数据库厂商,它看到了客户对快速部署的广泛兴趣和市场需求,推出了在惠普、IBM硬件产品上预配置有WX2数据库的Lakes、Rivers和Rapids解决方案。Lakes能够以低成本、10TB数据存储和每个模块48个运算核心提供大容量存储服务。电信或金融服务公司,能够使用这种配置来扫描大量的分支结构的各种信息记录。Rivers则提供了容量和速度之间的平衡,预配置为2.5TB存储容量,它的每个模块拥有48个运算核心。而追求查询性能的Rapids,其预配置提供有96个运算核心,每个模块仅仅为1.5TB。该产品方案要紧针对金融公司在算法交易或者其他高性能要求方面的需求。Kognitio基于内存运算的数据仓库和数据分析今年,Kognitio新增了一个虚拟化OLAP风格的Pablo分析引擎。它提供了灵活的、为企业用户进行分析的解决方案。用户可升级选用WX2构建一个虚拟多维数据集。因此,WX2数据库中任何一个维度的数据都可在内存中用于快速分析。这种分析的前端接口是我们常见的MicrosoftExcel。7.微软SQLServer新增PDW功能今年年初微软公布的SQLServerR2ParallelDataWarehouse(PDW,并行数据仓库),一改以往SQLServer部署时刻需要花费两年半时刻的历史,它能够关心客户扩展部署数百TB级不数据的分析解决方案。支持这一产品的包括有合作伙伴惠普的硬件平台。公布之初,尽管微软官网提供有让利折扣,但PDW售价仍超过13000美元/TB(用户和硬件访问量)。SQLServerPDW和专门多产品一样,PDW使用了大规模并行处理来支持高扩展性,但微软进入这一市场实属“姗姗来迟”,而且在一定程度上讲,数据仓库分析和内存分析计算市场落下了后腿。目前,微软寄希望于其整体数据库平台在市场上带来的差异化竞争力。这意味着,所有沿袭了基于微软平台的数据和数据治理,将被广泛应用在信息集成领域——ReportingandAnalysisServices,而这一切都基于SQLServer数据库。微软在今年10月12日通过推出ApacheHadoop和相关的SQLAzureHadoop服务,宣布进入大数据领域。Azure服务将在2011年底亮相,而相应的本地配套软件要在明年上半年推出,现在也不清晰微软是否会与其他硬件合作伙伴或者相关大数据设备厂商合作。8.甲骨文讲述EngineeredSystems的故事甲骨文表示,Exadata(图中左侧)是迄今以来公布的产品中最为成功的产品,自从2008年推出以来,差不多拥有超过1000名客户。而engineeredsystem使得甲骨文11g数据库,能够支持基于X86的数据处理和磁盘存储层,其闪存缓存也使得能够实现超快速查询处理。它既可应用在任意事务环境中,也能够应用在数据仓库(但不能同时进行)。Exadata的混合柱状压缩能够实现列存储数据库的某些高效率特点,提供高达10:1的压缩比,而大部分行存储数据库的平均压缩比为4:1。甲骨文在9月通过宣布OracleSuperCluster(图中右侧),扩展了engineeredsystems产品家族。它采纳了最新的SunSparcT-4芯片。SuperCluster支持全机架/半机架配置,而且用户能够在半机架容量基础上进行扩容。满额配置提供有1200个CPU线程,4TB内存,97TB至198TB磁盘存储,8.66TB闪存。甲骨文大数据分析系统设施甲骨文声称,SuperCluster事务处理和数据仓库性能相比传统服务器架构能分不带来10倍和50倍速度提升。但作为一个专有的Unix机器,甲骨文想通过SuperCluster,在面向x86硬件的数据仓库部署迁移大潮中力挽狂澜。甲骨文的Exadata和Exalogic都基于x86架构而且运行Linux系统。在十月召开的OracleOpenWorld中,甲骨文宣布将新增一个分布式pacheHadoop软件和相关的大数据设备。甲骨文也打算推出一个独立的基于开源BerkeleyDB产品的NoSQL。9.ParAccel大打列存储、MPP和数据库分析组合拳ParAccel是ParAccelAnalyticDatabase(PADB)的开发厂商——提供快速、选择性查询和列存储数据库,并基于大规模并行处理优势特点的产品。该公式表示,其平台支持一系列针对各种复杂、先进应用的工作负载报告和分析。ParAccel大数据解决方案内置的分析算法能够为分析师提供高级数学运算、数据统计、和数据挖掘等各种功能,同时,它还提供一个开放的API,能够扩展数据库的各种数据处理能力和第三方分析应用。Tablefunctions被用来传送和接收第三方和采纳C、C++等编写的定制算法的数据结果。ParAccel与FuzzyLogix——一家提供各种描述统计学、统计实验模拟和模式识不功能库功能的服务商。此外,Tablefunctions还支持MapReduce和广泛应用在金融服务的700多种分析技术。10.Sybase推进IQ列存储数据库SAP旗下的Sybase是列存储数据库治理系统的首批厂商,而且目前仍然是拥有2000多个客户的畅销厂商。今年夏天推出了SybaseIQ15.3版本,该版本产品能够处理更多数据和更多数据类型,也能胜任更多查询,因此这要紧得益于其包含了一个名叫PlexQ的大规模并行处理功能。基于MPP大规模并行处理的PlexQ分布式查询平台,通过将任务分散到网格配置中的多台计算机,加速了高度复杂的查询。有报道讲,它能提供比现有的IQ部署快12倍的交付能力。SybaseIQ为了支持不同的分析,15.3版本的产品增加了分布式处理功能,来执行PlexQ网格中跨CPU的查询服务。为了确保实现最快速度的查询,PlexQ包含了一个逻辑服务器——让治理员对PlexQ网格的物理服务器组成虚拟群集,以便优化分析工作负载、用户需求和应用程序。SybaseIQ和其他大多数的支持MPP功能的产品之间区不要紧在于,它采纳了全共享的方式。全共享的缺点是CPU会争相访问共享存储(通常是SAN),而这会降低查询性能。只是Sybase坚持认为,从优化查询的角度来讲全共享会更加灵活,因为所有的CPU都会访问所有的数据。因此,我们能够对某个特定的查询尽可能多(或者少)地分配计算资源。11.Teradata从EDWs跨入大规模分析领域一旦成为企业级数据仓库(EDW)的宣传者,近年来Teradata就差不多放松了扩展Teradata数据库产品家族的步伐。该公司的高性能、高容量产品被广泛采纳和复制,因为其中包括了专门多企业工作量治理的功能模块,包括虚拟OLAP(三维立体式)分析模型。Teradata在数据库分析领域不断推陈出新,但在结构化数据、半结构化数据和大部分非结构化数据领域几乎没有专门大成果。这也确实是什么缘故该公司要收购AsterData——一家提供SQL-MapReduce框架的公司。MapReduce处理拥有广泛的市场需求,因为存在着大量的互联网点击数据、传感数据和社交媒体内容。Teradata平台产品家族Teradata日前宣布了一项AsterDataMapReduce产品的打算,它建立在以往产品同样的硬件平台之上,而且在Teradata和AsterData之间新增了两种集成方法。通过收购,Teradata打破了在数据仓储业被认为最广泛、最具扩展性的界限。12.1010data提供基于云计算大数据分析正如标题所讲,1010data能够提供基于云计算的大数据分析平台。专门大数据库平台供应商提供基于云的沙箱测试和开发环境,但1010data的治理数据库服务,要紧针对将整个工作负载迁移到云的全过程。该服务支持一种提供“丰富而又高级的内置分析功能”,其中包括有预测分析。其一大卖点是服务包括了数据建模和设计、信息集成和数据转换。1010data提供基于云计算大数据分析其客户包括有对冲基金、全球各大银行、证券交易商,零售商和包装消费品公司。何谓大数据?大数据,也确实是国外常讲的BigData。IBM把大数据概括成了三个V,即大量化(Volume)、多样化(Variety)和快速化(Velocity)。这些特点也反映了大数据所潜藏的价值(Value),我们也能够认为,四个V高度概括了大数据的差不多特征。业界比较一致对大数据的定义是:大数据是指无法在一定时刻内用常规软件工具对其内容进行抓取、治理和处理的数据集合。大数据时代分析技术如何进化2012-06-1907:30比特网袁斌关键字:FICO
大数据
费埃哲当你在应用信用卡进行交易时,你可能没有意识到,这笔交易是否成功,是由费埃哲(FICO)公司的产品在后台进行智能推断和监测的。目前,费埃哲公司的Falcon解决方案在关心客户监控全球2/3的信用卡交易,并从中辨不欺诈活动。显然,这是一个特不典型的大数据应用——银行每天的信用卡交易数差不多上一个天文数字,如何有效处理和鉴不这些数据,关心企业做出正确的决策?在非结构化数据汹涌增加的今天,费埃哲公司又是如何推断大数据时代的分析技术进展?日前,比特网记者采访了费埃哲(FICO)公司首席执行官WillLansing先生。费埃哲(FICO)公司首席执行官WillLansing先生问:大数据对软件和硬件都有特不强的挑战,因此现在业界有一种趋势,要做软硬件结合,以更紧密的一体机形式来提供分析服务。最典型的产品,例如甲骨文公司的Exalytics系统。那么,您是如何看待这一趋势?费埃哲公司会如何更好地与硬件进行优化整合?答:这是一个特不行的问题。就费埃哲公司而言,基础架构并不是我们的专长,因此我们要和我们的客户去合作。目前,我们有一些合作方式是基于SaaS的,也有一些是基于其它各类解决方案的。费埃哲公司并不强制客户使用某种特定的基础架构来运行我们的应用、捕捉应用数据,而是在客户现有的基础架构运营优化、进行合作。实际上,费埃哲公司也在和一些实验室合作,例如Cloudera,借此来拓展我们的能力,消除我们(对硬件基础设施在理解上)的局限性。问:在大数据的分析方面,数学模型特不重要。我们明白,费埃哲公司在金融领域有专门深的积存。那么,这种积存如何推广到其他行业?答:费埃哲公司在垂直行业差不多有专门长时刻的积存了,这也是我们能够将业务拓展到非金融行业的一大缘故。我们公司特不擅长分析一些复杂、困难的问题,这些分析技巧不仅适用于金融行业,也适用于其他多个行业。例如,我们关于客户行为的了解,就不局限于金融行业,还包括保险行业和零售行业。在保险行业当中,某些欺诈的行为和在银行业当中的信用卡欺诈的用户行为是特不类似的。而在营销解决方案方面,专门多零售行业的客户行为和银行客户的行为也特不近似。因此,我们在金融行业的客户治理经验,也能够应用到零售行业。以费埃哲公司在中国的业务进展为例,银行业务是最传统的领域。但从一年前开始,费埃哲就开始把我们成熟的技术推向保险领域,协助保险公司做理赔的反欺诈。尽管保险行业的业务特点跟银行不太一样,但我们的技术是同样适用的,而且我们在国外的保险行业也有所积存。因此,费埃哲在国内的保险理赔反欺诈的案例就特不成功——客户回访时,他们表示,现在能够通过数据分析,实时抓住大批量的理赔欺诈。问:我们也注意到,您提到了信用卡反欺诈那个大数据应用。但相对而言,这差不多上针对结构化数据的,针对邮件、文本这些非结构化的数据,费埃哲公司将采纳哪些解决方案去处理?答:大数据的定义当中,包括3个V(高容量、高速度、多类型)。尽管费埃哲的信用卡反欺诈解决方案只是针对结构化数据,但我们差不多能够处理大容量数据和高速的数据。到目前为止,我们依旧采纳相对传统的方式,将数据简化到一个智能的、可操作的层面,然后基于这些数据来做出快速决策。尽管我们现在只能做到这三个V当中的两个,但我们特不接近完美地来解决那个问题的。随着基础架构不断的完善和演进,费埃哲的解决方案也会发生变化。问:在数据爆发的时代,我们进行数据分析的方式需要改变吗?答:我们关于大数据的绝大多数讨论都集中在数据的规模,并没有相应关注在数据分析方式的改变。“数据流”的分析关于FICO并不陌生,其中最好的应用莫过于我们的反欺诈解决方案——FICOFalconFraudManager。Falcon模型依靠交易特征,它概括了数据在交易过程中的特征,以便计算相关的欺诈特点的变量,而不依靠由此生成的既有数据。我们在数据流特征分析领域不断推动创新,尤其在反欺诈领域。这些创新技术包括:全球智能特征识不技术。它能够自动发觉银行卡交易、ATM和商户交易中的不正常行为。再比如FICO公司开发的自我校正分析技术,它能够随着客户行为模式的改变,服务渠道的改变而改善侦测的准确性。另一个由大数据带来的变化是分析必须减少关于固有数据的依靠。分析模型将能够依照数据流中的动态数据自我调整。为了应对不断增加的数据流中的动态数据,我们集中研发了自我学习的一些技术,包括:自适应分析和自我矫正分析技术。我们坚信这些关键技术将弥补传统方式的不足。自学习技术甚至将可能在某些领域取代传统的模式。最近,我们在自己开发的自我校正分析技术上取得了重大进展。已申请专利的“多层自我校正分析技术”的体系结构与神经网络模式类似,但与之不同的是新模式能够在数据流中自我校正。使用多层自我校正模式将需要更少的数据采样,同时能够直接与自适应分析技术联合使用,能够更为动态地发觉欺诈。将“多层自我校对系统”与目前通用的技术相比,我们预见以后的分析技术将大幅提高。问:更进一步地讲,现在的大数据分析,差不多上数据进行筛选、过滤到数据仓库当中,然后进行分析。随着硬件设备在性能和容量上不断提升,还有必要对传统分析技术进行大规模改进吗?答:今天的大数据分析情况确实如你所讲的如此。但我相信,在不远的今后,我们会需要直接对大数据进行分析。这种分析可能有两种方式:一种是随着数据集的不断增加,我们需要重新建模——在数据集不断增加的情况下,可能需要考虑应用Hadoop技术进行存储,否则我们就没有容量足够大的存储空间;另一种方式则是采纳基于机器学习的方法,来进行大数据的处理和分析。至于硬件的性能,也许现在还不是问题,但当我们考虑所有数据,并从中找出最有价值的地点时,用现有的基础架构就会显得远远不够。例如,今天的银行客户,他们差不多明白,以后他们的数据是分散的、遍布各地的,可能在银行内部,可能在局域网或者在云里面,他们希望这些数据都能够被读取,都对数据进行分析。显然,这是今天的架构无法完成的,这需要今后才能够实现。问:那么,您认为机器学习和传统模型这两种数据分析方式,哪种更有进展前途?答:大数据的最终目标确实是利用各种数据来做出最好的决策。大数据最美的地点,确实是我们不再受数据容量的局限,它能够不断的增加一些变量,然后增加价值,关心我们做出更好的决策。如你所提到的,现在我们有两种模型,一种是基于假设的模型,例如前几年麦肯锡提出来的假设模型,讲我们要关注哪些高价值数据,关注相关领域的数据,关注那些能够提升效率的数据。另一种模型确实是一种不是基于假设的模型,确切地讲,是一种机器学习的模型。这种模型跟假设模型完全不同。我并不认为这两种模型能够相互替代。从长期来看,一定会有更多的数据需要我们去关注。对大数据来讲,它能够不断的增加变量,关心我们基于这些数据做出更好的决策,这是它特不有优势的一个地点。我个人认为,在比较长的一段时刻之后,机器学习的这种方式,有可能会取代假设的这种模型。问:在金融领域的机器学习应该具有什么特性?答:以小额贷款的机器学习为例,这需要特不快速观看和衡量,能够迅速发觉坏帐,如此才能够快速学习、调整。尽管目前也有一些公司推出了所谓的机器学习,但这是特不有局限性的,要紧是用于展示,展示出新科技所带来的可能性,并告诉客户那个新科技能够不断完善,同时最终能够降低风险。技术基础:大数据分析技术的进展ZDNet存储系统来源:赛迪网2012年05月16日评论(0)关键词:大数据MapReduceGoogle本文摘要大数据分析技术最初起源于互联网行业。网页存档、用户点击、商品信息、用户关系等数据形成了持续增长的海量数据集。这些大数据中蕴藏着大量能够用于增强用户体验、提高服务质量和开发新型应用的知识,而如何高效和准确的发觉这些知识就差不多决定了各大互联网公司在激烈竞争环境中的位置。首先,以Google为首的技术型互联网公司提出了MapReduce的技术框架,利用廉价的PC服务器集群,大规模并发处理批量事务。大数据分析技术最初起源于互联网行业。网页存档、用户点击、商品信息、用户关系等数据形成了持续增长的海量数据集。这些大数据中蕴藏着大量能够用于增强用户体验、提高服务质量和开发新型应用的知识,而如何高效和准确的发觉这些知识就差不多决定了各大互联网公司在激烈竞争环境中的位置。首先,以Google为首的技术型互联网公司提出了MapReduce的技术框架,利用廉价的PC服务器集群,大规模并发处理批量事务。利用文件系统存放非结构化数据,加上完善的备份和容灾策略,这套经济实惠的大数据解决方案与之前昂贵的企业小型机集群+商业数据库方案相比,不仅没有丢失性能,而且还赢在了可扩展性上。之前,我们在设计一个数据中心解决方案的前期,就要考虑到方案实施后的可扩展性。通常的方法是预估今后一段时期内的业务量和数据量,加入多余的计算单元(CPU)和存储,以备不时只需。如此的方式直接导致了前期一次性投资的巨大,同时即使如此也依旧无法保证计算需求和存储超出设计量时的系统性能。而一旦需要扩容,问题就会接踵而来。首先是商业并行数据库通常需要各节点物理同构,也确实是具有近似的计算和存储能力。而随着硬件的更新,我们通常加入的新硬件都会强于已有的硬件。如此,旧硬件就成为了系统的瓶颈。为了保证系统性能,我们不得不把旧硬件逐步替换掉,经济成本损失巨大。其次,即使是当前最强的商业并行数据库,其所能治理的数据节点也只是在几十或上百那个数量级,这要紧是由于架构上的设计问题,因此其可扩展性必定有限。而MapReduce+GFS框架,不受上述问题的困扰。需要扩容了,只需增加个机柜,加入适当的计算单元和存储,集群系统会自动分配和调度这些资源,丝毫不阻碍现有系统的运行。现在,我们用得更多的是GoogleMapReduce的开源实现,即Hadoop。除了计算模型的进展,与此同时,人们也在关注着数据存储模型。传统的关系型数据库由于其规范的设计、友好的查询语言、高效的数据处理在线事务的能力,长时刻地占据了市场的主导地位。然而,其严格的设计定式、为保证强一致性而放弃性能、可扩展性差等问题在大数据分析中被逐渐暴露。随之而来,NoSQL数据存储模型开始风行。NoSQL,也有人理解为NotOnlySQL,并不是一种特定的数据存储模型,它是一类非关系型数据库的统称。其特点是:没有固定的数据表模式、能够分布式和水平扩展。NoSQL并不是单纯的反对关系型数据库,而是针对其缺点的一种补充和扩展。典型的NoSQL数据存储模型有文档存储、键-值存储、图存储、对象数据库、列存储等。而比较流行的,不得不提到Google提出的Bigtable。Bigtable是一种用于治理海量结构化数据的分布式存储系统,其数据通常能够跨成千个节点进行分布式存储,总数据量可达PB级(10的15次方字节,106GB)。HBase是其开源实现。现在,在开源社区,围绕GoogleMapReduce框架,成长出了一批优秀的开源项目。这些项目在技术和实现上相互支持和依托,逐渐形成了一个特有的生态系统。那个地点借用Cloudera所描绘的架构图来展现Hadoop生态系统。那个系统为我们实现优质廉价的大数据分析提供了坚实的技术基础。使用Storm实现实时大数据分析!实时Storm大数据摘要:随着数据体积的越来越大,实时处理成为了许多机构需要面对的首要挑战。ShruthiKumar和SiddharthPatankar在Dr.Dobb’s上结合了汽车超速监视,为我们演示了使用Storm进行实时大数据分析。CSDN在此编译、整理。简单和明了,Storm让大数据分析变得轻松加愉快。当今世界,公司的日常运营经常会生成TB级不的数据。数据来源囊括了互联网装置能够捕获的任何类型数据,网站、社交媒体、交易型商业数据以及其它商业环境中创建的数据。考虑到数据的生成量,实时处理成为了许多机构需要面对的首要挑战。我们经常用的一个特不有效的开源实时计算工具确实是Storm
——Twitter开发,通常被比作“实时的Hadoop”。然而Storm远比Hadoop来的简单,因为用它处理大数据可不能带来新老技术的交替。ShruthiKumar、SiddharthPatankar共同效力于Infosys,分不从事技术分析和研发工作。本文详述了Storm的使用方法,例子中的项目名称为“超速报警系统(SpeedingAlertSystem)”。我们想实现的功能是:实时分析过往车辆的数据,一旦车辆数据超过预设的临界值——便触发一个trigger并把相关的数据存入数据库。Storm对比Hadoop的批处理,Storm是个实时的、分布式以及具备高容错的计算系统。同Hadoop一样Storm也能够处理大批量的数据,然而Storm在保证高可靠性的前提下还能够让处理进行的更加实时;也确实是讲,所有的信息都会被处理。Storm同样还具备容错和分布计算这些特性,这就让Storm能够扩展到不同的机器上进行大批量的数据处理。他同样还有以下的这些特性:易于扩展。关于扩展,你只需要添加机器和改变对应的topology(拓扑)设置。Storm使用HadoopZookeeper进行集群协调,如此能够充分的保证大型集群的良好运行。每条信息的处理都能够得到保证。Storm集群治理简易。Storm的容错机能:一旦topology递交,Storm会一直运行它直到topology被废除或者被关闭。而在执行中出现错误时,也会由Storm重新分配任务。尽管通常使用Java,Storm中的topology能够用任何语言设计。因此为了更好的理解文章,你首先需要安装和设置Storm。需要通过以下几个简单的步骤:从Storm官方下载Storm安装文件将bin/directory解压到你的PATH上,并保证bin/storm脚本是可执行的。Storm组件Storm集群要紧由一个主节点和一群工作节点(workernode)组成,通过Zookeeper进行协调。主节点:主节点通常运行一个后台程序——Nimbus,用于响应分布在集群中的节点,分配任务和监测故障。那个专门类似于Hadoop中的JobTracker。工作节点:工作节点同样会运行一个后台程序——Supervisor,用于收听工作指派并基于要求运行工作进程。每个工作节点差不多上topology中一个子集的实现。而Nimbus和Supervisor之间的协调则通过Zookeeper系统或者集群。ZookeeperZookeeper是完成Supervisor和Nimbus之间协调的服务。而应用程序实现实时的逻辑则被封装进Storm中的“topology”。topology则是一组由Spouts(数据源)和Bolts(数据操作)通过StreamGroupings进行连接的图。下面对出现的术语进行更深刻的解析。Spout:简而言之,Spout从来源处读取数据并放入topology。Spout分成可靠和不可靠两种;当Storm接收失败时,可靠的Spout会对tuple(元组,数据项组成的列表)进行重发;而不可靠的Spout可不能考虑接收成功与否只发射一次。而Spout中最要紧的方法确实是nextTuple(),该方法会发射一个新的tuple到topology,假如没有新tuple发射则会简单的返回。Bolt:Topology中所有的处理都由Bolt完成。Bolt能够完成任何事,比如:连接的过滤、聚合、访问文件/数据库、等等。Bolt从Spout中接收数据并进行处理,假如遇到复杂流的处理也可能将tuple发送给另一个Bolt进行处理。而Bolt中最重要的方法是execute(),以新的tuple作为参数接收。不管是Spout依旧Bolt,假如将tuple发射成多个流,这些流都能够通过declareStream()来声明。StreamGroupings:StreamGrouping定义了一个流在Bolt任务间该如何被切分。那个地点有Storm提供的6个StreamGrouping类型:1.随机分组(Shufflegrouping):随机分发tuple到Bolt的任务,保证每个任务获得相等数量的tuple。2.字段分组(Fieldsgrouping):依照指定字段分割数据流,并分组。例如,依照“user-id”字段,相同“user-id”的元组总是分发到同一个任务,不同“user-id”的元组可能分发到不同的任务。3.全部分组(Allgrouping):tuple被复制到bolt的所有任务。这种类型需要慎重使用。4.全局分组(Globalgrouping):全部流都分配到bolt的同一个任务。明确地讲,是分配给ID最小的那个task。5.无分组(Nonegrouping):你不需要关怀流是如何分组。目前,无分组等效于随机分组。但最终,Storm将把无分组的Bolts放到Bolts或Spouts订阅它们的同一线程去执行(假如可能)。6.直接分组(Directgrouping):这是一个特不的分组类型。元组生产者决定tuple由哪个元组处理者任务接收。因此还能够实现CustomStreamGroupimg接口来定制自己需要的分组。项目实施当下情况我们需要给Spout和Bolt设计一种能够处理大量数据(日志文件)的topology,当一个特定数据值超过预设的临界值时促发警报。使用Storm的topology,逐行读入日志文件同时监视输入数据。在Storm组件方面,Spout负责读入输入数据。它不仅从现有的文件中读入数据,同时还监视着新文件。文件一旦被修改Spout会读入新的版本同时覆盖之前的tuple(能够被Bolt读入的格式),将tuple发射给Bolt进行临界分析,如此就能够发觉所有可能超临界的记录。下一节将对用例进行详细介绍。临界分析这一节,将要紧聚焦于临界值的两种分析类型:瞬间临界(instantthershold)和时刻序列临界(timeseriesthreshold)。瞬间临界值监测:一个字段的值在那个瞬间超过了预设的临界值,假如条件符合的话则触发一个trigger。举个例子当车辆超越80公里每小时,则触发trigger。时刻序列临界监测:字段的值在一个给定的时刻段内超过了预设的临界值,假如条件符合则触发一个触发器。比如:在5分钟类,时速超过80KM两次及以上的车辆。ListingOne显示了我们将使用的一个类型日志,其中包含的车辆数据信息有:车牌号、车辆行驶的速度以及数据猎取的位置。AB12360NorthcityBC12370SouthcityCD23440SouthcityDE12340East
cityEF12390SouthcityGH12350West
city那个地点将创建一个对应的XML文件,这将包含引入数据的模式。那个XML将用于日志文件的解析。XML的设计模式和对应的讲明请见下表。XML文件和日志文件都存放在Spout能够随时监测的目录下,用以关注文件的实时更新。而那个用例中的topology请见下图。Figure1:Storm中建立的topology,用以实现数据实时处理如图所示:FilelistenerSpout接收输入日志并进行逐行的读入,接着将数据发射给ThresoldCalculatorBolt进行更深一步的临界值处理。一旦处理完成,被计算行的数据将发送给DBWriterBolt,然后由DBWriterBolt存入给数据库。下面将对那个过程的实现进行详细的解析。Spout的实现Spout以日志文件和XML描述文件作为接收对象。XML文件包含了与日志一致的设计模式。不妨设想一下一个示例日志文件,包含了车辆的车牌号、行驶速度、以及数据的捕获位置。(看下图)Figure2:数据从日志文件到Spout的流程图ListingTwo显示了tuple对应的XML,其中指定了字段、将日志文件切割成字段的定界符以及字段的类型。XML文件以及数据都被保存到Spout指定的路径。ListingTwo:用以描述日志文件的XML文件。<TUPLEINFO>
<FIELDLIST>
<FIELD>
<COLUMNNAME>vehicle_number</COLUMNNAME>
<COLUMNTYPE>string</COLUMNTYPE>
</FIELD>
<FIELD><COLUMNNAME>speed</COLUMNNAME>
<COLUMNTYPE>int</COLUMNTYPE>
</FIELD>
<FIELD>
<COLUMNNAME>location</COLUMNNAME>
<COLUMNTYPE>string</COLUMNTYPE>
</FIELD>
</FIELDLIST>
<DELIMITER>,</DELIMITER>
</TUPLEINFO>
通过构造函数及它的参数Directory、PathSpout和TupleInfo对象创建Spout对象。TupleInfo储存了日志文件的字段、定界符、字段的类型这些专门必要的信息。那个对象通过XSTream序列化XML时建立。Spout的实现步骤:对文件的改变进行分开的监听,并监视目录下有无新日志文件添加。在数据得到了字段的讲明后,将其转换成tuple。声明Spout和Bolt之间的分组,并决定tuple发送给Bolt的途径。Spout的具体编码在ListingThree中显示。ListingThree:Spout中open、nextTuple和delcareOutputFields方法的逻辑。public
void
open(
Map
conf,
TopologyContext
context,SpoutOutputCollector
collector
)
{
_collector
=
collector;
try
{
fileReader
=
new
BufferedReader(new
FileReader(new
File(file)));
}
catch
(FileNotFoundException
e)
{
System.exit(1);
}
}
public
void
nextTuple()
{
protected
void
ListenFile(File
file)
{
Utils.sleep(2000);
RandomAccessFile
access
=
null;
String
line
=
null;
try
{
while
((line
=
access.readLine())
!=
null)
{
if
(line
!=null)
{
String[]
fields=null;
if
(tupleInfo.getDelimiter().equals("|"))
fields
=
line.split("\\"+tupleInfo.getDelimiter());
else
fields
=
line.split
(tupleInfo.getDelimiter());
if
(tupleInfo.getFieldList().size()
==
fields.length)
_collector.emit(new
Values(fields));
}
}
}
catch
(IOException
ex){
}
}
}
public
void
declareOutputFields(OutputFieldsDeclarer
declarer)
{
String[]
fieldsArr
=
new
String
[tupleInfo.getFieldList().size()];
for(int
i=0;
i<tupleInfo.getFieldList().size();
i++)
{
fieldsArr[i]
=
tupleInfo.getFieldList().get(i).getColumnName();
}
declarer.declare(new
Fields(fieldsArr));
}
declareOutputFileds()决定了tuple发射的格式,如此的话Bolt就能够用类似的方法将tuple译码。Spout持续对日志文件的数据的变更进行监听,一旦有添加Spout就会进行读入同时发送给Bolt进行处理。Bolt的实现Spout的输出结果将给予Bolt进行更深一步的处理。通过对用例的考虑,我们的topology中需要如Figure3中的两个Bolt。Figure3:Spout到Bolt的数据流程。ThresholdCalculatorBoltSpout将tuple发出,由ThresholdCalculatorBolt接收并进行临界值处理。在那个地点,它将接收好几项输入进行检查;分不是:临界值检查临界值栏数检查(拆分成字段的数目)临界值数据类型(拆分后字段的类型)临界值出现的频数临界值时刻段检查ListingFour中的类,定义用来保存这些值。ListingFour:ThresholdInfo类public
class
ThresholdInfo
implementsSerializable
{
private
String
action;
private
String
rule;
private
Object
thresholdValue;
private
int
thresholdColNumber;
private
Integer
timeWindow;
private
int
frequencyOfOccurence;
}
基于字段中提供的值,临界值检查将被ListingFive中的execute()方法执行。代码大部分的功能是解析和接收值的检测。ListingFive:临界值检测代码段public
void
execute(Tuple
tuple,
BasicOutputCollector
collector)
{
if(tuple!=null)
{
List<Object>
inputTupleList
=
(List<Object>)
tuple.getValues();
int
thresholdColNum
=
thresholdInfo.getThresholdColNumber();
Object
thresholdValue
=
thresholdInfo.getThresholdValue();
String
thresholdDataType
=
tupleInfo.getFieldList().get(thresholdColNum-1).getColumnType();
Integer
timeWindow
=
thresholdInfo.getTimeWindow();
int
frequency
=
thresholdInfo.getFrequencyOfOccurence();
if(thresholdDataType.equalsIgnoreCase("string"))
{
String
valueToCheck
=
inputTupleList.get(thresholdColNum-1).toString();
String
frequencyChkOp
=
thresholdInfo.getAction();
if(timeWindow!=null)
{
long
curTime
=
System.currentTimeMillis();
long
diffInMinutes
=
(curTime-startTime)/(1000);
if(diffInMinutes>=timeWindow)
{
if(frequencyChkOp.equals("=="))
{
if(valueToCheck.equalsIgnoreCase(thresholdValue.toString()))
{
count.incrementAndGet();
if(count.get()
>
frequency)
splitAndEmit(inputTupleList,collector);
}
}
else
if(frequencyChkOp.equals("!="))
{
if(!valueToCheck.equalsIgnoreCase(thresholdValue.toString()))
{
count.incrementAndGet();
if(count.get()
>
frequency)
splitAndEmit(inputTupleList,collector);
}
}
else
System.out.println("Operator
not
supported");
}
}
else
{
if(frequencyChkOp.equals("=="))
{
if(valueToCheck.equalsIgnoreCase(thresholdValue.toString()))
{
count.incrementAndGet();
if(count.get()
>
frequency)
splitAndEmit(inputTupleList,collector);
}
}
else
if(frequencyChkOp.equals("!="))
{
if(!valueToCheck.equalsIgnoreCase(thresholdValue.toString()))
{
count.incrementAndGet();
if(count.get()
>
frequency)
splitAndEmit(inputTupleList,collector);
}
}
}
}
else
if(thresholdDataType.equalsIgnoreCase("int")
||
thresholdDataType.equalsIgnoreCase("double")
||
thresholdDataType.equalsIgnoreCase("float")
||
thresholdDataType.equalsIgnoreCase("long")
||
thresholdDataType.equalsIgnoreCase("short"))
{
String
frequencyChkOp
=
thresholdInfo.getAction();
if(timeWindow!=null)
{
long
valueToCheck
=
Long.parseLong(inputTupleList.get(thresholdColNum-1).toString());
long
curTime
=
System.currentTimeMillis();
long
diffInMinutes
=
(curTime-startTime)/(1000);
System.out.println("Difference
in
minutes="+diffInMinutes);
if(diffInMinutes>=timeWindow)
{
if(frequencyChkOp.equals("<"))
{
if(valueToCheck
<
Double.parseDouble(thresholdValue.toString()))
{
count.incrementAndGet();
if(count.get()
>
frequency)
splitAndEmit(inputTupleList,collector);
}
}
else
if(frequencyChkOp.equals(">"))
{
if(valueToCheck
>
Double.parseDouble(thresholdValue.toString()))
{
count.incrementAndGet();
if(count.get()
>
frequency)
splitAndEmit(inputTupleList,collector);
}
}
else
if(frequencyChkOp.equals("=="))
{
if(valueToCheck
==
Double.parseDouble(thresholdValue.toString()))
{
count.incrementAndGet();
if(count.get()
>
frequency)
splitAndEmit(inputTupleList,collector);
}
}
else
if(frequencyChkOp.equals("!="))
{
.
.
.
}
}
}
else
splitAndEmit(null,collector);
}
else
{
System.err.println("Emitting
null
in
bolt");
splitAndEmit(null,collector);
}
}
经由Bolt发送的的tuple将会传递到下一个对应的Bolt,在我们的用例中是DBWriterBolt。DBWriterBolt通过处理的tuple必须被持久化以便于触发tigger或者更深层次的使用。DBWiterBolt做了那个持久化的工作并把tuple存入了数据库。表的建立由prepare()函数完成,这也将是topology调用的第一个方法。方法的编码如ListingSix所示。ListingSix:建表编码。public
void
prepare(
Map
StormConf,
TopologyContext
context
)
{
try
{
Class.forName(dbClass);
}
catch
(ClassNotFoundException
e)
{
System.out.println("Driver
not
found");
e.printStackTrace();
}
try
{
connection
driverManager.getConnection(
"jdbc:mysql://"+databaseIP+":"+databasePort+"/"+database
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030中国海洋工程用钢行业发展分析及发展前景与趋势预测研究报告
- 2025-2030中国浴室浓缩清洁剂行业市场发展分析及竞争格局与投资前景研究报告
- 2025-2030中国浓缩蛋白饲料行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030中国测试、检验和认证(TIC)行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030中国泰妙菌素原料药行业供需状况与发展趋势研究研究报告
- 2025-2030中国油烟机行业发展分析及投资前景预测研究报告
- 2025-2030中国汽车零部件修复服务行业市场发展趋势与前景展望战略研究报告
- 2025-2030中国汽车钢管市场竞争风险及投资运作模式分析研究报告
- 2025-2030中国汽车起重机吊臂行业市场发展分析及竞争格局与投资前景研究报告
- 2025-2030中国汽车燃油输送泵行业市场发展趋势与前景展望战略分析研究报告
- 医院培训课件:《白疕(银屑病)中医护理查房》
- 一汽-大众供应商管理流程介绍.sbx
- 招标代理机构入围 投标方案(技术方案)
- 招投标代理挂靠协议书
- 工作的时效性与时间管理课件
- 年产10万吨聚氯乙烯生产工艺设计毕业设计
- 高中18岁成人仪式主题活动设计
- 《婚姻家庭纠纷调解》课件
- 高中数学培优讲义练习(必修二):专题8.1 基本立体图形(重难点题型精讲)(教师版)
- 兵团红色经典文化在新疆高校思想政治教育中的运用研究
- 注塑机定期保养记录表2016
评论
0/150
提交评论