1.演算法。“演算法”如何與大資料相關?即使演算法是一個通用術語,但大資料分析使其在當代更受青睞和流行。

2.分析。年末你可能會收到一份來自信用卡公司寄來的包含了全年所有交易記錄的年終報表。如果你有興趣進一步分析自己在食物、衣服、娛樂等方面具體花費佔比呢?那你便是在做“分析”了。你正從一堆原始資料中來吸取經驗,以幫助自己為來年的消費做出決策。如果你正在針對整個城市人群對Twitter或Facebook的帖子做同樣的練習呢?那我們便是在討論大資料分析了。大資料分析的實質是利用大量資料來進行推斷和講故事。大資料分析有3種不同到的型別,接下來便繼續本話題進行依次討論。

3.描述性分析。剛剛如果你告訴我,去年你的信用卡消費在食物上花費了25%、在服裝上花費了35%、娛樂活動上花費了20%、剩下的就是雜七雜八的事項,這種便是描述性分析。當然你還可以參考更多的細節。

4.預測分析。如果你根據過去5年的信用卡歷史記錄來進行分析,並且劃分具有一定的連續性,則你可以高概率預測明年將與過去幾年相差無幾。此處需要注意的細節是,這並不是“預測未來”,而是未來可能會發生的“概率”。在大資料預測分析中,資料科學家可能會使用類似機器學習、高階的統計過程(後文將對這些術語進行介紹)等先進的技術去預測天氣、經濟變化等。

5.規範分析。沿用信用卡交易的案例,你可能想要找出哪方面的支出(級食品、服裝、娛樂等)對自己的整體支出產生巨大的影響。規範分析建立在預測分析的基礎之上,包含了“行動”記錄(例如減少食品、服裝、娛樂支出),並分析所得結果來“規定”最佳類別以減少總體支出。你可以嘗試將其發散到大資料,並設想高管們如何通過檢視各種行動的影響來做出資料驅動的決策。

6.批處理。雖然批量資料處理在大型機時代就早已出現,但大資料交給它更多大資料集處理,因此賦予了批處理更多的意義。對於一段時間內收集到的一組事務,批量資料處理為處理大量資料提供了一種有效的方法。後文將介紹的Hadoop便是專注於批量資料處理。超越批處理的世界:流計算 使用Spark SQL構建批處理程式。

7. Cassandra是由Apache Software Foundation管理的一款流行的開源資料庫管理系統。很多大資料技術都歸功於Apache,其中Cassandra的設計初衷便是處理跨分散式伺服器的大量資料。

8. 雲端計算。顯而易見雲端計算已經變得無所不在,所以本文可能無須贅述,但為了文章的完整性還是佐以介紹。雲端計算的本質是在遠端伺服器上執行的軟體和(/或)資料託管,並允許從網際網路上的任何地方進行訪問。

9. 叢集計算。它是一種利用多臺伺服器的彙集資源的“叢集”來進行計算的奇特方式。在瞭解了更多技術之後,我們可能還會討論節點、叢集管理層、負載平衡和並行處理等。

10. 黑暗資料。依我看來,這個詞適用於那些嚇得六神無主的高階管理層們。從根本上來說,黑暗資料是指那些被企業收集和處理但又不用於任何有意義用途的資料,因此描述它是“黑暗的”,它們可能永遠被埋沒。它們可能是社交網路資訊流、呼叫中心日誌、會議筆記,諸如此類。人們做出了諸多估計,在60-90%的所有企業資料都可能是“黑暗資料”,但無人真正知曉。

11. 資料湖。當我第一次聽到這個詞的時候,我真的以為有人在開愚人節的玩笑。但它真的是個術語!資料湖是一個原始格式的企業級資料的大型儲存庫。雖然此處討論的是資料湖,但有必要再一起討論下資料倉儲,因為資料湖和資料倉儲在概念上是極其相似的,都是企業級資料的儲存庫,但在清理和與其他資料來源整合之後的結構化格式上有所區別。資料倉儲常用於常規資料(但不完全)。據說資料湖能夠讓使用者輕鬆訪問企業級資料,使用者真正按需知道自己正在尋找的是什麼、如何處理並讓其智慧化使用。擁抱開源技術的前提——認識資料湖 你知道資料湖泊(DATA LAKE)嗎?

12. 資料探勘。資料探勘是指利用複雜的模式識別技術從大量資料中找到有意義的模式、提取見解。這與我們前文討論的使用個人資料做分析的術語“分析”密切相關。為了提取出有意義的模式,資料探勘者使用統計學(是呀,好老的數學)、機器學習演算法和人工智慧。

13.資料科學家。我們談論的是一個如此熱門的職業!資料科學家們可以通過提取原始資料(難道是從前文所說的資料湖中提取的?),處理資料,然後提出新見解。資料科學家所需具備的一些技能與超人無異:分析、統計、電腦科學、創造力、故事講述和理解業務環境。難怪他們能獲得如此高的薪水報酬。

