發布時間: 2017-07-31 11:22:04
?本文全面地介紹了關于大數據的核心術語,這不僅是大數據初學者很好的入門資料,對于高階從業人員也可以起到查漏補缺的作用。
上篇
算法(Algorithm):算法可以理解成一種數學公式或用于進行數據分析的統計學過程。那么,算法又是何以與大數據扯上關系的呢?要知道,盡管算法這個詞是一個統稱,但是在這個流行大數據分析的時代,算法也經常被提及且變得越發流行。
分析(Analytics):讓我們試想一個很可能發生的情況,你的信用卡公司給你發了封記錄著你全年卡內資金轉賬情況的郵件,如果這個時候你拿著這張單子,開始認真研究你在食品、衣物、娛樂等方面消費情況的百分比會怎樣?你正在進行分析工作,你在從你原始的數據(這些數據可以幫助你為來年自己的消費情況作出決定)中挖掘有用的信息。那么,如果你以類似的方法在推特和臉書上對整個城市人們發的帖子進行處理會如何呢?在這種情況下,我們就可以稱之為大數據分析。所謂大數據分析,就是對大量數據進行推理并從中道出有用的信息。以下有三種不同類型的分析方法,現在我們來對它們分別進行梳理。
描述性分析法(Descriptive Analytics):如果你只說出自己去年信用卡消費情況為食品方面 25%、衣物方面 35%、娛樂方面 20%、剩下 20% 為雜項開支,那么這種分析方法被稱為描述性分析法。當然,你也可以找出更多細節。
預測性分析法(Predictive Analytics):如果你對過去五年信用卡消費的歷史進行了分析,發現每年的消費情況基本上呈現一個連續變化的趨勢,那么在這種情況下你就可以高概率預測出:來年的消費狀態應該和以往是類似的。這不是說我們在預測未來,而是應該理解為,我們在用概率預測可能發生什么事情。在大數據的預測分析中,數據科學家可能會使用先進的技術,如機器學習,和先進的統計學處理方法(這部分后面我們會談到)來預測天氣情況、經濟變化等等。
規范性分析(Prescriptive Analytics):我們還是用信用卡轉賬的例子來理解。假如你想找出自己的哪類消費可以對整體消費產生巨大影響,那么基于預測性分析的規范性分析法通過引入動態指標(action)以及對由此產生的結果進行分析來規定一個可以降低你整體開銷的最佳消費項。你可以將它延伸到大數據領域,并想象一個負責人是如何通過觀察他面前多種動態指標的影響,進而作出所謂由「數據驅動」的決策的。
批處理(Batch processing):盡管批量數據處理從大型機時代就已經存在了,但是在處理大量數據的大數據時代面前,批處理獲得了更重要的意義。批量數據處理是一種處理大量數據(如在一段時間內收集到的一堆交易數據)的有效方法。分布式計算(Hadoop),后面會討論,就是一種專門處理批量數據的方法。
Cassandra:是一個很流行的開源數據管理系統。Apache 掌握了很多大數據處理技術,Cassandra 就是他們專門設計用于在分布式服務器之間處理大量數據的系統。
云計算(Cloud computing):云計算這個詞現在已經家喻戶曉,這里大可不必贅述,本質上講,軟件或數據在遠程服務器上進行處理,并且這些資源可以在網絡上任何地方被訪問,那么它就可被稱為云計算。
集群計算(Cluster computing):這是一個來描述使用多個服務器豐富資源的一個集群的計算的形象化術語。更技術層面的理解是在集群處理的語境下,我們可能會討論節點(node)、集群管理層(cluster
management layer)、負載平衡(load balancing)和并行處理(parallel processing)等等。
暗數據(Dark data):所謂暗數據指的是那些公司積累和處理的實際上完全用不到的所有數據,從這個意義上來說我們稱它們為「暗」的數據,它們有可能根本不會被分析。這些數據可以是社交網絡中的信息,電話中心的記錄,會議記錄等等。
數據湖(Data lake):一個數據湖(data lake)即一個以大量原始格式保存了公司級別的數據知識庫。這里我們介紹一下數據倉庫(Data warehouse)。數據倉庫是一個與這里提到的數據湖類似的概念,但不同的是它保存的是經過清理和并且其它資源整合后的結構化數據。數據倉庫經常被用于通用數據。一般認為,一個數據湖可以讓人更方便地接觸到那些你真正需要的數據,此外,你也可以更方便地處理、有效地使用它們。
數據挖掘(Data mining):數據挖掘關乎如下過程,從一大群數據中以復雜的模式識別技巧找出有意義的模式,并且得到相關洞見。在數據挖掘中,你將會先對數據進行挖掘,然后對這些得到的結果進行分析。為了得到有意義的模式(pattern),數據挖掘人員會使用到統計學、機器學習算法和人工智能。
數據科學家:數據科學家是時下非常性感的一門行業。它指那些可以通過提取原始數據進而理解、處理并得出意見的這樣一批人。部分數據科學家必備的技能有分析能力、統計學、計算機科學、創造力、講故事能力以及理解商業背景的能力。
分布式文件系統(Distributed File System):大數據數量太大,不能存儲在一個單獨的系統中,分布式文件系統是一個能夠把大量數據存儲在多個存儲設備上的文件系統,它能夠減少存儲大量數據的成本和復雜度。
機器學習(Machine Learning):機器學習是基于喂入的數據去設計能夠學習、調整和提升的系統的一種方法。使用設定的預測和統計算法,它們持續地逼近正確的行為和想法,隨著更多的數據被輸入到系統,它們能夠進一步提升。
下篇
Apache Kafka:它用于構建實時數據管道和流媒體應用。它如此流行的原因在于能夠以容錯的方式存儲、管理和處理數據流,據說還非常快速。鑒于社交網絡環境大量涉及數據流的處理,卡夫卡目前非常受歡迎。
Apache Mahout:Mahout 提供了一個用于機器學習和數據挖掘的預制算法庫,也可用作創建更多算法的環境。換句話說,機器學習極客的最佳環境。
Apache Oozie:在任何編程環境中,你都需要一些工作流系統通過預定義的方式和定義的依賴關系,安排和運行工作。Oozie 為 pig、MapReduce 以及 Hive 等語言編寫的大數據工作所提供正是這個。
Apache Drill, Apache Impala, Apache Spark SQL:這三個開源項目都提供快速和交互式的 SQL,如與 Apache Hadoop 數據的交互。如果你已經知道 SQL 并處理以大數據格式存儲的數據(HBase 或 HDFS),這些功能將非常有用。
Apache Hive:知道 SQL 嗎?如果知道那你就很好上手 Hive 了。Hive 有助于使用 SQL 讀取、寫入和管理駐留在分布式存儲中的大型數據集。
Apache Pig:Pig 是在大型分布式數據集上創建、查詢、執行例程的平臺。所使用的腳本語言叫做 Pig Latin。據說它很容易理解和學習。
Apache Sqoop:一個用于將數據從 Hadoop 轉移到非 Hadoop 數據存儲(如數據倉庫和關系數據庫)的工具。
Apache Storm:一個免費開源的實時分布式計算系統。它使得使用 Hadoop 進行批處理的同時可以更容易地處理非結構化數據。
數據分析師(Data Analyst):數據分析師是一個非常重要和受歡迎的工作,除了準備報告之外,它還負責收集、編輯和分析數據。我會寫一篇更詳細的關于數據分析師的文章。
數據清洗(Data Cleansing):顧名思義,數據清洗涉及到檢測并更正或者刪除數據庫中不準確的數據或記錄,然后記住「臟數據」。借助于自動化或者人工工具和算法,數據分析師能夠更正并進一步豐富數據,以提高數據質量。請記住,臟數據會導致錯誤的分析和糟糕的決策。
數據即服務(DaaS):我們有軟件即服務(SaaS), 平臺即服務(PaaS),現在我們又有 DaaS,它的意思是數據即服務。通過給用戶提供按需訪問的云端數據,DaaS 提供商能夠幫助我們快速地得到高質量的數據。
數據虛擬化(Data virtualization):這是一種數據管理方法,它允許某個應用在不知道技術細節(如數據存放在何處,以什么格式)的情況下能夠抽取并操作數據。例如,社交網絡利用這個方法來存儲我們的照片。
臟數據(Dirty Data):既然大數據這么吸引人,那么人們也開始給數據加上其他的形容詞來形成新的術語,例如黑數據(dark data)、臟數據(dirty data)、小數據(small data),以及現在的智能數據(smart data)。臟數據就是不干凈的數據,換言之,就是不準確的、重復的以及不一致的數據。
模糊邏輯(Fuzzy logic):我們有多少次對一件事情是確定的,例如 100% 正確?很稀少!我們的大腦將數據聚合成部分的事實,這些事實進一步被抽象為某種能夠決定我們決策的閾值。模糊邏輯是一種這樣的計算方式,與像布爾代數等等中的「0」和「1」相反,它旨在通過漸漸消除部分事實來模仿人腦。
游戲化(Gamification):在一個典型的游戲中,你會有一個類似于分數一樣的元素與別人競爭,并且還有明確的游戲規則。大數據中的游戲化就是使用這些概念來收集、分析數據或者激發玩家。
圖數據庫(Graph Databases):圖數據使用節點和邊這樣的概念來代表人和業務以及他們之間的關系,以挖掘社交媒體中的數據。是否曾經驚嘆過亞馬遜在你買一件產品的時候告訴你的關于別人在買什么的信息?對,這就是圖數據庫。
負載均衡(Load balancing):為了實現最佳的結果和對系統的利用,將負載分發給多個計算機或者服務器。
元數據(Metadata):元數據就是能夠描述其他數據的數據。元數據總結了數據的基本信息,這使得查找和使用特定的數據實例變得更加容易。例如,作者、數據的創建日期、修改日期以及大小,這幾項是基本的文檔元數據。除了文檔文件之外,元數據還被用于圖像、視頻、電子表格和網頁。
MongoDB:MongoDB 是一個面向文本數據模型的跨平臺開源數據庫,而不是傳統的基于表格的關系數據庫。這種數據庫結構的主要設計目的是讓結構化數據和非結構化數據在特定類型應用的整合更快、更容易。
Mashup:mashup 是一個將不同的數據集合并到一個單獨應用中的方法,例如,將房地產數據與地理位置數據、人口數據結合起來。
多維數據庫(Multi-Dimensional Databases):這是一個為了數據在線分析處理(OLAP)和數據倉庫優化而來的數據庫。
多值數據庫(MultiValue Databases):多值數據庫是一種非關系型數據庫,它能夠直接理解三維數據,這對直接操作 HTML 和 XML 字符串是很好的。
自然語言處理(Natural Language Processing):自然語言處理是被設計來讓計算機更加準確地理解人類日常語言的軟件算法,能夠讓人類更加自然、更加有效地和計算機交互。
神經網絡(Neural Network):神經網絡是一個受生物學啟發的非常漂亮的編程范式,它能夠讓計算機從觀察到的數據中學習。已經好久沒有一個人會說一個編程范式很漂亮了。實際上,神經網絡就是受現實生活中腦生物學啟發的模型.......與神經網絡緊密關聯的一個術語就是深度學習。深度學習是神經網絡中一系列學習技術的集合。
模式識別(Pattern Recognition):當算法需要在大規模數據集或者在不同的數據集上確定回歸或者規律的時候,就出現了模式識別。它與機器學習和數據挖掘緊密相連,甚至被認為是后兩者的代名詞。這種可見性可以幫助研究者發現一些深刻的規律或者得到一些可能被認為很荒謬的結論。
射頻識別(Radio Frequency Identification/RFID):射頻識別是一類使用非接觸性無線射頻電磁場來傳輸數據的傳感器。隨著物聯網的發展,RFID 標簽能夠被嵌入到任何可能的東西里面,這能夠生成很多需要被分析的數據。
軟件即服務(SaaS):軟件即服務讓服務提供商把應用托管在互聯網上。SaaS 提供商在云端提供服務。
半結構化數據(Semi-structured data):半結構化數據指的是那些沒有以傳統的方法進行格式化的數據,例如那些與傳統數據庫相關的數據域或者常用的數據模型。半結構化數據也不是完全原始的數據或者完全非結構化的數據,它可能會包含一些數據表、標簽或者其他的結構元素。半結構化數據的例子有圖、表、XML
文檔以及電子郵件。
情感分析(Sentiment Analysis):情感分析涉及到了對消費者在社交媒體、顧客代表電話訪談和調查中存在的多種類型的交互和文檔中所表達的情感、情緒和意見的捕捉、追蹤和分析。文本分析和自然語言處理是情感分析過程中的典型技術。情感分析的目標就是要辨別或評價針對一個公司、產品、服務、人或者時間所持有的態度或者情感。
空間分析(Spatial analysis):空間分析指的是對空間數據作出分析,以識別或者理解分布在幾何空間中的數據的模式和規律,這類數據有幾何數據和拓撲數據。
流處理(Stream processing):流處理被設計用來對「流數據」進行實時的連續查詢和處理。為了對大量的流數據以很快的速度持續地進行實時的數值計算和統計分析,社交網絡上的流數據對流處理的需求很明確。
智能數據(Smart Data):是經過一些算法處理之后有用并且可操作的數據。
可視化(Visualization):有了合理的可視化之后,原始數據就能夠使用了。當然這里的可視化并不止簡單的圖表。而是能夠包含數據的很多變量的同時還具有可讀性和可理解性的復雜圖表。
上一篇: {甲骨文OracleC} 數據文件和臨時文件的管理
下一篇: 你應該知道的大數據術語