首頁>科技>

大資料作為2019年比較熱門的技術,受到越來越多的關注,那麼對於一個想進入大資料的朋友來說,最想知道的是:大資料學什麼?今天科多大資料就和你們一起來分享一篇關於大資料學習內容體系介紹的文章。

大資料技術體系太龐雜了,基礎技術覆蓋資料採集、資料預處理、分散式儲存、NOSQL資料庫、多模式計算(批處理、線上處理、實時流處理、記憶體處理)、多模態計算(影象、文字、視訊、音訊)、資料倉庫、資料探勘、機器學習、人工智慧、深度學習、平行計算、視覺化等各種技術範疇和不同的層面。另外大資料應用領域廣泛,各領域採用技術的差異性還是比較大的。短時間很難掌握多個領域的大資料理論和技術,建議從應用切入、以點帶面,先從一個實際的應用領域需求,搞定一個一個技術點,有一定功底之後,再舉一反三橫向擴充套件,這樣學習效果就會好很多。大資料技術初探。

從前幾年到現在所謂的大資料時代,移動網際網路、物聯網、雲端計算、人工智慧、機器人、大資料等前沿資訊科技領域,逐個火了一遍,什麼是大資料,大資料的技術範疇包括那些,估計很多人都是根據自己所熟悉的領域在盲人摸象。

下文從DT(Data technology,資料技術)技術泛型角度來系統地介紹什麼是大資料,包括那些核心技術,各領域之間的關係等等:

首先我們說機器學習,機器學習(machine learning),是電腦科學和統計學的交叉學科,核心目標是通過函式對映、資料訓練、最優化求解、模型評估等一系列演算法實現,讓計算機擁有對資料進行自動分類和預測的功能;機器學習領域包括很多智慧處理演算法,分類、聚類、迴歸、相關分析等每類下面都有很多演算法進行支撐,如SVM,神經網路,Logistic迴歸,決策樹、EM、HMM、貝葉斯網路、隨機森林、LDA等,無論是網路排名的十大演算法還是二十大演算法,都只能說是冰山一角;總之計算機要智慧化,機器學習是核心的核心,深度學習、資料探勘、商業智慧、人工智慧,大資料等概念的核心技術就是機器學習,機器學習用於影象處理和識別就是機器視覺,機器學習用於模擬人類語言就是自然語言處理,機器視覺和自然語言處理也是支撐人工智慧的核心技術,機器學習用於通用的資料分析就是資料探勘,資料探勘也是商業智慧的核心技術。

深度學習(deep learning),機器學習裡面現在比較火的一個子領域,深度學習是已經被研究過幾十年的神經網路演算法的變種,由於在大資料條件下影象,語音識別等領域的分類和識別上取得了非常好的效果,有望成為人工智慧取得突破的核心技術,所以各大研究機構和IT巨頭們都投入了大量的人力物力做相關的研究和開發工作。

資料探勘(data mining),是一個很寬泛的概念,類似於採礦,要從大量石頭裡面挖出很少的寶石,從海量資料裡面挖掘有價值有規律的資訊同理。資料探勘核心技術來自於機器學習領域,如深度學習是機器學習一種比較火的演算法,當然也可以用於資料探勘。還有傳統的商業智慧(BI)領域也包括資料探勘,OLAP多維資料分析可以做挖掘分析,甚至Excel基本的統計分析也可以做挖掘。關鍵是你的技術能否真正挖掘出有用的資訊,然後這些資訊可以提升指導你的決策,如果是那就算入了資料探勘的門。

人工智慧(artifical intelligence),也是一個很大的概念,終極目標是機器智慧化擬人化,機器能完成和人一樣的工作,人腦僅憑几十瓦的功率,能夠處理種種複雜的問題,怎樣看都是很神奇的事情。雖然機器的計算能力比人類強很多,但人類的理解能力,感性的推斷,記憶和幻想,心理學等方面的功能,機器是難以比肩的,所以機器要擬人化很難單從技術角度把人工智慧講清楚。人工智慧與機器學習的關係,兩者的相當一部分技術、演算法都是重合的,深度學習在計算機視覺和棋牌走步等領域取得了巨大的成功,比如谷歌自動識別一隻貓,最近谷歌的AlpaGo還擊敗了人類頂級的專業圍棋手等。但深度學習在現階段還不能實現類腦計算,最多達到仿生層面,情感,記憶,認知,經驗等人類獨有能力機器在短期難以達到。

