程序员须掌握的大数据分析核心技术

  大数据分析技术现在是一种传统的技术分析模型,主要是对分析后的数据进行筛选和过滤。随着银行、保险和电子商务的不断发展,非结构化数据的数量越来越多,这就增加了大数据分析的难度,对大数据的程序员提出了越来越高的要求。

  想提高核心业务能力的程序员需要掌握大数据分析核心技术,接下来我们就具体来看下:

  一、大数据生命周期

  底层是基础设施,涵盖计算资源、内存与存储和网络互联,具体表现为计算节点、集群、机柜和数据中心。在此之上是数据存储和管理,包括文件系统、数据库和类似YARN的资源管理系统。然后是计算处理层,如hadoop、MapReduce和Spark,以及在此之上的各种不同计算范式,如批处理、流处理和图计算等,包括衍生出编程模型的计算模型,如BSP、GAS等。数据分析和可视化基于计算处理层。分析包括简单的查询分析、流分析以及更复杂的分析。

  查询分析多基于表结构和关系函数,流分析基于数据、事件流以及简单的统计分析,而复杂分析则基于更复杂的数据结构与方法,如图、矩阵、迭代计算和线性代数。一般意义的可视化是对分析结果的展示。但是通过交互式可视化,还可以探索性地提问,使分析获得新的线索,形成迭代的分析和可视化。基于大规模数据的实时交互可视化分析以及在这个过程中引入自动化的因素是目前研究的热点。

  二、大数据技术生态

  大数据的基本处理流程与传统数据处理流程并无太大差异,主要区别在于:由于大数据要处理大量、非结构化的数据,所以在各处理环节中都可以采用并行处理。目前,Hadoop、MapReduce和Spark等分布式处理方式已经成为大数据处理各环节的通用处理方法。

  三、大数据采集与预处理

  在大数据的生命周期中,数据采集处于第一个环节。根据MapReduce产生数据的应用系统分类,大数据的采集主要有4种来源:管理信息系统、Web信息系统、物理信息系统、科学实验系统。对于不同的数据集,可能存在不同的结构和模式,如文件、XML树、关系表等,表现为数据的异构性。

  对多个异构的数据集,需要做进一步集成处理或整合处理,将来自不同数据集的数据收集、整理、清洗、转换后,生成到一个新的数据集,为后续查询和分析处理提供统一的数据视图。针对管理信息系统中异构数据库集成技术、Web信息系统中的实体识别技术和DeepWeb集成技术、传感器网络数据融合技术已经有很多研究工作,取得了较大的进展,已经推出了多种数据清洗和质量控制工具。

  四、大数据存储与管理

  传统的数据存储和管理以结构化数据为主,因此关系数据库系统(RDBMS)可以一统天下满足各类应用需求。大数据半结构化和非结构化数据为主,结构化数据为辅,而且各种大数据应用通常是对不同类型的数据内容检索、交叉比对、深度挖掘与综合分析。面对这类应用需求,传统数据库无论在技术上还是功能上都难以为继。因此,近几年出现了oldSQL、NoSQL与NewSQL并存的局面。总体上,按数据类型的不同,大数据的存储和管理采用不同的技术路线。

  五、大数据计算模式与系统

  计算模式的出现有力推动了大数据技术和应用的发展,使其成为目前大数据处理最为成功、最广为接受使用的主流大数据计算模式。然而,现实世界中的大数据处理问题复杂多样,难以有一种单一的计算模式能涵盖所有不同的大数据计算需求。研究和实际应用中发现,由于MapReduce主要适合于进行大数据线下批处理,在面向低延迟和具有复杂数据关系和复杂计算的大数据问题时有很大的不适应性。

  越来越多的行业和技术领域需求大数据分析系统,例如金融行业需要使用大数据系统结合VaR或者机器学习方案进行信贷风控,零售、餐饮行业需要大数据系统实现辅助销售决策,各种IOT场景需要大数据系统持续聚合和分析时序数据,各大科技公司需要建立大数据分析中台等。

  业务分析的数据范围跨越实时数据和历史数据,这不仅需要低延迟的实时数据分析,还需要PB级历史数据的探索性数据分析。可靠性和可扩展性,用户可以存储大量的历史数据,同时数据的规模也有不断增长的趋势,有必要引入分布式存储系统来满足可靠性和可扩展性的需要,同时保证成本的可控。技术栈很深,需要组合流式组件、存储系统、计算组件和。可运维性要求高,复杂的大数据架构难以维护和管控。

发布了119 篇原创文章 · 获赞 4 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/qq_30187071/article/details/104896018
今日推荐