大數據(Big Data)其實已經興起好些年了,只是隨著無處不在的傳感器、無處不在的數據埋點,獲取數據變得越來越容易、量越來越大、內容越來越多樣化,于是原來傳統的數據領域不得不思考重新換一個平臺可以處理和使用逐漸龐大數據量的新平臺。
原來的數據應用主要是從現有數據中的數據中進行采樣,再做數據挖掘和分析,發掘出數據中的潛在規則用以預測或決策,然而采樣始終會舍棄一部分數據,即會丟失一部分潛在規則和價值,隨著數據量和內容的不斷累積,企業越來越重視在數據應用時可以使用全量數據,可以盡可能的覆蓋所有潛在規則從而發掘出可能想到或從未想到的價值。
大數據領域可以分為以下幾個主要方向:
1 數據平臺
Data Platform,構建、維護穩定、安全的大數據平臺,按需設計大數據架構,調研選型大數據技術產品、方案,實施部署上線。對于大數據領域涉及到的大多數技術都需要求有所了解,并精通給一部分,具備分布式系統的只是背景。
2 數據采集
Data Collecting,從Web/Sensor/RDBMS等渠道獲取數據,為大數據平臺提供數據來源,如Apache Nutch是開源的分布式數據采集組件,大家熟知的Python爬蟲框架ScraPy等。
3 數據倉庫
Data Warehouse,有點類似于傳統的數據倉庫工作內容:設計數倉層級結構、ETL、進行數據建模,但基于的平臺不一樣,在大數據時代,數據倉庫大多基于大數據技術實現,例如Hive就是基于Hadoop的數據倉庫。
4 數據處理
Data Processing,完成某些特定需求中的處理或數據清洗,在小團隊中是結合在數據倉庫中一起做的,以前做ETL或許是利用工具直接配置處理一些過濾項,寫代碼部分會比較少,如今在大數據平臺上做數據處理可以利用更多的代碼方式做更多樣化的處理,所需技術有Hive、Hadoop、Spark等。BTW,千萬不要小看數據處理,后續的數據分析、數據挖掘等工作都是基于數據處理的質量,可以說數據處理在整個流程中有特別重要的位置。
5 數據分析
Data Analysis,基于統計分析方法做數據分析:例如回歸分析、方差分析等。大數據分析例如Ad-Hoc交互式分析、SQL on Hadoop的技術有:Hive 、Impala、Presto、Spark SQL,支持OLAP的技術有:Kylin。
6 數據挖掘
Data Mining,是一個比較寬泛的概念,可以直接理解為從大量數據中發現有用的信息。大數據中的數據挖掘,主要是設計并在大數據平臺上實現數據挖掘算法:分類算法、聚類算法、關聯分析等。
7 機器學習
Machine Learning,與數據挖掘經常一起討論,甚至被認為是同一事物。機器學習是一個計算機與統計學交叉的學科,基本目標是學習一個x->y的函數(映射),來做分類或者回歸的工作。之所以經常和數據挖掘合在一起講是因為現在好多數據挖掘的工作是通過機器學習提供的算法工具實現的,例如個性化推薦,是通過機器學習的一些算法分析平臺上的各種購買,瀏覽和收藏日志,得到一個推薦模型,來預測你喜歡的商品。
8 深度學習
Deep Learning,是機器學習里面的一個topic(非?;鸬腡opic),從深度學習的內容來看其本身是神經網絡算法的衍生,在圖像、語音、自然語言等分類和識別上取得了非常好的效果,大部分的工作是在調參。不知道大家有否發現現在的Google 翻譯比以前的要準確很多,因為Google在去年底將其Google 翻譯的核心從原來基于統計的方法換成了基于神經網絡的方法~So~
9 數據可視化
Data Visualization,將分析、挖掘后的高價值數據用比較優美、靈活的方式展現在老板、客戶、用戶面前,更多的是一些前端的東西,maybe要求一定的美學知識。結合使用者的喜好,以最恰當的方式呈現數據價值。
10 數據應用
Data Application,從以上的每個部分可以衍生出的應用,例如廣告精準投放、個性化推薦、用戶畫像等。