最後我們才說大資料(big data),大資料本質是一種方法論,一句話概括,就是通過分析和挖掘全量海量的非抽樣資料進行輔助決策。上述技術原來是在小規模資料上進行計算處理,大資料時代呢,只是資料變大了,核心技術還是離不開機器學習、資料探勘等,另外還需考慮海量資料的分散式儲存管理和機器學習演算法並行處理等核心技術。總之大資料這個概念就是個大框,什麼都能往裡裝,大資料來源的採集如果用感測器的話離不開物聯網、大資料來源的採集用智慧手機的話離不開移動網際網路,大資料海量資料儲存要高擴充套件就離不開雲端計算,大資料計算分析採用傳統的機器學習、資料探勘技術會比較慢,需要做平行計算和分散式計算擴充套件,大資料要互動展示離不開視覺化,大資料的基礎分析要不要跟傳統商業智慧結合,金融大資料分析、交通大資料分析、醫療大資料分析、電信大資料分析、電商大資料分析、社交大資料分析,文字大資料、影象大資料、視訊大資料…諸如此類等等範圍太廣…,總之大資料這個框太大,其終極目標是利用上述一系列核心技術實現海量資料條件下的人類深度洞察和決策智慧化!這不僅是資訊科技的終極目標,也是人類社會發展管理智慧化的核心技術驅動力。

資料分析師的能力體系

如下圖:

數學知識

數學知識是資料分析師的基礎知識。

對於初級資料分析師,了解一些描述統計相關的基礎內容,有一定的公式計算能力即可,了解常用統計模型演算法則是加分。

對於高階資料分析師,統計模型相關知識是必備能力,線性代數(主要是矩陣計算相關知識)最好也有一定的了解。

而對於資料探勘工程師,除了統計學以外,各類演算法也需要熟練使用,對數學的要求是最高的。

分析工具

對於初級資料分析師,玩轉Excel是必須的,資料透視表和公式使用必須熟練,VBA是加分。另外,還要學會一個統計分析工具,SPSS作為入門是比較好的。

對於高階資料分析師,使用分析工具是核心能力,VBA基本必備,SPSS/SAS/R至少要熟練使用其中之一,其他分析工具(如Matlab)視情況而定。

對於資料探勘工程師……嗯,會用用Excel就行了,主要工作要靠寫程式碼來解決呢。

程式語言

對於初級資料分析師,會寫SQL查詢,有需要的話寫寫Hadoop和Hive查詢,基本就OK了。

對於高階資料分析師,除了SQL以外,學習Python是很有必要的,用來獲取和處理資料都是事半功倍。當然其他程式語言也是可以的。

對於資料探勘工程師,Hadoop得熟悉,Python/Java/C++至少得熟悉一門,Shell得會用……總之程式語言絕對是資料探勘工程師的最核心能力了。

業務理解

業務理解說是資料分析師所有工作的基礎也不為過,資料的獲取方案、指標的選取、乃至最終結論的洞察,都依賴於資料分析師對業務本身的理解。

對於初級資料分析師,主要工作是提取資料和做一些簡單圖表,以及少量的洞察結論,擁有對業務的基本了解就可以。

對於高階資料分析師,需要對業務有較為深入的了解,能夠基於資料,提煉出有效觀點,對實際業務能有所幫助。

對於資料探勘工程師,對業務有基本了解就可以,重點還是需要放在發揮自己的技術能力上。

邏輯思維

這項能力在我之前的文章中提的比較少,這次單獨拿出來說一下。

對於初級資料分析師,邏輯思維主要體現在資料分析過程中每一步都有目的性,知道自己需要用什麼樣的手段,達到什麼樣的目標。

對於高階資料分析師,邏輯思維主要體現在搭建完整有效的分析框架,了解分析物件之間的關聯關係,清楚每一個指標變化的前因後果,會給業務帶來的影響。

對於資料探勘工程師,邏輯思維除了體現在和業務相關的分析工作上,還包括演算法邏輯,程式邏輯等,所以對邏輯思維的要求也是最高的。

資料視覺化

資料視覺化說起來很高大上,其實包括的範圍很廣,做個PPT裡邊放上資料圖表也可以算是資料視覺化,所以我認為這是一項普遍需要的能力。

對於初級資料分析師,能用Excel和PPT做出基本的圖表和報告,能清楚的展示資料,就達到目標了。

對於高階資料分析師,需要探尋更好的資料視覺化方法,使用更有效的資料視覺化工具,根據實際需求做出或簡單或複雜,但適合受眾觀看的資料視覺化內容。

對於資料探勘工程師,了解一些資料視覺化工具是有必要的,也要根據需求做一些複雜的視覺化圖表,但通常不需要考慮太多美化的問題。

協調溝通

對於初級資料分析師,了解業務、尋找資料、講解報告,都需要和不同部門的人打交道,因此溝通能力很重要。

對於高階資料分析師,需要開始獨立帶專案,或者和產品做一些合作,因此除了溝通能力以外,還需要一些專案協調能力。

