敏捷大数据方法论

发表于:2017-8-11 09:47

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:未知    来源:51Testing软件测试网采编

分享:
  
  “Between 70% to 80% of business intelligence projects fail”- Gartner, Feb. 2011
  前段时间有报道称,有学者质疑“大数据”理论,也有硅谷公司负责人质疑大数据应用的效果。结合2011年Gartner关于BI(Business Intelligence)应用70%-80%都失败的一个调查结论(这里的fail是夸张的说法,更确切地讲应该是没有达到预期效果),本文就来谈谈为什么会出现这样的问题,大数据应用落地的瓶颈是什么?为什么大数据应用容易失败?为什么大数据应用需要敏捷?敏捷大数据方法论又是什么,包括那些关键技术,系统架构如何设计等等问题,希望能为业界大数据应用落地提供一点有价值的参考。
  1.大数据应用落地的主要瓶颈是什么?
  我在前文《论大数据的泡沫、价值与应用陷阱》有说到,大数据现象源于我们对未来不确定性的恐惧,和应对软件在加速吞噬世界(软件越来越庞杂,操作越来越自动化,数据越来越丰富,而大部分人却对其原理和特性却知之甚少)这一大背景下的管理失控问题。大数据规律的可预测性创造了一种新的知识体系和管理思维,但分析模型的黑箱和操作的自动化却削弱了人类对其深层规律的理解和探索能力,机器的量化能力与人的主观判断能力短时间内还难以有机融合,大数据应用不缺预测模型、计算资源和数据科学家,而是缺乏提出正确问题和利用大数据工具解决问题的能力,就好比用大炮没有打到蚊子,我们不能说大炮没用,而会说这个人的方法搞错了。
  大数据分析的核心目标是,面向过去,发现数据规律,归纳已知;面向未来,挖掘数据趋势,预测未知。从而通过大数据分析提高对事物的理解和决策处置能力,最终实现智能化。不管是商业智能,机器智能,人工智能,还是智能客服,智能问答,智能推荐,智慧医疗、智慧交通等相关技术和系统,其本质都是朝着这一目标在演进。随着云计算平台和开源大数据系统(如Hadoop、Spark、Storm等)的高速发展,获得大数据基础设施建设相关技术和支持越来越容易。同时,移动互联网和物联网技术所具备的全面数据采集能力,客观上促进了大数据的积累和爆发。但是,大数据应用要落地,除了需要上述提出正确问题和利用大数据工具解决问题的能力之外,个人认为还面临如下几个方面的主要瓶颈:
  1)IT向DT(Data Technology,DT)技术泛型的转变,使得传统硬件和软件技术架构面临挑战,大规模并行计算、量子计算机、深度神经网络芯片、分布式存储系统、GPU大规模计算等都是对传统IT技术架构的颠覆。现阶段各种大数据分析相关的开源技术和系统百花齐放,大数据技术生态体系庞杂,技术门槛较高也间接说明了这一点。研究、研发人员要跟上这一波技术变革还需要时间去消化和积累,特别是学术界和工业界的结合,对大数据应用来讲至关重要,深度学习领域的突破就是例证。如何在掌握有限技术的条件下(或受制于核心技术人才的情况下),能快速进行大数据应用研究和落地应用,需要从技术选型角度进行深入探讨、分析和评估。
  2)传统商业智能(Business Intelligence, BI)应用的失败教训太多,项目周期漫长,考验客户耐性,应用投入成本高,最终成果多是昂贵的豪华报表,没有达到预期效果。另外,传统数据仓库和数据集市架构下,面对海量数据的存储能力、扩展能力、并发能力弱等问题无法从根本解决。大数据分析如何从BI项目中总结失败教训和获得经验,大数据应用与传统BI系统是融合还是代替?企业大数据技术架构如何与发源于互联网巨头的主流大数据技术框架有机统一?也还有很多问题需要深入总结,解决不好就会事倍功半。
  3)大数据应用的标准化和产品化问题。针对大数据的多源异构、动态性、关联性等特点,对大数据分析流程和应用进行标准化的管理,对离线分析、在线分析、实时分析、内存分析等计算框架的融合处理,对图像、文本、视频、音频、网页、关系数据库等多源异构数据进行跨模态建模,对大数据分析结果的应用效果进行量化与评价。不管是从技术选型角度还是业务支撑角度,都还有很多问题需要实战经验的积累和支持,想要一劳永逸地解决不现实。
  4)除了前述探讨的大数据应用面临的挑战之外,从大数据架构本身的技术角度分析还需要解决如下几个关键问题:高可扩展性,能支持大规模数据增长和大量业务分析的快速扩展等;高容错性和稳定性,能支持大数据分析的失败情况和进行自动恢复等;高性能和并行支持,能在海量数据条件下快速完成多种计算模型和分析处理;多源异构环境支持,能处理多模态数据和多种分析任务;开放性和共享支持,能提供标准的数据和开发接口,支持数据和系统集成;效率和成本的控制,能在有限的时间、人力和财力条件下提高系统性能等,这对大数据系统架构的设计提出了较高要求。
  5)大数据管理思维和开发、应用实施的脱节,大数据强化了定量科学和客观方法的地位,但事实上,现阶段很多企业领导,包括技术人员对大数据的处理和使用仍然是主观性的,而且面对机器学习的黑箱,对模型的缺陷和适用范畴很难有深入把握,这样的话通过大数据挖掘分析量化的结果也未必更符合客观事实,大数据不等于好数据,如何切实辅助决策才是关键。
  再则,大数据是非常碎片化的,大数据不只是谷歌亚马逊,BAT等互联网企业,每一个行业、企业里面都有它去关注数据的痕迹:一条生产线上的实时传感器数据,车辆身上的传感数据,高铁设备的运行状态数据,交通部门的监控数据等等;其次,现在的开源大数据系统架构和工具集来源于互联网巨头,这种技术架构不一定适合传统企业和政府关联机构,因为不同组织机构所拥有的数据类型和结构可能大不相同;再次,从大数据应用过程和特点来看,数据科学的本质是迭代,就好比婴儿的学习一样,输入-回应-反馈-学习-再输入,持续训练和学习才会产生智能,大数据分析系统是一样的道理,自适应优化和持续改进是大数据系统的必备特征。所以,这就需要大数据技术架构具有极强的灵活性、可扩展性,或者说敏捷性。
  2.大数据应用为什么需要敏捷?
  上述五个方面的大数据应用瓶颈分析可以看到,大数据应用要切实落地并产生应有价值还要较长的路要走,当然这取决于我们的期望,在《企业大数据应用三段论》一文中,有明确的界定,大数据应用的效果不能轻易否定,当然也不能太乐观,关键还是看处于那个阶段,技术成熟度和设计研发能力如何等等。为什么大数据需要敏捷,或者说我为什么提出敏捷大数据,主要基于上述大数据应用瓶颈的判断:大数据应用落地面临很多现实问题,首先我们看大数据的应用过程和特点(如图1),大数据要完成的是一种将各方面源数据(零散的、相关的围绕某行业或者某分析主题的数据)通过ETL组织成为主题数据,从主题数据中提炼信息特征,从特征挖掘中发现规律和有价值的知识,就规律和预测等知识信息形成决策支持并进行应用和追踪评估,最后反馈回大数据系统进行反复验证、优化并持续迭代的闭环信息处理过程。
  图1 大数据应用金字塔模型
  其次,有没有通用的大数据应用架构和流程?一般来讲,不同行业、不同企业、不同应用场景,采用的技术架构和分析流程也会有差异;再次,大数据应用落地需面对的现实问题众多,项目周期漫长,考验客户耐性,技术生态庞杂,复合型人才少,一将难求,应用效果如何量化也还没标准,用户参与度低,难达预期目标,机器学习数据实验,如何应用于数据工程等等问题,对大数据分析的系统架构、关键技术及应用方法论,提出了较高要求,下面就来看敏捷大数据能否解决一些问题。
  3.敏捷大数据方法论
  (1)何为敏捷?
  何为敏捷,我们先看几个概念:
  敏捷开发(Agile Development),以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。
  敏捷管理(Agile Management),敏捷管理是规划和指导项目流程的迭代方法,与敏捷软件开发一样,敏捷项目是在叫做迭代的小型部门中完成的。每个迭代都由项目团队审查和评判,从迭代的评判中获得的信息用于决定项目的下一个步骤。由于开发周期短,对需求管理恰当,敏捷管理正在从软件研发行业延伸到已经采取项目化管理的大部分行业中。
  精益生产(Lean Production),简称“精益”,是衍生自日本丰田生产方式的一种管理哲学,由美国麻省理工学院教授詹姆斯.P.沃麦克等专家通过“国际汽车计划(IMVP)”对全世界17个国家90多个汽车制造厂的调查和对比分析,认为日本丰田汽车公司的生产方式是最适用于现代制造企业的一种生产组织管理方式,精益生产是通过系统结构、人员组织、运行方式和市场供求等方面的变革,使生产系统能很快适应用户需求不断变化,并能使生产过程中一切无用、多余的东西被精简,最终达到包括市场供销在内的生产的各方面最好结果的一种生产管理方式。
  精益思维(Lean Thinking)和精益管理(Lean Management),源于精益生产,精益管理由最初的在生产系统的管理实践成功,已经逐步延伸到企业的各项管理业务,也由最初的具体业务管理方法,上升为战略管理理念。精益管理要求企业的各项活动都必须运用“精益思维”(Lean Thinking)。“精益思维”的核心就是以最小资源投入,包括人力、设备、资金、材料、时间和空间,创造出尽可能多的价值,为顾客提供新产品和及时的服务。
  图. 现代软件工程,基础技术工具栈已经很成熟,搭积木式敏捷开发与精益制造有着相似理念
  从上述概念定义可以看出,敏捷和精益是对孪生姐妹,其关键词涉及需求进化,迭代,可视化,循序渐进,可集成可运行,精益,最小资源投入等。单体应用系统建设,传统软件工程对敏捷开发和精益管理思想的需求并不迫切,而面对多源、异构、协作式大数据系统的架构设计、研发和项目实施来讲,敏捷和精益设计理念至关重要,为什么这样讲?下图是典型的传统信息化技术架构与大数据系统架构的一个对比,有经验的朋友们应该可以看出一些端倪。
  图2 传统信息系统与大数据系统架构对比
  上图左边部分为传统信息化技术架构,右边部分为常见大数据系统架构,当然其中具体的技术组件选型根据不同的需求也不一样,这种架构不是固定的,其中每个组件至少有几个替代品,而且可以根据需要进行扩展。从这个图我们可以得出这样的结论,传统信息系统可以一人打天下,而大数据系统的核心思想却是分布式和团结协作,一个人的力量再大,智慧再高,精力再强,也不如一群人有效整合后的力量大,而大数据系统架构就是负责多方面的整合(Hadoop,Spark等大数据基础系统架构同理,如图3-Hadoop系统架构示意图),换句话说,这就像是软件研发或生产过程中的敏捷和精益管理,由公司大领导(Master)进行分配任务,人员调配,每位员工(slave)努力完成自己负责的小目标工作,各级主管进行横向和纵向协同,有效整合起来就是公司的大目标,可见大数据系统架构的演变已经是很接近人类社会协作的思想了。而要有效支撑大数据系统架构的分布式协作能力,敏捷和精益设计思想是很有必要的参考。
  图3 Hadoop系统架构示意图
  (2)敏捷大数据定义
  那什么是敏捷大数据呢,本文暂且给出一个初步的定义(还不够成熟):“敏捷大数据是基于数据科学的迭代性本质和敏捷研发管理思想,利用构件化、服务化和容器化等技术,对大数据系统架构和关键组件协作等进行精益设计,逐步实现多层次数据的融合处理和多种计算框架、模型的扩展和高效管理,快速响应大数据分析需求,快速构建大数据生产系统,快速迭代大数据分析能力,从而提升大数据系统的分析效率和大数据决策价值”。敏捷大数据的核心要素遵从SFV原则(Small,Fast,Validation, SFV):一是小、二是快、三是证,小的业务分析目标切入,快速出原型快速迭代,证明有效之后再扩张。从某种程度上讲,传统BI项目的失败很多是没有把握好这三个原则,而互联网企业的大数据系统能成功,能使开源大数据技术百花齐放,是因为把握好了这三个原则。
  敏捷大数据要解决如下关键问题:如何实现统一的、标准化的、模块化、可配置的大数据架构,以解决不同类型的异构子系统之间难以有效整合的问题。应用功能可以使用已有的功能组件组合而成,通过服务复用降低成本,在组件之间交换的数据形式应当标准化和接口化;组件的组合只需少量编程或配置便可以完成,常用模型和工具的集成标准化,如何简化使用,可以对非程序员提供开箱即用的数据挖掘和分析能力;大数据应用全程(采集、存储、分析、管理)可视化操作。基于数据科学的迭代性本质和利用高效组件化工具,对大数据各功能子系统(模块)进行组件化,模型标准化设计,并根据实际需求快速选型、快速配置、快速搭建大数据原型系统,快速迭代大数据分析结果,并顺应不断变化的需求,尽快将原型转化成生产系统。在快速迭代、快速反馈、闭环验证过程中,让客户逐步完成大数据分析的系统思维和管理思维变革,天下武功,唯快不破,快小证原则和精益设计,这是敏捷大数据应用的核心目标。
  图4 敏捷迭代开发示意图
  (3)敏捷大数据流程优化
  根据敏捷大数据快、小、证SFV原则,我们对传统的跨行业数据挖掘标准流程(Cross-industry Standard Process for Data Mining ,CRISP-DM)进行了改进,提出了基于微服务和容器(后续敏捷大数据关键技术章节会做详细介绍)的敏捷大数据处理流程(Agile Big Data Processing based on Micro-services),如下图:
  图5. CRISP-DM流程与敏捷大数据处理流程
  敏捷大数据处理流程相比传统数据挖掘流程,从两个层面进行了扩展:首先是架构上采用基于容器的微服务技术进行支撑;其次针对传统数据挖掘模型、系统和现实决策反馈的脱节问题,根据数据科学迭代性本质特点,对模型系统和现实决策反馈两个过程分别进行自适应迭代升级和智能决策进化支持。通过这种扩展,使得敏捷大数据方法论与传统数据挖掘技术,以及和新兴的主流大数据框架,能在架构和流程上进行互补和融合。要实现敏捷大数据SFV原则,敏捷大数据架构的设计至关重要。敏捷大数据架构需要在组件化管理、数据融合、资源调度、服务抽象、部署运维、计算模型和标准数据集的服务化,以及敏捷大数据处理流程等多个层面,进行科学有效地设计支撑。核心目标是要实现大数据的融合处理和分析功能的服务化、标准化和流程化,基于数据融合和微服务技术,设计模块化、可配置的大数据分析平台,对微服务的构建和管理进行快速实现,通过各种微服务的划分、组合、编排和动态配置,形成可复用的、可扩展的和可灵活调整的大数据分析系统,从而实现敏捷大数据目标。

21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号