Hadoop大数据实战权威指南(第2版)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.4 大数据领域的主要职位及其能力要求

大数据是时代的重要力量,而熟练掌握大数据技术的人才是根本。由于大数据系统的复杂性和层次性,大数据领域的职位有不同特点和不同能力要求。

1.4.1 首席数据官

首席数据官(Chief Data Officer,CDO)和数据科学家(或称数据分析师)是企业大数据落地的典型人才。

CDO是指懂得企业或组织业务运作的数据分析者,CDO不能仅仅停留在简单地收集、整理、分析、报告这个层面上,而是要结合实际,发现数据背后潜藏的挑战和机遇,并将挑战和机遇提交决策层,从而将这些数据应用于企业的战略规划和日常运营中。CDO掌握了企业内部核心的数据资源,需要对历史数据进行整理,对业务发展进行分析和预测,从而提高企业在数据获取、存储和分析的水平,为高层管理者提供更科学有效的决策支持,以及开拓新的业务领域。CDO的主要职责是领导数据分析团队,将数据转化为企业业务语言,从而使得决策层容易理解和运用。通过CDO来加强数据管控,可提高对业务风险的控制水平。

CDO必须具备五种能力或知识:统计学和数学的知识、洞悉网络产业和发展趋势的能力、IT设备和技术选型的能力、商业运营的能力、管理和沟通的能力。他们不仅要关注系统架构中所承载的内容,更要担任企业决策和数据分析汇总的枢纽;要熟悉面向服务的架构(SOA)、商业智能(BI)、大规模数据集成系统、数据存储交换机制,以及数据库、可扩展标记语言(XML)、电子数据交换(EDI)等系统架构;要深入了解企业的业务状况和所处的产业背景,清楚地了解组织的数据源、大小和结构等,才可将数据资料与业务状况联合起来分析,并提出相对应的市场和产品策略。

1.4.2 数据科学家

与CDO一样,数据科学家是受到广泛关注的大数据专业人才。数据科学是一门交叉学科,涉及数学、统计学、计算机科学、数据可视化技术,以及具体行业的专业知识等。数据科学家的专长是“量化问题,然后解决问题”,他们的工作由三种内容混合而成:定量分析(让你了解数据)、程序设计(让你可以处理数据)、讲故事(让你了解数据的含义)。

数据科学家应该具有扎实的统计学基础,统计学是当前很多数据分析和数据挖掘算法的理论基础。对统计理论,如概率分布、假设检验、贝叶斯理论等的理解,有助于对数据进行更好的解读。

数据科学家应能够深刻理解预测模型,能够使用常见的预测模型(如回归、聚类、决策树等)在历史数据基础上预测未来。对这些预测模型使用方法、应用场景的理解,是数据科学家必须具备的技能。

数据科学家应当能够熟练使用统计工具。为了提高工作效率,数据科学家要熟练使用一种或多种分析工具。Excel是当前最为流行的小规模数据处理工具,SAS工具得到了广泛的应用。而以Hadoop为代表的数据管理工具,将越来越广泛地应用于数据业务中。

数据科学家基本、通用的一种技能是写代码,用所有相关方面都能听懂的语言进行沟通;另一种特殊技能是用数据讲故事,通过口头表达和视觉效果进行描述。

数据科学家是专业的数据研究者,需要具备熟练的数据处理和分析技能。CDO职能更多涉及企业或组织总体管理和战略决策层面,数据科学家在CDO指导下工作,能解决复杂的数据问题,专业性更强。

一个初级的数据科学家可能只需要掌握基本分析技巧便可胜任;成熟的数据科学家需要对数据分析方法有较深入的理解;而优秀的数据科学家则应具备丰富的经验、广泛的知识面,能够独立设计和完成相关解决方案。总之,对数据的重视程度越来越高,数据科学家在经营和决策中所起的作用也越来越大,因而对数据科学家的技术技能和内在素质均提出了更多的要求。

成熟的数据科学家应具备四个条件是:熟悉业务的细节、掌握数据分析工具的操作、对数据价值的敏感度和对数据提炼融合的能力。目前很多数据科学家比较擅长的是通过数据分析对已发生的问题查找原因,但缺乏发掘未知问题的能力,也缺少对趋势预测的把握,而大数据的价值恰恰在于预测未来。如果只熟悉数据分析工具的操作,却不熟悉业务的细节,就无法从既有的数据中挖掘出新的价值,达到推动企业发展的目的。