對於資料探勘工程師,和人溝通技術方面內容偏多,業務方面相對少一些,對溝通協調的要求也相對低一些。

快速學習

無論做資料分析的哪個方向,初級還是高階,都需要有快速學習的能力,學業務邏輯、學行業知識、學技術工具、學分析框架……資料分析領域中有學不完的內容,需要大家有一顆時刻不忘學習的心。

資料分析師的工具體系

一圖說明問題

可以從圖上看到,Python在資料分析中的泛用性相當之高,流程中的各個階段都可以使用Python。所以作為資料分析師的你如果需要學習一門程式語言,那麼強力推薦Python~

Hadoop家族產品技術介紹:

Apache Hadoop: 是Apache開源組織的一個分散式計算開源框架,提供了一個分散式檔案系統子專案(HDFS)和支援MapReduce分散式計算的軟體架構。

Apache Hive: 是基於Hadoop的一個數據倉庫工具,可以將結構化的資料檔案對映為一張資料庫表,通過類SQL語句快速實現簡單的MapReduce統計,不必開發專門的MapReduce應用,十分適合資料倉庫的統計分析。

Apache Pig: 是一個基於Hadoop的大規模資料分析工具,它提供的SQL-LIKE語言叫Pig Latin,該語言的編譯器會把類SQL的資料分析請求轉換為一系列經過優化處理的MapReduce運算。

Apache HBase: 是一個高可靠性、高效能、面向列、可伸縮的分散式儲存系統,利用HBase技術可在廉價PC Server上搭建起大規模結構化儲存叢集。

Apache Sqoop: 是一個用來將Hadoop和關係型資料庫中的資料相互轉移的工具,可以將一個關係型資料庫(MySQL ,Oracle ,Postgres等)中的資料導進到Hadoop的HDFS中,也可以將HDFS的資料導進到關係型資料庫中。

Apache Zookeeper: 是一個為分散式應用所設計的分佈的、開源的協調服務,它主要是用來解決分散式應用中經常遇到的一些資料管理問題,簡化分散式應用協調及其管理的難度,提供高效能的分散式服務

Apache Mahout:是基於Hadoop的機器學習和資料探勘的一個分散式框架。Mahout用MapReduce實現了部分資料探勘演算法,解決了並行挖掘的問題。

Apache Cassandra:是一套開源分散式NoSQL資料庫系統。它最初由Facebook開發,用於儲存簡單格式資料,集Google BigTable的資料模型與Amazon Dynamo的完全分散式的架構於一身

Apache Avro: 是一個數據序列化系統,設計用於支援資料密集型,大批量資料交換的應用。Avro是新的資料序列化格式與傳輸工具,將逐步取代Hadoop原有的IPC機制

Apache Ambari: 是一種基於Web的工具,支援Hadoop叢集的供應、管理和監控。

Apache Chukwa: 是一個開源的用於監控大型分散式系統的資料收集系統,它可以將各種各樣型別的資料收整合適合 Hadoop 處理的檔案儲存在 HDFS 中供 Hadoop 進行各種 MapReduce 操作。

Apache Hama: 是一個基於HDFS的BSP(Bulk Synchronous Parallel)平行計算框架, Hama可用於包括圖、矩陣和網路演算法在內的大規模、大資料計算。

Apache Flume: 是一個分佈的、可靠的、高可用的海量日誌聚合的系統,可用於日誌資料收集,日誌資料處理,日誌資料傳輸。

Apache Giraph: 是一個可伸縮的分散式迭代圖處理系統, 基於Hadoop平臺,靈感來自 BSP (bulk synchronous parallel) 和 Google 的 Pregel。

Apache Oozie: 是一個工作流引擎伺服器, 用於管理和協調執行在Hadoop平臺上(HDFS、Pig和MapReduce)的任務。

Apache Crunch: 是基於Google的FlumeJava庫編寫的Java庫,用於建立MapReduce程式。與Hive,Pig類似,Crunch提供了用於實現如連線資料、執行聚合和排序記錄等常見任務的模式庫

Apache Whirr: 是一套運行於雲服務的類庫(包括Hadoop),可提供高度的互補性。Whirr學支援Amazon EC2和Rackspace的服務。

Apache Bigtop: 是一個對Hadoop及其周邊生態進行打包,分發和測試的工具。

Apache HCatalog: 是基於Hadoop的資料表和儲存管理,實現中央的元資料和模式管理,跨越Hadoop和RDBMS,利用Pig和Hive提供關係檢視。

Cloudera Hue: 是一個基於WEB的監控和管理系統,實現對HDFS,MapReduce/YARN, HBase, Hive, Pig的web化操作和管理。

  • 整治雙十一購物亂象,國家再次出手!該跟這些套路說再見了
  • 盧安達釋出首款完全在非洲製造的手機