黃 晉
(華南師范大學 計算機學院,廣東 廣州 510631)
隨著計算機軟硬件技術的快速發展,計算技術已從傳統的P C平臺計算模式發展到嵌入式計算、移動計算、并行計算和服務計算等多種計算系統并存及融合的計算模式,處理的對象也呈現出網絡化、多媒體化、大數據化和智能化需求的特征,而物聯網、移動互聯網的快速發展促進了這一趨勢,從而迎來了大數據時代的到來。大數據是繼云計算、物聯網之后興起的又一新興發展方向,被學術界、工業界乃至政府機構密切關注和廣泛研究。
大數據又稱巨量資料,指的是所涉及的資料量規模巨大到無法通過目前主流軟件工具,在合理時間內達到擷取、管理、處理、并整理成為幫助企業經營決策更積極的目的的資訊。在維克托·邁爾·舍恩伯格及肯尼斯·庫克耶編寫的《大數據時代》中大數據指不用隨機分析法(抽樣調查)這樣的捷徑,而采用所有數據的方法。一般說來,大數據具有4 V的特點:Volume(大量)、Velocity(高速)、Variety(多樣)、Value(價值)。大數據技術的戰略意義不在于掌握龐大的數據信息,而在于對這些含有意義的數據進行專業化處理。換言之,如果把大數據比作一種產業,那么這種產業實現盈利的關鍵,在于提高對數據的“加工能力”,通過“加工”實現數據的“增值”。
從廣義上講,大數據人才就是具備大數據處理能力的科學家和工程師。目前,國際上開設了大量的數據科學方面的課程、數據科學學位計劃以及數據科學短期培訓班。從國際上設置的培養計劃來看,大數據人才應該系統地掌握數據分析相關的技能,主要包括數學、統計學、數據分析、商業分析和自然語言處理等,具有較寬的知識面,具有獨立獲取知識的能力,具有較強的實踐能力、創新意識和團隊合作意識。具體來說,大數據人才首先應具備獲取大數據的能力,例如能根據任務的具體要求,綜合利用各種計算機手段和知識,收集整理海量數據并加以存儲,為支撐相關的決策和行為做好數據準備。其次,應具備分析大數據的能力,對于經過預處理的各類數據,能夠根據具體的需求,進行選擇、轉換、加載,采用有效方法和模型對數據進行分析,并形成分析報告,為實際問題提供決策依據。最后,應具備良好的團隊合作精神,大數據時代下的數據分析任務通常無法依賴個人能力來完成,需要在團隊制度的約束下,與他人一同攜手、互相鼓勵、分工合作來實現既定目標,因此具備較強的責任心與團隊合作精神也是大數據從業人員必備的基本條件。
大數據產業的發展,對大數據人才提出了新的需求,國內各高校在積極進行大數據學術研究的同時,也開始考慮將大數據相關課程納入培養體系,以滿足社會對大數據人才的需求。以下結合作者在數據庫及分布式技術系列課程中的教學經驗,以及大數據分析與處理方面的實踐經驗,探討大數據系列課程教學內容和實踐形式的設置。
在教學內容的設置上,大數據系列課程建議可分為理論教學和技術教學兩個方面,因為理論是大數據認知的必經途徑,也是被廣泛認同和傳播的基線;而技術是大數據價值體現的手段和前進的基石。在理論方面,講授的理論內容可涵蓋如下幾點:
(1)大數據概念:大數據概念出現的歷史,關于大數據定義的各種流派以及說明,大數據的四個特征,大數據與云計算、物聯網的關系,大數據與大規模數據、海量數據的差別。這個部分主要突出“大數據”概念中應包含的“對數據對象的處理行為”。
(2)典型的大數據應用實例:精選有新意的大數據分析典型案例,可幫助學生更清晰的理解大數據的概念和含義,這樣的案例如:美國梅西百貨的實時定價機制(根據需求和庫存的情況對多達7300萬種貨品進行實時調價)、百度搜索的實時熱點排行榜(以數億網民的搜索行為作為數據基礎,建立權威的關鍵詞排行榜與分類熱點)、沃爾瑪的搜索引擎Polaris(利用語義數據進行文本分析、機器學習和同義詞挖掘使得在線購物的完成率提升了10%~15%)、谷歌流感趨勢工具(通過跟蹤搜索詞相關數據來判斷全美地區的流感情況)等。在教學過程中,教師應注意將授課的重點放在系統化的開發步驟和關鍵性問題的求解上,介紹案例的設計思想、主要方法和應用過程等。
(3)大數據關鍵技術與挑戰:介紹大數據時代面臨的新挑戰,包括大數據集成(數據異構性和數據質量問題)、大數據分析(數據形式多樣化、數據處理的實時性、索引結構的復雜性等)、大數據隱私問題(隱私保護和數據分析的矛盾)、大數據能耗問題(低功耗硬件的設計)、大數據處理與硬件的協同、大數據管理易用性問題以及性能測試基準。
(4)大數據存儲和管理技術:介紹如何把采集到的大數據存儲起來,建立相應的數據庫,并進行管理和調用。主要內容包括:分布式文件系統(HDFS)、去冗余及高效低成本的大數據存儲技術、新型數據庫技術(鍵值數據庫、列存數據庫、圖存數據庫以及文檔數據庫等)、異構數據融合技術、分布式非關系型大數據管理與處理技術、大數據索引技術和大數據移動、備份、復制等技術。
(5)大數據分析及挖掘技術:介紹從大量數據中尋找其規律的技術,通常由數據準備、規律尋找和規律表示3個階段組成。數據準備是從上述大數據中心存儲的數據中選取所需數據并整合成用于數據挖掘的數據集;規律尋找是用某種方法將數據集所含規律找出來;規律表示則是盡可能以用戶可理解的方式(如可視化)將找出的規律表示出來。根據挖掘任務可分為分類或預測模型發現、數據總結、聚類、關聯規則發現、序列模式發現、依賴關系或依賴模型發現、異常和趨勢發現等。
在技術方面,可考慮分別從云計算、分布式處理技術、存儲技術和感知技術的發展來說明大數據從采集、處理、存儲到形成結果的整個過程,具體可包括以下幾點:
(1)NoSQL技術:NoSQL產生的背景、NoSQL現狀、NoSQL數據庫與關系數據庫的比較、聚合數據模型、分布式模型、數據一致性、典型的NoSQL數據庫分類、NoSQL數據庫開源軟件。
(2)MapReduce:MapReduce模型概述、編程模型:Map和Reduce函數、MapReduce工作流程、并行計算的實現、實例、Yarn等
(3)Hadoop分布式文件系統:Hadoop出現的背景、Hadoop的功能與作用、為什么不用關系型數據庫管理系統、Hadoop的優點、Hadoop的應用現狀和發展趨勢、Hadoop項目及其結構、Hadoop的體系結構、Hadoop與分布式開發、Hadoop應用案例、Hadoop平臺上的海量數據排序。
(4)還可進一步包括數據流的管理與挖掘、云數據庫、圖數據庫等。
由于大數據系列課程所涉及的技術具有很強的應用背景和實踐意義,因此應摒棄傳統教學模式中“重理論、輕實踐”的思想,在掌握大數據相關的理論知識和技術知識之后,還需重點培養學生的綜合實踐能力,以滿足社會就業的需要。為此,應設立一定的大數據技術實踐課程內容,幫助學生從知識型向能力型轉變。結合上一節分析的大數據時代對人才的具體要求,建議按以下流程設置實踐環節的內容:
(1)分組。如前所述,大數據時代下的數據分析任務通常需要以團隊的形式來完成,因此首先要求學生根據自身情況,結合各自的技術優勢,合理進行分組。
(2)選題。在具體選題上,可使用校企合作的具體項目或以Apache Hadoop、MongoDB、Dremel、Gephi 等一系列的開源大數據分析軟件作為實踐平臺,以Kaggle為數據科學平臺來進行選題。
(3)明確需求并撰寫大數據分析任務書。明確選定的題目范圍內,數據分析要研究的主要問題和預期的分析目標。只有明確了數據分析的目標,才能正確地制定數據收集方案,即收集哪些數據,采用怎樣的方式收集等,進而為數據分析做好準備。
(4)數據收集及預處理。由于大數據分析最終的結果與其獲取的數據質量緊密相關,因此收集的數據是否真正符合數據分析的目標是必須注意的重要問題。該步驟要求學生從分析目標出發,從浩瀚的數據中正確的收集高質量且服務于既定分析目標的數據,然后對數據進行必要的加工整理,包括填寫空缺值、平滑噪聲數據、識別和刪除孤立點、解決不一致性、規范化(消除冗余屬性)和聚集(數據匯總)等。
(5)探索性數據分析。由于大數據分析的數據量通常達到PB甚至YB級以上,因此希望直接選定一個分析模型是不現實的,而且面對高維海量數據,也很難直接看出數據的規律。在這個步驟中,應指導學生通過基本描述統計量的計算、基本統計圖形的繪制、用各種形式的方程擬合等手段,計算某些特征量等方法探索規律性的可能形式,幫助學生快速掌握數據的分布特征,這是進一步深入分析和建模的基礎。
(6)模型選定分析。在探索性分析的基礎上提出一類或幾類可能的模型,然后通過進一步的分析從中挑選一定的模型。有時選擇幾種統計分析方法對數據進行探索性的反復分析也是極為重要的。每一種統計分析方法都有自己的特點和局限,因此,一般需要選擇幾種方法反復印證分析,僅依據一種分析方法的結果就斷然下結論是不科學的。
(7)模型的驗證及分析報告。指導學生對選擇的數據分析模型及結果進行分析,可使用數理統計方法對所定模型或估計的可靠程度和精確程度作出推斷。觀察模型提供決策的信息是否充分、可信,所發揮的作用是否與期望值一致,數據分析方法是否合理,是否將風險控制在可接受的范圍。
以上這種項目式實踐形式的優勢是:在學生參與完成某一具體的大數據分析任務過程中,通過主動地學習來自主地進行知識的建構,讓學生經歷項目開發的整個過程,從中去發現和掌握相關知識,達到既能熟悉大數據分析過程,又完成了經驗的積累,還能實現學習知識、培養能力的目的。在這里,教師不再是知識的傳授者,而是項目活動的組織者和咨詢者。
一方面,大數據的核心業務必然是一種扎根于特定行業,綜合運用已有的存儲、分析、挖掘、展現技術,根據用戶需求并融入行業特色技術模型的一站式大數據平臺業務。另一方面,對于企業來說,各類業務產生的數據為數據分析創造了非常好的基礎條件。大數據解決方案是有價值的,但是苦于找不到既懂數據分析技術,又懂得業務的專業人才。由此可見,既懂得相關技術,又諳熟企業業務的復合型人才才是企業部署大數據應用最迫切需要的人才。因此,企業可以與學校聯合培養自己所需要的大數據人才,這種方式有兩方面的優勢:一是大數據技能訓練的對象,即大量的數據,只有企業才具備;二是在企業的支持下,學校也能通過針對性的實踐訓練來培養學生的大數據處理技能。
大數據時代下的校企合作的形式多種多樣,可通過聯合辦學、聯合制定人才培養方案、合作開發課程和教學內容、設置實訓項目、教學管理和共建“雙師”結構教學團隊等形式展開。
未來的十年將是一個“大數據”引領的智慧科技的時代。隨著社交網絡的逐漸成熟,移動帶寬迅速提升,云計算、物聯網應用更加豐富。更多的傳感設備、移動終端接入到網絡,由此產生的數據及增長速度將比歷史上的任何時期都要多,都要快。“大數據”時代的腳步悄然而至,未來幾年,中國項目數據分析專業人才需求達幾十萬人以上。國內高校應及時關注大數據時代的數據分析人才培養,融基礎理論、實驗教學、工程實踐為一體,為大數據這樣的新興產業發展輸出高層次、實用性、國際化的復合型專業人才,確保產業科學、持續、高速的發展。