1.4.3 大数据开发工程师

互联网公司希望大数据开发工程师具有统计学和数学的硕士或博士学历。因为缺乏理论背景的数据工作者,更容易进入一个技能上的危险区域。按照不同的数据模型和算法总能得到一些结果,但如果不知道数据代表什么,也就不能得到真正有意义的结果,并且这样的结果还容易误导人。只有具备一定的理论知识,才能理解模型、复用模型甚至创新模型,从而解决实际问题。

除了良好的数学背景,对大数据开发工程师来说,还要求有很强的计算机编程能力。实际开发能力和大规模数据的处理能力是作为大数据开发工程师的必备能力。许多数据的价值来自挖掘过程,开发人员必须亲自动手才能发现其价值。例如,人们在社交网络上产生的许多记录都是非结构化的数据,如何从这些毫无头绪的文字、语音、图像甚至视频中获取有意义的信息,就需要大数据开发工程师亲自挖掘。即使在某些团队中,大数据开发工程师的职责以商业分析为主,但也要熟悉计算机处理大数据的方式。

除了数学和统计学相关理论知识,以及很强的计算机编程能力,作为大数据开发工程师,还需要具有特定应用领域或行业的专业知识。大数据开发工程师这个角色很重要的一点是,不能脱离市场,因为只有和特定领域的应用结合起来大数据才能产生价值。大数据开发工程师不能只是懂得数据,还要有商业头脑,不论零售、医药、游戏还是旅游等行业,都要对其中某些领域有良好的理解,最好还要与企业的业务方向一致。过去,我们常说一些奢侈品店员势利,看人一眼就知道他是否能买得起,但这群人恰恰是有敏锐性的,他们是这个行业的专家。又如对医疗行业了解的人,他在考虑医疗保险业务时,不仅会查看人们去医院看病的相关记录,也会考虑饮食数据,这些都基于对该领域的了解。

对于一个优秀的大数据开发工程师来说,除了上面列出的要求,还有一个非常重要的要求,即他们必须深入理解大数据系统的架构,各个组件的基本原理、实现机制,甚至其中涉及的算法等。只有这样,他们才能构建一个强大且稳定的分布式集群系统,并充分利用分布式存储和并行计算的能力来处理大数据。

对于大多数企业而言,自行研发一个高性能的集群系统往往要支付高昂的代价。经过多年的发展,如今已形成了以Hadoop为核心的开源大数据生态系统,利用通用的硬件就可以构建一个强大、稳定、简单并且高效的分布式集群系统计算系统,可以满足企业基础架构平台的需求,付出相对低廉的代价就可以轻松处理超大规模的数据。因此,大数据开发工程师必须深入理解以Hadoop为核心的开源大数据生态系统的系统架构、原理及开发应用,并具有丰富的优化经验,才能充分利用该系统来处理超大规模的数据,甚至在该系统上开发特定应用的新组件。当然,大数据开发工程师还需要具有大数据采集、大数据预处理、大数据存储与管理、分析挖掘与展现应用等大数据相关技术。

1.4.4 大数据运维工程师

除了大数据分析人才(开发人才),企业还需要运维方面的人才。由于大数据系统是一个非常复杂的系统,涉及的技术繁多,尤其是在基于开源的平台下,对大数据系统运维工程师提出了非常高的能力要求。大数据系统运维工程师应熟悉Java、Python、Shell等语言;熟悉Hadoop工作原理,对HDFS、MapReduce运行过程要有深入理解,具备MapReduce开发经验,熟悉数据仓库体系架构,熟悉数据建模;熟悉至少一种RDBMS,如MySQL、Oracle、SQLServer,熟练使用SQL语言;熟悉大数据生态圈及其他技术,如HBase、Storm、Spark、Impala、Kafka、Sqoop等技术的细节。

目前,大数据运维方面的人才非常缺乏,也很难培养。因为大数据系统是一个非常复杂的系统,要想熟悉其中的每一个组件,是非常不容易的。这是其他专业(如MySQL、J2EE等)的完全不能相比的,所以企业要特别注意储备和培养大数据运维方面的人才。