你真的明白什麼是大資料嗎?
大資料這個名詞並不是啥新名詞,如果對於IT比較熟悉的兄弟,估計聽這個名詞有6-7年的時間了,對這個有一定的瞭解,但是對於那些不熟悉IT的朋友來說,這個名詞雖然在網際網路和各媒體中聽到見到很多,估計腦子仍然是一頭霧水,到底什麼是大資料?
本人對於大資料學習建立了一個小小的學習圈子,為各位提供了一個平臺,大家一起來討論學習大資料。歡迎各位到來大資料學習群:868847735 一起討論視訊分享學習。大資料是未來的發展方向,正在挑戰我們的分析能力及對世界的認知方式,因此,我們與時俱進,迎接變化,並不斷的成長,掌握大資料核心技術,才是掌握真正的價值所在。
大資料顧名思義,就是大量的資料,從字面來理解,有一定的道理,我們首先來看看資料庫技術的發展,對於IT有一定了解的朋友,普遍都聽說過資料庫,基本上所有的資訊化系統都離不開資料庫,使用者儲存資料,並由於維護與使用相關資訊,傳統的資料庫,我們稱之為關係資料庫,比較典型的如:ORACLE、SQL SERVER、My SQL等等,資料庫中建立很多的資料表,用於存放不同的資料,這種資料庫的特點是操作起來非常方便,表與表間可以有緊密的關聯,然而這類資料庫有一個很大的問題,也是一直困擾軟體開發人員的問題,就是所存資料量一旦達到一定的數量,資料庫操作的速度會快速降低,比方說一張資料表的資料存上幾千萬條資料,這個時候,無論是對錶做什麼操作,如:新增、修改、查詢等等,速度會變得非常緩慢,少則幾秒,多則幾十秒甚至幾分鐘,這種操作是讓人無法忍受的,於是系統架構師又得考慮分表、跑批、優化等等手段,從而造成大量的維護工作,也給系統的穩定性等等造成了很大的隱患。
最初的大資料從儲存開始誕生,即:非關係資料,這個領域比較領先的如:臉書、雅虎等等,都自己開發了非關係資料庫,卡桑德拉、芒果等等都是業內優秀的資料庫,這類資料庫可以儲存海量的資料,解決了單表的操作瓶頸,速度非常快,注意,這裡是單表操作,如果關係複雜的表結構,操作仍然不方便,如統計查詢等等,但這項工作又是大多資訊系統所需要的,傳統的方式很難再多海量資料做更多有價值的挖掘,畢竟普通的伺服器速度和效率都無法滿足要求,一般人也用不起超級計算機,因此瓶頸資料應用的瓶頸再一次出現。
這個時候,美國的一個技術大牛,也就是現在的apache基金會的主席道格編寫了一個開源框架(也是當年開源搜尋引起lucence的編寫者),叫做hadoop,用於分散式計算,即:把任務分配過若干個普通機器進行運算,然後再把運算結果進行彙總,通過這種方式,大量的企業機構將原來無法處理的海量資料通過這種框架進行處理,從而發掘出了極具價值的資料和規律,這個階段也就是大資料真正開始發展的階段,由於其中的演算法排程,更多的採用硬碟作為中間儲存介質,由此效率相對降低,緊接著spark的出現,即在hadoop的基礎上,將中間環節很多部分改善微記憶體排程,讓系統性能可以大幅度提升,另外也將hadoop的離線處理特點發展成為可以處理實時資料,到目前的FLINK等等機制,大資料處理能力在不斷增強。
大資料僅僅就是這些了嗎?當然不是,上面所說的只是基礎,大家想想,現在的整個世界每天在網際網路上產生多少新資料,而這些新資料如何被使用?這個就引出大資料另一個方面,結構化資料與非結構化資料,啥是結構化資料?這個還不太好解釋,打個比方,你可以把很多資料進行量化,或者分類劃,可以做成EXCEL表格的方式,這類資料通常是結構化資料,而另一類,比如一篇文章、一段文字等等,這類資料通常叫做非結構化資料,可以理解為結構化資料通過常規軟體開發可以直接使用,而非結構化資料則需要人閱讀進行判斷和使用,另一個方面,在目前資訊化的時代,結構化資料是遠遠小於非結構化資料的,這個就是大資料另外一個方向的應用,即:處理非結構化資料,讓計算機具備一定的智慧,可以理解非結構化資料,並實現某方面的具體功能。
可以說,大資料、機器學習、人工智慧這幾塊的結合將是IT發展的全新時代的開始