摘 ?要:國內(nèi)已經(jīng)獲批“數(shù)據(jù)科學與大數(shù)據(jù)技術(shù)專業(yè)”的高校多達280所,但是由于概念不清,定位不明確,多數(shù)院校的人才培養(yǎng)目標及課程設置大而統(tǒng)。文章界定大數(shù)據(jù)產(chǎn)業(yè)中的不同角色,以該專業(yè)的一個主要方向——大數(shù)據(jù)工程教育為例,研究如何正確把握人才培養(yǎng)定位、科學地設置課程,給出了培養(yǎng)數(shù)據(jù)工程師途徑的實例。最后,指出了大數(shù)據(jù)工程教育將要面對“有大數(shù)據(jù)可用”,“高校必須與數(shù)據(jù)企業(yè)合作”等主要問題的挑戰(zhàn)。
關鍵詞:大數(shù)據(jù)工程;人才培養(yǎng)定位;跨學科融合;數(shù)據(jù)分析技能差異;課程體系改革
中圖分類號:G642 文獻標志碼:A 文章編號:2096-000X(2019)12-0076-03
Abstract: There are up to 280 colleges and universities in China whose the specialty provisions of Data Science and Big Data Technology Major have got approved. But due to the conception-confusing, orientation unclear, for most of colleges and universities their professional training goals and curriculum setting are large and unionized. This paper defines the different roles in big data industry, and take one of the main research branches in this major, big data engineering education as an example to discuss how to correctly form the orientation of talent cultivation and scientifically lay out the curriculum. Also, an illustration of the way to train data engineers is presented. Finally some challenges to be faced for big data engineering education, such as the problems of "big data is available", "universities must cooperate with data enterprises", and other major problems are pointed out in this paper.
Keywords: big data engineering; the orientation of talent cultivation; interdisciplinary integration; skill differences in data analysis ;curriculum system reform
引言
大數(shù)據(jù)時代的到來催生了大數(shù)據(jù)工程教育。我國從2014年中國科學院大學首個“大數(shù)據(jù)技術(shù)與應用”專業(yè)到2018年已有285所高校新開“數(shù)據(jù)科學與大數(shù)據(jù)技術(shù)專業(yè)”。國內(nèi)現(xiàn)有文獻研究都局限于單一學科,例如統(tǒng)計學[1-5]、數(shù)學[6]、計算機學科[7-10]的大數(shù)據(jù)人才培養(yǎng)模式研究。但是對數(shù)據(jù)科學與大數(shù)據(jù)技術(shù)專業(yè)與大數(shù)據(jù)工程教育認識模糊,缺乏對數(shù)據(jù)工程師及數(shù)據(jù)科學家內(nèi)涵的研究,導致對該專業(yè)課程體系認識不足,課程設置隨意性大,人才培養(yǎng)模式趨同,辦學特色不鮮明。
一、大數(shù)據(jù)工程教育有關概念
大數(shù)據(jù)工程。數(shù)據(jù)工程是工程計算系統(tǒng)、計算機軟件或部分通過數(shù)據(jù)分析提取信息的多學科實踐[11]。大數(shù)據(jù)工程是圍繞著大量數(shù)據(jù)的設計、部署、獲取、維護(存儲)和建模分析的計算機科學與統(tǒng)計學等學科的綜合實踐。與大數(shù)據(jù)分析涉及數(shù)據(jù)的高級計算不同,大數(shù)據(jù)工程只涉及系統(tǒng)和設置的設計和部署,是計算實施的前提。
數(shù)據(jù)分析員。做查詢和處理數(shù)據(jù)、提供報告、總結(jié)和可視化數(shù)據(jù)的人員。對如何利用現(xiàn)有的工具和方法來解決一個問題有很強的理解,并以特設報告和圖表去幫助他人了解具體的查詢。然而,不被期望去處理大數(shù)據(jù)分析,也不背期望具有數(shù)學或研究背景去開發(fā)新算法。
數(shù)據(jù)工程師。為數(shù)據(jù)科學家分析大數(shù)據(jù)準備“大數(shù)據(jù)”基礎設施的數(shù)據(jù)專業(yè)人士,是能設計、建設、整合各種資源的數(shù)據(jù),并管理大數(shù)據(jù)的軟件工程師??蓪憦碗s的查詢,確保它是容易訪問、工作順利;還可以在大數(shù)據(jù)集上運行一些ETL(提取,轉(zhuǎn)換和加載),并創(chuàng)建大數(shù)據(jù)倉庫以可用于報告或供數(shù)據(jù)科學家分析。數(shù)據(jù)工程師注重設計和架構(gòu),通常不期望他們知道任何機器學習或大數(shù)據(jù)分析。
數(shù)據(jù)科學家。能夠把原始數(shù)據(jù)轉(zhuǎn)化為純凈見解的人。數(shù)據(jù)科學家應用統(tǒng)計,機器學習和分析方法來解決關鍵業(yè)務問題。他們的主要功能是幫助單位組織把他們的大數(shù)據(jù)量變成有價值和可操作的見解。與“數(shù)據(jù)分析師”相比,除了數(shù)據(jù)分析能力之外,數(shù)據(jù)科學家應具有較強的編程技能、設計新算法、處理大數(shù)據(jù)的能力、具備領域知識的一些專業(yè)知識。此外,數(shù)據(jù)科學家還被期望通過可視化技術(shù),建立數(shù)據(jù)科學應用程序,或敘述有關他們的數(shù)據(jù)(業(yè)務)問題的解決方案的有趣的故事、解釋和提交他們的研究結(jié)果。
案例1:建立企業(yè)銷售數(shù)據(jù)池。這是一個大數(shù)據(jù)系統(tǒng)設計問題,需要數(shù)據(jù)工程師完成:通過集成來自多個來源的數(shù)據(jù)創(chuàng)建數(shù)據(jù)池、以規(guī)則的時間間隔(可能每周)自動更新數(shù)據(jù)、數(shù)據(jù)的可用性分析(24小時,甚至每天)、易于訪問和無縫部署分析儀表板的體系結(jié)構(gòu)等目標。
案例2:企業(yè)銷售數(shù)據(jù)分析及應用。對數(shù)據(jù)分析員,需要了解企業(yè)的現(xiàn)狀與預期,收集數(shù)據(jù),會用基本統(tǒng)計分析方法解決小問題,例如銷售額下降問題。會提取銷售商品信息、對數(shù)據(jù)進行整理匯總,用Python、Tableau可視化展示。對數(shù)據(jù)科學家,則需具有較強的R或Python等統(tǒng)計軟件編程技能,會利用交叉列表解決用戶流失問題、利用多元回歸解決廣告組合推薦問題、利用logistic回歸解決行為預測問題、利用K-Means聚類方法選擇目標用戶群,利用決策樹方法選擇長期用戶,能借助于深度學習方法,從用戶評價中提取用戶對事物的評價,分析用戶對產(chǎn)品的態(tài)度和情感等深刻問題。
二、不同角色的數(shù)據(jù)分析技能的差異
數(shù)據(jù)工程師、數(shù)據(jù)科學家等大數(shù)據(jù)產(chǎn)業(yè)中的不同角色決定他們所需技能與使用的工具的差異。
分析員一般不做大數(shù)據(jù)分析,只需要對一些核心技能有基本了解。數(shù)據(jù)分析員的必需技能是統(tǒng)計、數(shù)據(jù)修改、數(shù)據(jù)可視化、探索性數(shù)據(jù)分析,主要工具有:微軟Excel,SPSS,SAS,SPSS Modeler,SAS數(shù)據(jù)挖掘器,SQL,微軟Access,Tableau,SSAS。
數(shù)據(jù)工程師的目標是優(yōu)化大數(shù)據(jù)生態(tài)系統(tǒng)的性能。其技能和工具是:Hadoop,MapReduce,Hive,Pig、MySQL、MongoDB、Cassandra、數(shù)據(jù)流、NoSQL、SQL編程。
數(shù)據(jù)科學家要探索數(shù)據(jù),提出正確的問題,并提供有趣的發(fā)現(xiàn)。他應該有非常廣泛的關于機器學習,數(shù)據(jù)挖掘,統(tǒng)計和大數(shù)據(jù)基礎設施方面的不同技術(shù)知識;應該有與接觸過各種數(shù)據(jù)集的工作經(jīng)驗,并能夠在大數(shù)據(jù)上有效和高效運行算法,保持最新的最前沿的技術(shù)。對于數(shù)據(jù)科學家,了解計算機科學基礎和編程,包括語言和數(shù)據(jù)庫技術(shù)的經(jīng)驗是必不可少的,技能和工具是:Python,R,Scala,Apache Spark,Hadoop,數(shù)據(jù)挖掘工和算法,機器學習、統(tǒng)計。
數(shù)據(jù)工程師與數(shù)據(jù)科學家這兩個角色有很多重疊。例如,數(shù)據(jù)科學家可能使用Hadoop生態(tài)系統(tǒng)來為其數(shù)據(jù)問題提供答案,而數(shù)據(jù)工程師可能正在編程一個迭代機器學習算法以在Spark集群上運行。
三、大數(shù)據(jù)工程教育方向的人才培養(yǎng)定位
大數(shù)據(jù)工程教育方向的人才培養(yǎng)定位要依據(jù)計算機科學及統(tǒng)計學科的優(yōu)勢,結(jié)合高校的層次及地域分布,還要迎合大數(shù)據(jù)行業(yè)崗位需求,不同高校的人才培養(yǎng)定位是不同的,但是都應以數(shù)據(jù)為中心。對于定位于數(shù)據(jù)科學家的,則還需以數(shù)學計算/統(tǒng)計分析為主。實踐中,普通本科院校很難在數(shù)據(jù)工程師與數(shù)據(jù)科學家之間只選其一,往往是對兩者進行折中,旨在培養(yǎng)大數(shù)據(jù)科學與工程領域的復合型中高級技術(shù)人才,畢業(yè)生熟練掌握大數(shù)據(jù)采集、處理、分析與應用的技術(shù)與核心技能,具備大數(shù)據(jù)處理、挖掘、可視化、大數(shù)據(jù)系統(tǒng)集成、管理維護等能力。具體培養(yǎng)要求主要有:1. 掌握數(shù)據(jù)采集、清洗、存儲、分析、挖掘和可視化的方法,具備從事相關工作的能力;2. 具備整合不同數(shù)據(jù)源,不同結(jié)構(gòu)類型數(shù)據(jù)的能力和探索數(shù)據(jù)背后價值的能力;3. 經(jīng)過系統(tǒng)化的訓練,具有參與實際軟件開發(fā)項目的經(jīng)歷,具備作為大數(shù)據(jù)工程師從事工程實踐所需的專業(yè)能力;4. 掌握數(shù)理統(tǒng)計的基礎知識、形成數(shù)據(jù)統(tǒng)計分析的核心技能;特別是到達大數(shù)據(jù)處理的基本要求:掌握Linux和Bash腳本,能用Python或R替代大部分的大數(shù)據(jù)技術(shù)語言java或Scala的編碼。
四、大數(shù)據(jù)工程方向的課程設置
在“大數(shù)據(jù)”的領域,新的查詢和編程接口是必需的,還需要新的計算模式。如果高校是側(cè)重于數(shù)據(jù)工程方向,那么,數(shù)據(jù)工程課程應包括計算機科學的多個領域的主題:數(shù)據(jù)庫系統(tǒng),分布式計算,算法和機器學習。具體是:Scala或java;數(shù)據(jù)并行計算、SQL查詢處理、流水線式的查詢執(zhí)行、查詢計劃選擇、圖分析、迭代計算、分布式NoSQL系統(tǒng)、多租戶資源按規(guī)模分配、Spark并行計算導論、BTrace教程、MapReduce工作原理、數(shù)據(jù)分割和分配、Amazon網(wǎng)路服務簡介、Kafka在現(xiàn)代數(shù)據(jù)處理中的作用、分布式數(shù)據(jù)流處理(執(zhí)行)、分布式數(shù)據(jù)流處理(容錯)。
主要實踐教學包括C語言程序設計實訓、數(shù)據(jù)可視化課程設計、數(shù)據(jù)挖掘?qū)嶒灥取?/p>
五、成為大數(shù)據(jù)工程師的歷程
依據(jù)大數(shù)據(jù)從業(yè)者的不同的角色和要求,學生可以先根據(jù)個人興趣和目標選擇學習大數(shù)據(jù),成為大數(shù)據(jù)工程師的路徑線路。
為方便,記Bash 腳本(Bash入門+大量實踐)→Python個性化Python(用Python 學習數(shù)據(jù)科學的路徑)或Java(編程入門:開始用Java代碼+中級和高級Java編程+面向?qū)ο蟮腏ava編程:數(shù)據(jù)結(jié)構(gòu)+超越專業(yè)化)→云(大數(shù)據(jù)技術(shù)基礎+某個領域大數(shù)據(jù)+該領域大數(shù)據(jù)實踐)→Hadoop→HDFS9大數(shù)據(jù)和Hadoop要點+大數(shù)據(jù)基礎學習+Hadoop入門套件+閱讀:《Hadoop集群部署》)為“基礎”,則
對于大數(shù)據(jù)工程師:基礎→Kafka(完整Apache Kafka課程入門+Apache Kafka 基礎學習及高級主題+閱讀:《學習Apache Kafka》);
對于大數(shù)據(jù)分析,需在大數(shù)據(jù)工程師的線路上增加一點Apache:“對于大數(shù)據(jù)工程師”→Apache 風暴(實時分析與Apache風暴+閱讀材料:Apache風暴(文檔))或Apache 運動(閱讀材料:Apache 運動(文檔)+某運動流開發(fā)商資源)或Apache Spark(數(shù)據(jù)科學與工程與Apache+閱讀材料:Apache Spark 流(文檔))。
對于大數(shù)據(jù)工程師且大數(shù)據(jù)分析,有三條線路:
1. 基礎→Mapreduce(HDFS下覆蓋)→Procedural語言(選擇語言)→Pig(Apache Pig+Hadoop編程與Apache Pig+閱讀:《Pig編程》)→Apache Spark(數(shù)據(jù)科學與工程與Apache+閱讀材料:《學習Spark》);
2. 基礎→Mapreduce(HDFS下覆蓋)→SQL(使用MyS
QL管理大數(shù)據(jù)+SQL課程+PostgreSQL入門指南+書:《高性能MySQL》)→Hive(應用Hive 訪問Hadoop數(shù)據(jù)+學習Ap
ache Hadoop EcoSystem-Hive+閱讀:《Hive編程》)→Apache Spark(數(shù)據(jù)科學與工程與Apache+閱讀材料:《學習Spark》);
3. 基礎→Mapreduce(HDFS下覆蓋)→Apache Zookee
per(閱讀:《ZooKeeper》)。
各線路解讀如下:處理大數(shù)據(jù)的基本要求是掌握Linux和BASH腳本,由Java、Scala、Python或者R編寫的,建議選擇Python或Java。接下來,需要熟悉在云上的工作,在云上使用大數(shù)據(jù)。再接下來,需要了解分布式文件系統(tǒng),例如Hadoop分布式文件系統(tǒng)。學習者還可以研究一些與自己的域名相關的NoSQL數(shù)據(jù)庫。以上是每個大數(shù)據(jù)工程師必須知道的強制性基礎。如果能使用數(shù)據(jù)流來開發(fā)實時或近實時分析系統(tǒng),那么應該走學習Kafka的路。如果能使用閑置的大量數(shù)據(jù),則采取MapReduce路徑,不需要學習Pig和Hive。
以上線路不是學習大數(shù)據(jù)技術(shù)的唯一途徑,例如,也可以是(1)大數(shù)據(jù)基礎(操作系統(tǒng)基礎+開發(fā)語言+關系數(shù)據(jù)庫+云數(shù)據(jù)庫+其它)-(2)大數(shù)據(jù)開發(fā)架構(gòu)(交互式處理構(gòu)架+批處理構(gòu)架+流式處理構(gòu)架+ lambda架構(gòu)+其它)-(3)機器學習算法(分類+回歸+強化學習+其它)-(4)深度學習與人工智能(CNN+RNN+GAN+GNN+其它)。
最后,搞大數(shù)據(jù)工程教育,高校要有真正意義上的大數(shù)據(jù)可用。除了利用政府極為有限開放的數(shù)據(jù)資源外,高校必須與數(shù)據(jù)企業(yè)合作。高校還要培養(yǎng)具有行業(yè)企業(yè)實際工作經(jīng)驗的數(shù)據(jù)挖掘人才。
參考文獻:
[1]田茂再.大數(shù)據(jù)時代統(tǒng)計學重構(gòu)研究中的幾個熱點問題[J].統(tǒng)計研究,2015,32(5):3-13.
[2]祝丹,陳立雙.大數(shù)據(jù)驅(qū)動下統(tǒng)計學人才培養(yǎng)模式研究[J].統(tǒng)計與信息論壇,2016,31(2):87-92.
[3]孔曉瑞,劉夢玲,靳俊嬌.大數(shù)據(jù)時代背景下對應用統(tǒng)計學專業(yè)的思考[J].高教學刊,2016(18):41-44.
[4]張學新.大數(shù)據(jù)時代本科應用統(tǒng)計學專業(yè)課程改革探索[J].陰山學刊,2016,30(3):143-146.
[5]朱建平,張悅涵.大數(shù)據(jù)時代對傳統(tǒng)統(tǒng)計學變革的思考[J].統(tǒng)計研究,2016,33(2):3-9.
[6]孔環(huán),李曉.大數(shù)據(jù)時代數(shù)學專業(yè)就業(yè)前景分析及培養(yǎng)研究[J].山東青年政治學院學報,2016,181(32):54-57.
[7]田緒紅,肖磊,黃瓊,等.大數(shù)據(jù)時代的計算機科學與技術(shù)專業(yè)綜合改革[J].計算機教育,2015(19):12-16.
[8]楊恒伏.數(shù)據(jù)視閾下計算機專業(yè)人才培養(yǎng)模式探討[J].開封教育學院學報,2015,35(9):69-70.
[9]趙永霞,彭玉華.大數(shù)據(jù)時代民辦高校計算機科學與技術(shù)專業(yè)人才培養(yǎng)模式研究[J].高等教育,2016(6):54.
[10]陳潔,張文翔.大數(shù)據(jù)視角下計算機科學與技術(shù)專業(yè)建設探究[J].軟件導刊,2016,15(10):185-288.
[11]Clark Glymour,David Madigan, Daryl Pregibon, and Padhraic Smyth. Statistical inference and data mining[J].Communications of the ACM,1996,39(11):35-41.