1、引言
隨著以博客、社交網絡、基于位置的服務LBS 為代表的新型信息發布方式的不斷涌現,以及云計算、物聯網等技術的興起,數據正以前所未有的速度在不斷的增長和累積,大數據時代已經來到。學術界、工業界甚至于政府機構都已經開始密切關注大數據問題,并對其產生濃厚的興趣。就學術界而言,Nature 早在2008 年就推出了Big Data 專刊。計算社區聯盟(Computing Community Consortium)在2008 年發表了報告《Big-Data Computing: Creatingrevolutionary breakthroughs in commerce, science, and society》,闡述了在數據驅動的研究背景下,解決大數據問題所需的技術以及面臨的一些挑戰。Science 在2011 年2 月推出專刊《Dealing with Data》,主要圍繞著科學研究中大數據的問題展開討論,說明大數據對于科學研究的重要性。美國一些知名的數據管理領域的專家學者則從專業的研究角度出發,聯合發布了一份白皮書《Challenges and Opportunities with Big Data。該白皮書從學術的角度出發,介紹了大數據的產生,分析了大數據的處理流程,并提出大數據所面臨的若干挑戰。
全球知名的咨詢公司麥肯錫(McKinsey)去年6 月份發布了一份關于大數據的詳盡報告《Big data: The next frontier for innovation, competition, and productivity》,對大數據的影響、關鍵技術和應用領域等都進行了詳盡的分析。進入2012 年以來,大數據的關注度與日俱增。1 月份的達沃斯世界經濟論壇上,大數據是主題之一,該次會議還特別針對大數據發布了報告《Big Data, Big Impact: New Possibilities for International Development》,探討了新的數據產生方式下,如何更好的利用數據來產生良好的社會效益。該報告重點關注了個人產生的移動數據與其他數據的融合與利用。3 月份美國奧巴馬政府發布了《大數據研究和發展倡議》[7](Big Data Research and Development Initiative),投資2 億以上美元,正式啟動“大數據發展計劃”。計劃在科學研究、環境、生物醫學等領域利用大數據技術進行突破。奧巴馬政府的這一計劃被視為美國政府繼信息高速公路(Information Highway)計劃之后在信息科學領域的又一重大舉措。與此同時,聯合國一個名為Global Pulse 的倡議項目在今年5 月發布報告《Big Data for Development:Challenges & Opportunities》,該報告主要闡述大數據時代各國特別是發展中國家在面臨數據洪流(Data Deluge)的情況下所遇到的機遇與挑戰,同時還對大數據的應用進行了初步的解讀。《紐約時報》的文章《The Age of Big Data》則通過主流媒體的宣傳使普通民眾開始意識到大數據的存在,以及大數據對于人們日常生活的影響。
大數據的火熱并不意味著對于大數據的了解深入,反而表明大數據存在過度炒作的危險。大數據的基本概念、關鍵技術以及對其的利用上均存在很多的疑問和爭議。本文從大數據問題背后的本質出發,對現有的大數據研究資料進行全面的歸納和總結。首先簡要介紹大數據的基本概念,闡述其同傳統數據庫的區別。在此基礎上,對大數據處理框架進行詳細解析。我們認為大數據的發展離不開云計算技術,云計算支撐著大數據存儲、管理以及數據分析等。因此本文展開介紹了大數據時代不可或缺的云計算技術和工具。最后全面闡述大數據時代面臨的新挑戰。
2、大數據的基本概念、來源與應用
2.1 大數據的基本概念
大數據本身是一個比較抽象的概念,單從字面來看,它表示數據規模的龐大。但是僅僅數量上的龐大顯然無法看出大數據這一概念和以往的“海量數據”(Massive Data)、“超大規模數據”(Very Large Data)等概念之間有何區別。對于大數據尚未有一個公認的定義,不同的定義基本是從大數據的特征出發,通過這些特征的闡述和歸納,試圖給出其定義。在這些定義中,比較有代表性的是3V 定義,即認為大數據需滿足3 個特點:規模性(Volume)、多樣性(Variety)和高速性(Velocity)。除此之外,還有提出4V 定義的,即嘗試在3V 的基礎上增加一個新的特性。關于第四個V 的說法并不統一,IDC 認為大數據還應當具有價值性(Value),大數據的價值往往呈現出稀疏性的特點。而IBM 認為大數據必然具有真實性(Veracity)。維基百科對大數據的定義則簡單明了:大數據是指利用常用軟件工具捕獲、管理和處理數據所耗時間超過可容忍時間的數據集。
眼下在大數據定義問題上很難達成一個完全的共識,這點和云計算的概念剛提出時的情況是相似的。在面對實際問題時,不必過度的拘泥于具體的定義之中,把握3V 定義的基礎上,適當的考慮4V 特性即可。
2.2 從數據庫(Database, DB)到大數據(Big Data, BD)
從數據庫(DB)到大數據(BD),看似只是一個簡單的技術演進,但細細考究不難發現兩者有著本質上的差別。大數據的出現,必將顛覆傳統的數據管理方式。在數據來源、數據處理方式和數據思維等方面都會對其帶來革命性的變化。
如果要用簡單的方式來比較傳統的數據庫和大數據的區別的話,我們認為“池塘捕魚”和“大海捕魚”是個很好的類比。“池塘捕魚”代表著傳統數據庫時代的數據管理方式,而“大海捕魚”則對應著大數據時代的數據管理方式,“魚”是待處理的數據。“捕魚”環境條件的變化導致了“捕魚”方式的根本性差異。這些差異主要體現在如下幾個方面:
1、數據規模:“池塘”和“大海”最容易發現的區別就是規模。“池塘”規模相對較小,即便是先前認為比較大的“池塘”,譬如VLDB(Very Large Database),和“大海”XLDB(Extremely Large Database)相比仍舊偏小。“池塘”的處理對象通常以MB 為基本單位,而“大海”則常常以GB,甚至是TB、PB 為基本處理單位。
2、數據類型:過去的“池塘”中,數據的種類單一,往往僅僅有一種或少數幾種,這些數據又以結構化數據為主。而在“大海”中,數據的種類繁多,數以千計,而這些數據又包含著結構化、半結構化以及非結構化的數據,并且半結構化和非結構化數據所占份額越來越大。
3、模式(Schema)和數據的關系:傳統的數據庫都是先有模式,然后才會產生數據。這就好比是先選好合適的“池塘”,然后才會向其中投放適合在該“池塘”環境生長的“魚”。而大數據時代很多情況下難以預先確定模式,模式只有在數據出現之后才能確定,且模式隨著數據量的增長處于不斷的演變之中。這就好比先有少量的魚類,隨著時間推移,魚的種類和數量都在不斷的增長。魚的變化會使大海的成分和環境處于不斷的變化之中。
4、處理對象:在“池塘”中捕魚,“魚”僅僅是其捕撈對象。而在“大海”中,“魚”除了是捕撈對象之外,還可以通過某些“魚”的存在來判斷其他種類的“魚”是否存在。也就是說傳統數據庫中數據僅作為處理對象。而在大數據時代,要將數據作為一種資源來輔助解決其他諸多領域的問題。
5、處理工具:捕撈“池塘”中的“魚”,一種漁網或少數幾種基本就可以應對,也就是所謂的One Size Fits All。但是在“大海”中,不可能存在一種漁網能夠捕獲所有的魚類,也就是說No Size Fits All。
從“池塘”到“大海”,不僅僅是規模的變大。傳統的數據庫代表著數據工程(Data Engineering)的處理方式,大數據時代的數據已不僅僅只是工程處理的對象,需要采取新的數據思維來應對。圖靈獎獲得者、著名數據庫專家Jim Gray 博士觀察并總結人類自古以來,在科學研究上,先后歷經了實驗、理論和計算三種范式。當數據量不斷增長和累積到今天,傳統的三種范式在科學研究,特別是一些新的研究領域已經無法很好的發揮作用,需要有一種全新的第四種范式來指導新形勢下的科學研究。基于這種考慮,Jim Gray 提出了一種新的數據探索型研究方式,被他自己稱之為科學研究的“第四種范式”(The Fourth Paradigm)。
表1 科學發現的四種范式
四種范式的比較如表1所示。第四種范式的實質就是從以計算為中心,轉變到以數據處理為中心,也就是我們所說的數據思維。這種方式需要我們從根本上轉變思維。正如前面提到的“捕魚”,在大數據時代,數據不再僅僅是“捕撈”的對象,而應當轉變成一種基礎資源,用數據這種資源來協同解決其他諸多領域的問題。計算社會科學(Computational SocialScience)基于特定社會需求,在特定的社會理論指導下,收集、整理和分析數據足跡(dataprint),以便進行社會解釋、監控、預測與規劃的過程和活動。計算社會科學是一種典型的需要采用第四種范式來做指導的科學研究領域。Duncan J. Watts 在《自然》雜志上的文章《Atwenty-first century science》也指出借助于社交網絡和計算機分析技術,21 世紀的社會科學有可能實現定量化的研究,從而成為一門真正的自然科學。
2.3 大數據的產生和應用
人類歷史上從未有哪個時代和今天一樣產生如此海量的數據。數據的產生已經完全不受時間、地點的限制。從開始采用數據庫作為數據管理的主要方式開始,人類社會的數據產生方式大致經歷了3 個階段,而正是數據產生方式的巨大變化才最終導致大數據的產生。
1、運營式系統階段。數據庫的出現使得數據管理的復雜度大大降低,實際中數據庫大都為運營系統所采用,作為運營系統的數據管理子系統。比如超市的銷售記錄系統,銀行的交易記錄系統、醫院病人的醫療記錄等。人類社會數據量第一次大的飛躍正是建立在運營式系統開始廣泛使用數據庫開始。這個階段最主要特點是數據往往伴隨著一定的運營活動而產生并記錄在數據庫中的,比如超市每銷售出一件產品就會在數據庫中產生相應的一條銷售記錄。這種數據的產生方式是被動的。
2、用戶原創內容階段。互聯網的誕生促使人類社會數據量出現第二次大的飛躍。但是真正的數據爆發產生于Web 2.0 時代,而Web 2.0 的最重要標志就是用戶原創內容(UGC,User Generated Content)。這類數據近幾年一直呈現爆炸性的增長,主要有兩個方面的原因。首先是以博客、微博為代表的新型社交網絡的出現和快速發展,使得用戶產生數據的意愿更加強烈。其次就是以智能手機、平板電腦為代表的新型移動設備的出現,這些易攜帶、全天候接入網絡的移動設備使得人們在網上發表自己意見的途徑更為便捷。這個階段數據的產生方式是主動的。
3、感知式系統階段。人類社會數據量第三次大的飛躍最終導致了大數據的產生,今天我們正處于這個階段。這次飛躍的根本原因在于感知式系統的廣泛使用。隨著技術的發展,人們已經有能力制造極其微小的帶有處理功能的傳感器,并開始將這些設備廣泛的布置于社會的各個角落,通過這些設備來對整個社會的運轉進行監控。這些設備會源源不斷的產生新數據,這種數據的產生方式是自動的。
簡單來說,數據產生經歷了被動、主動和自動三個階段。這些被動、主動和自動的數據共同構成了大數據的數據來源,但其中自動式的數據才是大數據產生的最根本原因。
表2 典型大數據應用的比較
正如Google 的首席經濟學家Hal Varian 所說,數據是廣泛可用的,所缺乏的是從中提取出知識的能力。數據收集的根本目的是根據需求從數據中提取有用的知識,并將其應用到具體的領域之中。不同領域的大數據應用有不同的特點,表2 列舉了若干具有代表性的大數據應用及其特征。
正是由于大數據的廣泛存在,才使得大數據問題的解決很具挑戰性。而它的廣泛應用,則促使越來越多的人開始關注和研究大數據問題。
3、大數據處理框架
3.1 大數據處理模式
大數據的應用類型很多,主要的處理模式可以分為流處理(Stream Processing)和批處理(Batch Processing)兩種。批處理是先存儲后處理(Store-then-process),而流處理則是直接處理(Straight-through processing)。
3.1.1 流處理
流處理的基本理念是數據的價值會隨著時間的流逝而不斷減少。因此盡可能快的對最新的數據做出分析并給出結果是所有流數據處理模式的共同目標。需要采用流數據處理的大數據應用場景主要有網頁點擊數的實時統計、傳感器網絡、金融中的高頻交易等。
流處理的處理模式將數據視為流,源源不斷的數據組成了數據流。當新的數據到來時就立刻處理并返回所需的結果。圖1是流處理中基本的數據流模型:
圖1 基本的數據流模型
數據的實時處理是一個很有挑戰性的工作,數據流本身具有持續達到、速度快且規模巨大等特點,因此通常不會對所有的數據進行永久化存儲,而且數據環境處在不斷的變化之中,系統很難準確掌握整個數據的全貌。由于響應時間的要求,流處理的過程基本在內存中完成,其處理方式更多的依賴于在內存中設計巧妙的概要數據結構(Synopsis data structure),內存容量是限制流處理模型的一個主要瓶頸。以PCM(相變存儲器)為代表的SCM(Storage ClassMemory,儲存級內存)設備的出現或許可以使內存未來不再成為流處理模型的制約。
數據流的理論及技術研究已經有十幾年的歷史,目前仍舊是研究熱點。于此同時很多實際系統也已開發和得到廣泛的應用,比較代表性的開源系統如Twitter 的Storm、Yahoo的S4以及Linkedin 的Kafka等。
3.1.2 批處理
Google 公司在2004 年提出的MapReduce編程模型是最具代表性的批處理模式。一個完整的MapReduce 過程如圖2所示:
圖2 MapReduce執行流程圖
MapReduce模型首先將用戶的原始數據源進行分塊,然后分別交給不同的Map任務區處理。Map任務從輸入中解析出Key/Value對集合,然后對這些集合執行用戶自行定義的Map函數得到中間結果,并將該結果寫入本地硬盤。Reduce任務從硬盤上讀取數據之后,會根據key 值進行排序,將具有相同key 值的組織在一起。最后用戶自定義的Reduce函數會作用于這些排好序的結果并輸出最終結果。
從MapReduce的處理過程我們可以看出,MapReduce的核心設計思想在于:
1)將問題分而治之;
2)把計算推到數據而不是把數據推到計算,有效的避免數據傳輸過程中產生的大量通訊開銷。
MapReduce模型簡單,且現實中很多問題都可用MapReduce模型來表示。因此該模型公開后,立刻受到極大的關注,并在生物信息學、文本挖掘等領域得到廣泛的應用。
無論是流處理還是批處理,都是大數據處理的可行思路。大數據的應用類型很多,在實際的大數據處理中,常常并不是簡單的只使用其中的某一種,而是將二者結合起來。互聯網是大數據最重要的來源之一,很多互聯網公司根據處理時間的要求將自己的業務劃分為在線(Online)、近線(Nearline)和離線(Offline),比如著名的職業社交網站Linkedin。這種劃分方式是按處理所耗時間來劃分的。其中在線的處理時間一般在秒級,甚至是毫秒級,因此通常采用上面所說的流處理。離線的處理時間可以以天為基本單位,基本采用批處理方式,這種方式可以最大限度的利用系統I/O。近線的處理時間一般在分鐘級或者是小時級,對其處理模型并沒有特別的要求,可以根據需求靈活選擇。但在實際中多采用批處理模式。
3.2 大數據處理的基本流程
大數據的數據來源廣泛,應用需求和數據類型都不盡相同,但是最基本的處理流程一致。海量Web 數據的處理是一類非常典型的大數據應用,從中可以歸納出大數據處理的最基本流程。ScholarSpace由中國人民大學網絡與移動數據管理實驗室(WAMDM)開發,目標是建立一個“以人為本”,即以作者為中心來展示多學科中文文獻的集成數據庫系統。 該系統已經從最初的計算機領域擴展到包括經濟、法律等人文社會科學在內的多領域。從數據抽取和集成,一直到最終的結果展示,ScholarSpace 完整的體現出大數據處理的一般流程。在其基礎上我們歸納出大數據的基本流程,如圖3 所示:
圖3 大數據處理基本流程
整個大數據的處理流程可以定義為在合適工具的輔助下,對廣泛異構的數據源進行抽取和集成,結果按照一定的標準統一存儲。利用合適的數據分析技術對存儲的數據進行分析,從中提取有益的知識并利用恰當的方式將結果展現給終端用戶。具體來說可以分為數據抽取與集成、數據分析以及數據解釋。
核心關注:拓步ERP系統平臺是覆蓋了眾多的業務領域、行業應用,蘊涵了豐富的ERP管理思想,集成了ERP軟件業務管理理念,功能涉及供應鏈、成本、制造、CRM、HR等眾多業務領域的管理,全面涵蓋了企業關注ERP管理系統的核心領域,是眾多中小企業信息化建設首選的ERP管理軟件信賴品牌。
轉載請注明出處:拓步ERP資訊網http://m.hanmeixuan.com/
本文標題:大數據管理:概念、技術與挑戰(上)