Ramesh Dontha 曾在 DataConomy 上連發兩篇文章,扼要而全面地介紹了關于大數據的 75 個核心術語,這不僅是大數據初學者很好的入門資料,對于高階從業人員也可以起到查漏補缺的作用。本文為上篇(25 個術語)。
如果你剛接觸大數據,你可能會覺得這個領域很難以理解,無從下手。不過,你可以從下面這份包含了 25 個大數據術語的清單入手,那么我們開始吧。
算法(Algorithm):
算法可以理解成一種數學公式或用于進行數據分析的統計學過程。那么,“算法”又是何以與大數據扯上關系的呢?要知道,盡管算法這個詞是一個統稱,但是在這個流行大數據分析的時代,算法也經常被提及且變得越發流行。
分析(Analytics):
讓我們試想一個很可能發生的情況,你的信用卡公司給你發了封記錄著你全年卡內資金轉賬情況的郵件,如果這個時候你拿著這張單子,開始認真研究你在食品、衣物、娛樂等方面消費情況的百分比會怎樣?你正在進行分析工作,你在從你原始的數據(這些數據可以幫助你為來年自己的消費情況作出決定)中挖掘有用的信息。
那么,如果你以類似的方法在推特和臉書上對整個城市人們發的帖子進行處理會如何呢?在這種情況下,我們就可以稱之為大數據分析。所謂大數據分析,就是對大量數據進行推理并從中道出有用的信息。以下有三種不同類型的分析方法,現在我們來對它們分別進行梳理。
描述性分析法(Descriptive Analytics):
如果你只說出自己去年信用卡消費情況為:食品方面 25%、衣物方面 35%、娛樂方面 20%、剩下 20% 為雜項開支,那么這種分析方法被稱為描述性分析法。當然,你也可以找出更多細節。
預測性分析法(Predictive Analytics):
如果你對過去 5 年信用卡消費的歷史進行了分析,發現每年的消費情況基本上呈現一個連續變化的趨勢,那么在這種情況下你就可以高概率預測出:來年的消費狀態應該和以往是類似的。這不是說我們在預測未來,而是應該理解為,我們在“用概率預測”可能發生什么事情。在大數據的預測分析中,數據科學家可能會使用先進的技術,如機器學習,和先進的統計學處理方法(這部分后面我們會談到)來預測天氣情況、經濟變化等等。
規范性分析(Prescriptive Analytics):
這里我們還是用信用卡轉賬的例子來理解。假如你想找出自己的哪類消費(如食品、娛樂、衣物等等)可以對整體消費產生巨大影響,那么基于預測性分析(Predictive Analytics)的規范性分析法通過引入“動態指標(action)”(如減少食品或衣物或娛樂)以及對由此產生的結果進行分析來規定一個可以降低你整體開銷的最佳消費項。你可以將它延伸到大數據領域,并想象一個負責人是如何通過觀察他面前多種動態指標的影響,進而作出所謂由“數據驅動”的決策的。
批處理(Batch processing):
盡管批量數據處理從大型機(mainframe)時代就已經存在了,但是在處理大量數據的大數據時代面前,批處理獲得了更重要的意義。批量數據處理是一種處理大量數據(如在一段時間內收集到的一堆交易數據)的有效方法。分布式計算(Hadoop),后面會討論,就是一種專門處理批量數據的方法。
Cassandra:
是一個很流行的開源數據管理系統,由 Apache Software Foundation 開發并運營。Apache 掌握了很多大數據處理技術,Cassandra 就是他們專門設計用于在分布式服務器之間處理大量數據的系統。
云計算(Cloud computing):
雖然云計算這個詞現在已經家喻戶曉,這里大可不必贅述,但是為了全篇內容完整性的考慮,筆者還是在這里加入了云計算詞條。本質上講,軟件或數據在遠程服務器上進行處理,并且這些資源可以在網絡上任何地方被訪問,那么它就可被稱為云計算。
集群計算(Cluster computing):
這是一個來描述使用多個服務器豐富資源的一個集群(cluster)的計算的形象化術語。更技術層面的理解是,在集群處理的語境下,我們可能會討論節點(node)、集群管理層(cluster management layer)、負載平衡(load balancing)和并行處理(parallel processing)等等。
暗數據(Dark data):
這是一個生造詞,在筆者看來,它是用來嚇唬人,讓高級管理聽上去晦澀難懂的。基本而言,所謂暗數據指的是,那些公司積累和處理的實際上完全用不到的所有數據,從這個意義上來說我們稱它們為“暗”的數據,它們有可能根本不會被分析。這些數據可以是社交網絡中的信息,電話中心的記錄,會議記錄等等。很多估計認為所有公司的數據中有 60% 到 90% 不等可能是暗數據,但實際上沒人知道。
數據湖(Data lake):
當筆者第一次聽到這個詞時,真的以為這是個愚人節笑話。但是它真的是一個術語。所以一個數據湖(data lake)即一個以大量原始格式保存了公司級別的數據知識庫。這里我們介紹一下數據倉庫(Data warehouse)。數據倉庫是一個與這里提到的數據湖類似的概念,但不同的是,它保存的是經過清理和并且其它資源整合后的結構化數據。數據倉庫經常被用于通用數據(但不一定如此)。一般認為,一個數據湖可以讓人更方便地接觸到那些你真正需要的數據,此外,你也可以更方便地處理、有效地使用它們。
數據挖掘(Data mining):
數據挖掘關乎如下過程,從一大群數據中以復雜的模式識別技巧找出有意義的模式,并且得到相關洞見。它與前文所述的“分析”息息相關,在數據挖掘中,你將會先對數據進行挖掘,然后對這些得到的結果進行分析。為了得到有意義的模式(pattern),數據挖掘人員會使用到統計學(一種經典的舊方法)、機器學習算法和人工智能。
數據科學家:
數據科學家是時下非常性感的一門行業。它指那些可以通過提取原始數據(這就是我們前面所謂的數據湖)進而理解、處理并得出洞見的這樣一批人。部分數據科學家必備的技能可以說只有超人才有:分析能力、統計學、計算機科學、創造力、講故事能力以及理解商業背景的能力。難怪這幫人工資很高。
分布式文件系統(Distributed File System):
大數據數量太大,不能存儲在一個單獨的系統中,分布式文件系統是一個能夠把大量數據存儲在多個存儲設備上的文件系統,它能夠減少存儲大量數據的成本和復雜度。
ETL:
ETL 代表提取、轉換和加載。它指的是這一個過程:“提取”原始數據,通過清洗/豐富的手段,把數據“轉換”為“適合使用”的形式,并且將其“加載”到合適的庫中供系統使用。即使 ETL 源自數據倉庫,但是這個過程在獲取數據的時候也在被使用,例如,在大數據系統中從外部源獲得數據。
Hadoop:
當人們思考大數據的時候,他們會立即想到 Hadoop。Hadoop 是一個開源軟件架構(logo 是一頭可愛的大象),它由 Hadoop 分布式文件系統(HDFS)構成,它允許使用分布式硬件對大數據進行存儲、抽象和分析。如果你真的想讓某人對這個東西印象深刻,你可以跟他說 YARN(Yet Another Resource Scheduler),顧名思義,就是另一個資源調度器。我確實被提出這些名字的人深深震撼了。提出 Hadoop 的 Apache 基金會,還負責 Pig、Hive 以及 Spark(這都是一些軟件的名字)。你沒有被這些名字驚艷到嗎?
內存計算(In-memory computing):
通常認為,任何不涉及到 I/O 訪問的計算都會更快一些。內存計算就是這樣的技術,它把所有的工作數據集都移動到集群的集體內存中,避免了在計算過程中向磁盤寫入中間結果。Apache Spark 就是一個內存計算的系統,它相對 Mapreduce 這類 I/O 綁定的系統具有很大的優勢。
最新的流行語就是物聯網(IoT)。IoT 是嵌入式對象中(如傳感器、可穿戴設備、車、冰箱等等)的計算設備通過英特網的互聯,它們能夠收發數據。物聯網生成了海量的數據,帶來了很多大數據分析的機遇。
機器學習(Machine Learning):
機器學習是基于喂入的數據去設計能夠學習、調整和提升的系統的一種方法。使用設定的預測和統計算法,它們持續地逼近“正確的”行為和想法,隨著更多的數據被輸入到系統,它們能夠進一步提升。
MapReduce:
MapReduce 可能有點難以理解,我試著解釋一下吧。MapReduceMapReduce 是一個編程模型,最好的理解就是要注意到 Map 和 Reduce 是兩個不同的過程。在 MapReduce 中,程序模型首先將大數據集分割成一些小塊(這些小塊拿技術術語來講叫做“元組”,但是我描述的時候會盡量避免晦澀的技術術語)。
然后這些小塊會被分發給不同位置上的不同計算機(也就是說之前描述過的集群),這在 Map 過程是必須的。然后模型會收集每個計算結果,并且將它們“reduce”成一個部分。MapReduce 的數據處理模型和 Hadoop 分布式文件系統是分不開的。
非關系型數據庫(NoSQL):
這個詞聽起來幾乎就是“SQL,結構化查詢語言”的反義詞,SQL 是傳統的關系型數據管理系統(RDBMS)必需的,但是 NOSQL 實際上指的是“不止 SQL”。NoSQL 實際上指的是那些被設計來處理沒有結構(或者沒有“schema”,綱要)的大量數據的數據庫管理系統。NoSQL 適合大數據系統,因為大規模的非結構化數據庫需要 NoSQL 的這種靈活性和分布式優先的特點。
R 語言:
這還有人能給一個編程語言起一個更加糟糕的名字嗎?R 語言就是這樣的語言。不過,R 語言是一個在統計工作中工作得很好的語言。如果你不知道 R 語言,別說你是數據科學家。因為 R 語言是數據科學中最流行的編程語言之一。
Spark(Apache Spark):
Apache Spark 是一個快速的內存數據處理引擎,它能夠有效地執行那些需要迭代訪問數據庫的流處理、機器學習以及 SQL 負載。Spark 通常會比我們前面討論過的 MapReduce 快好多。
流處理(Stream processing):
流處理被設計來用于持續地進行流數據的處理。與流分析技術(指的是能夠持續地計算數值和統計分析的能力)結合起來,流處理方法特別能夠針對大規模數據的實時處理。
結構化 vs 非結構化數據(Structured v Unstructured Data):
這是大數據中的對比之一。結構化數據基本上是那些能夠被放在關系型數據庫中的任何數據,以這種方式組織的數據可以與其他數據通過表格來關聯。非結構化數據是指任何不能夠被放在關系型數據庫中的數據,例如郵件信息、社交媒體上的狀態,以及人類語音等等。
編輯:jq
-
云計算
+關注
關注
39文章
7776瀏覽量
137369 -
物聯網
+關注
關注
2909文章
44578瀏覽量
372894 -
機器學習
+關注
關注
66文章
8408瀏覽量
132580 -
內存計算
+關注
關注
1文章
15瀏覽量
12154
發布評論請先 登錄
相關推薦
評論