14.分散式檔案系統。由於大資料太大而無法在單個系統上進行儲存,分散式檔案系統提供一種資料儲存系統,方便跨多個儲存裝置進行大量資料的存放,並有助於降低大量資料儲存的成本和複雜度。

15. ETL。ETL分別是extract,transform,load的首字母縮寫,代表提取、轉化和載入的過程。 它具體是指“提取”原始資料,通過資料清洗/修飾的方式進行“轉化”以獲得 “適合使用”的資料,進而“載入”到合適的儲存庫中供系統使用的整個過程。儘管ETL這一概念源於資料倉儲,但現在也適用於其它情景下的過程,例如在大資料系統中從外部資料來源獲取/吸收資料。我們需要什麼樣的ETL?

工程師要不要寫ETL?——教你構建高效的演算法/資料科學部門 ETL的經驗總結

16. Hadoop。人們一想起大資料就能立即想到Hadoop。 Hadoop(擁有可愛的大象LOGO)是一個開源軟體框架,主要組成部分是Hadoop分散式檔案系統(HDFS),Hadoop部署了分散式硬體以支援大型資料集的儲存、檢索和分析。如果你真的想給別人留下深刻的印象,還可以談談YARN(Yet Another Resource Schedule,另一個資源排程器),正如其名,它也是一個資源排程器。我由衷佩服這些為程式命名的人。為Hadoop命名的Apache基金會還想出了Pig,Hive和Spark(沒錯,它們都是各種軟體的名稱)。這些名字難道不讓你感到印象深刻嗎?

17. 記憶體計算。一般來說,任何可以在不訪問I / O的情況下進行的計算預計會比需要訪問I/O的速度更快。記憶體內計算是一種能夠將工作資料集完全轉移到叢集的集體記憶體中、並避免了將中間計算寫入磁碟的技術。Apache Spark便是一種記憶體內計算系統,它與I / O相比,在像Hadoop MapReduce這樣的系統上繫結具有巨大的優勢。

18. IOT。最新的流行語是物聯網(Internet of things,簡稱IOT)。IOT是通過網際網路將嵌入式物件(感測器、可穿戴裝置、汽車、冰箱等)中的計算裝置互連在一起,並且能夠傳送/接收資料。IOT產生了大量的資料,這為呈現大資料分析提供了更多的機會。

19.機器學習。機器學習是為了設計一種基於提供的資料能夠進行不斷學習、調整、改進的系統的設計方法。機器使用預測和統計的演算法進行學習並專注於實現“正確的”行為模式和簡見解,隨著越來越多的資料注入系統它還在不斷進行優化改進。典型的應用有欺詐檢測、線上個性化推薦等。

20.MapReduce。MapReduce的概念可能會有點混亂,但讓我試一試。MapReduce是一個程式設計模型,最好的理解方法是將Map和Reduce是看作兩個獨立的單元。在這種情況下,程式設計模型首先將大資料的資料集分成幾個部分(技術術語上是稱作“元組”,但本文並不想太過技術性),因此可以部署到不同位置的不同計算機上(即前文所述的叢集計算),這些本質上是Map的組成部分。接下來該模型收集到所有結果並將“減少”到同一份報告中。 MapReduce的資料處理模型與hadoop的分散式檔案系統相輔相成。

21.NoSQL。乍一聽這像是針對傳統關係型資料庫管理系統(RDBMS)的物件導向的SQL(Structured Query Language, 結構化查詢語言)的抗議,其實NoSQL代表的是NOT ONLY SQL,意即“不僅僅是SQL”。 NoSQL實際上是指被用來處理大量非結構化、或技術上被稱作“圖表”(例如關係型資料庫的表)等資料的資料庫管理系統。NoSQL資料庫一般非常適用於大型資料系統,這得益於它們的靈活性以及大型非結構化資料庫所必備的分散式結構。

22.R語言。有人能想到比這個程式語言更糟糕的名字嗎?是的,’R’是一門在統計計算中表現非常優異的程式語言。如果你連’R’都不知道,那你就不是資料科學家。(如果你不知道’R’,就請不要把那些糟糕的程式碼發給我了)。這就是在資料科學中最受歡迎的語言之一的R語言。

23. Spark(Apache Spark)。Apache Spark是一種快速的記憶體內資料處理引擎,它可以高效執行需要快速迭代訪問資料集的流、機器學習或SQL工作負載。Spark通常比我們前文討論的MapReduce快很多。

24.流處理。流處理旨在通過“連續”查詢對實時和流資料進行操作。結合流分析(即在流內同時進行連續計算數學或統計分析的能力),流處理解決方案可以被用來實時處理非常大的資料。

25. 結構化和非結構化資料。這是大資料5V中的“Variety”多樣性。結構化資料是能夠放入關係型資料庫的最基本的資料型別,通過表的組織方式可以聯絡到任何其他資料。非結構化資料則是所有不能直接存入關聯式資料庫中的資料,例如電子郵件、社交媒體上的帖子、人類錄音等。