大数据分析解决方案_第1页
大数据分析解决方案_第2页
大数据分析解决方案_第3页
大数据分析解决方案_第4页
大数据分析解决方案_第5页
已阅读5页,还剩68页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

大数据分析三个技巧: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

MapReduce-11-1913:12

218人阅读

评论(0)

\o"收藏"收藏

\o"举报"举报

当数据以成百上千TB不停增加时候,我们需要一个独特技术来应对这种前所未有挑战。大数据分析迎来大时代全球各行各业组织机构已经意识到,最准确商务决议来自于事实,而不是凭空臆想。这也就意味着,他们需要在内部交易系统历史信息之外,采取基于数据分析决议模型和技术支持。互联网点击数据、传感数据、日志文件、具备丰富地理空间信息移动数据和包括网络各类评论,成为了海量信息多个形式。极具挑战性是,传统数据库布署不能处理数TB数据,也不能很好支持高级别数据分析。在过去十几年中,大规模并行处理(MPP)平台和列存放数据库开启了新一轮数据分析史上革命。而且近年来技术不停发展,我们开始看到,技术升级带来已知架构之间界限变得愈加含糊。更为主要是,开始逐步出现了处理半结构化和非结构化信息NoSQL等平台。大数据分析迎来大时代本文中,我们将向大家介绍迄今为止,包含EMCGreenplum、Hadoop和MapReduce等提供大数据分析产品。另外,惠普前段时间收购实时分析平台Vertica、IBM独立基于DB2智能分析系统和Netezza相关产品。当然,也有微软ParallelDataWarehouse、SAP旗下企业SybaseSybaseIQ数据仓库分析工具等。下面,就让我们来了解业界大数据分析这十二大产品:1.模块化EMCAppliance处理多个数据类型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推出了基于DB2SmartAnalyticSystem(图中左侧),那么它为何还要收购另外Netezza方案平台呢?因为前者是具备高扩展性企业数据仓库平台,能够支持成千上万用户和各类应用操作。比如,呼叫中心通常拥有大量雇员需要快速回拨客户历史通话统计。SmartAnalyticSystem提供了整合信息DB2数据库,预配置CognosBI软件模块,能够在IBMPowerSystem(RISC或者X86架构)上运行。SmartAnalyticSystem及NetezzaNetezza致力于为数字化营销企业、电信、和其余挖掘成百上千TB甚至PB级别数据企业,提供高可扩展分析应用处理方案。IBMNetezzaTwinFin数据仓库设备,支持大规模并行处理,能够在一天时间内布署完成。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服务将在底亮相,而对应当地配套软件要在明年上六个月推出,现在也不清楚微软是否会与其余硬件合作搭档或者相关大数据设备厂商合作。8.甲骨文讲述EngineeredSystems故事甲骨文表示,Exadata(图中左侧)是迄今以来公布产品中最为成功产品,自从推出以来,已经拥有超出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是列存放数据库管理系统首批厂商,而且现在依然是拥有多个客户畅销厂商。今年夏天推出了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高度概括了大数据基本特征。业界比较一致对大数据定义是:大数据是指无法在一定时间内用常规软件工具对其内容进行抓取、管理和处理数据集合。大数据时代分析技术怎样进化-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存放系统起源:赛迪网05月16日评论(0)关键词:大数据MapReduce谷歌本文摘要大数据分析技术最初起源于互联网行业。网页存档、用户点击、商品信息、用户关系等数据形成了连续增加海量数据集。这些大数据中蕴藏着大量能够用于增强用户体验、提升服务质量和开发新型应用知识,而怎样高效和准确发觉这些知识就基本决定了各大互联网企业在激烈竞争环境中位置。首先,以谷歌为首技术型互联网企业提出了MapReduce技术框架,利用廉价PC服务器集群,大规模并发处理批量事务。大数据分析技术最初起源于互联网行业。网页存档、用户点击、商品信息、用户关系等数据形成了连续增加海量数据集。这些大数据中蕴藏着大量能够用于增强用户体验、提升服务质量和开发新型应用知识,而怎样高效和准确发觉这些知识就基本决定了各大互联网企业在激烈竞争环境中位置。首先,以谷歌为首技术型互联网企业提出了MapReduce技术框架,利用廉价PC服务器集群,大规模并发处理批量事务。利用文件系统存放非结构化数据,加上完善备份和容灾策略,这套经济实惠大数据处理方案与之前昂贵企业小型机集群+商业数据库方案相比,不但没有丢失性能,而且还赢在了可扩展性上。之前,我们在设计一个数据中心处理方案前期,就要考虑到方案实施后可扩展性。通常方法是预估今后一段时期内业务量和数据量,加入多出计算单元(CPU)和存放,以备不时只需。这么方式直接造成了前期一次性投资巨大,而且即使这么也依然无法确保计算需求和存放超出设计量时系统性能。而一旦需要扩容,问题就会接踵而来。首先是商业并行数据库通常需要各节点物理同构,也就是具备近似计算和存放能力。而伴随硬件更新,我们通常加入新硬件都会强于已经有硬件。这么,旧硬件就成为了系统瓶颈。为了确保系统性能,我们不得不把旧硬件逐步替换掉,经济成本损失巨大。其次,即使是当前最强商业并行数据库,其所能管理数据节点也只是在几十或上百这个数量级,这主要是因为架构上设计问题,所以其可扩展性必定有限。而MapReduce+GFS框架,不受上述问题困扰。需要扩容了,只需增加个机柜,加入适当计算单元和存放,集群系统会自动分配和调度这些资源,丝毫不影响现有系统运行。如今,我们用得更多是谷歌MapReduce开源实现,即Hadoop。除了计算模型发展,与此同时,人们也在关注着数据存放模型。传统关系型数据库因为其规范设计、友好查询语言、高效数据处理在线事务能力,长时间地占据了市场主导地位。然而,其严格设计定式、为确保强一致性而放弃性能、可扩展性差等问题在大数据分析中被逐步暴露。随之而来,NoSQL数据存放模型开始风靡。NoSQL,也有些人了解为NotOnlySQL,并不是一个特定数据存放模型,它是一类非关系型数据库统称。其特点是:没有固定数据表模式、能够分布式和水平扩展。NoSQL并不是单纯反对关系型数据库,而是针对其缺点一个补充和扩展。经典NoSQL数据存放模型有文档存放、键-值存放、图存放、对象数据库、列存放等。而比较流行,不得不提到谷歌提出Bigtable。Bigtable是一个用于管理海量结构化数据分布式存放系统,其数据通常能够跨成千个节点进行分布式存放,总数据量可达PB级(1015次方字节,106GB)。HBase是其开源实现。如今,在开源小区,围绕谷歌MapReduce框架,成长出了一批优异开源项目。这些项目在技术和实现上相互支持和依靠,逐步形成了一个特有生态系统。这里借用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,当一个特定数据值超出预设临界值时促发警报。使用Stormtopology,逐行读入日志文件而且监视输入数据。在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();

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+"/"+databaseName,

userName,

pwd);

connection.prepareStatement("DROP

TABLE

IF

EXISTS

"+tableName).execute();

StringBuilder

createQuery

=

new

StringBuilder(

"CREATE

TABLE

IF

NOT

EXISTS

"+tableName+"(");

for(Field

fields

:

tupleInfo.getFieldList())

{

if(fields.getColumnType().equalsIgnoreCase("String"))

createQuery.append(fields.getColumnName()+"

VARCHAR(500),");

else

createQuery.append(fields.getColumnName()+"

"+fields.getColumnType()+",");

}

createQuery.append("thresholdTimeStamp

timestamp)");

connection.prepareStatement(createQuery.toString()).execute();

//

Insert

Query

StringBuilder

insertQuery

=

new

StringBuilder("INSERT

INTO

"+tableName+"(");

String

tempCreateQuery

=

new

String();

for(Field

fields

:

tupleInfo.getFieldList())

{

insertQuery.append(fields.getColumnName()+",");

}

insertQuery.append("thresholdTimeStamp").append(")

values

(");

for(Field

fields

:

tupleInfo.getFieldList())

{

insertQuery.append("?,");

}

insertQuery.append("?)"

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论