大數據,需要應對海量化和快增長的存儲,這要求底層硬件架構和文件系統在性價比上要大大高于傳統技術,能夠彈性擴張存儲容量。谷歌的GFS和Hadoop的HDFS奠定了大數據存儲技術的基礎。另外,大數據對存儲技術提出的另一個挑戰是多種數據格式的適應能力,因此現在大數據底層的存儲層不只是HDFS,還有HBase和Kudu等存儲架構。
區塊鏈,是比特幣的底層技術架構,它在本質上是一種去中心化的分布式賬本。區塊鏈技術作為一種持續增長的、按序整理成區塊的鏈式數據結構,通過網絡中多個節點共同參與數據的計算和記錄,并且互相驗證其信息的有效性。從這一點來說,區塊鏈技術也是一種特定的數據持久化技術。由于去中心化在安全、便捷方面的特性,很多業內人士看好其發展,認為它是對現有互聯網技術的升級與補充。
分布式計算:MapReduce vs. 共識機制
大數據的分析挖掘是數據密集型計算,需要巨大的分布式計算能力。節點管理、任務調度、容錯和高可靠性是關鍵技術。Google和Hadoop的MapReduce是這種分布式計算技術的代表,通過添加服務器節點可線性擴展系統的總處理能力(Scale Out),在成本和可擴展性上都有巨大的優勢。現在,除了批計算,大數據還包括了流計算、圖計算、實時計算、交互查詢等計算框架。
區塊鏈的共識機制,就是所有分布式節之間怎么達成共識,通過算法來生成和更新數據,去認定一個記錄的有效性,這既是認定的手段,也是防止篡改的手段。區塊鏈主要包括四種不同的共識機制,適用于不同的應用場景,在效率和安全性之間取得平衡。以比特幣為例,采用的是“工作量證明”(Proof Of Work,簡稱POW),只有在控制了全網超過51%的記賬節點的情況下,才有可能偽造出一條不存在的記錄。
區塊鏈是純粹意義上的分布式系統
商業需要集中,希望通過產品實現更好的控制和更高的利潤。但隨著產品集中度的不斷上升,系統會越來越復雜,實現的難度越來越大,溝通、交流和管理的成本也越來越高,最終變得不經濟。
社會需要分工,讓專業的人做專業的事,涂爾干的《社會分工論》談到,“分工使社會像有機體一樣,每個成員都為社會整體服務,同時又不能脫離整體,分工就像社會的紐帶,故謂之‘有機團結’。”
分布式技術的誕生,正是基于這種思想。產品功能被分解并分布到不同的節點上去完成,節點之間通過網絡實現溝通。分布式系統中的一些節點或因為商業上的成功,重新成為“集中化”的節點,但隨著時代的改變,它們終將會進入新一輪的分布式周期。如此往復。
集中和分布不是光譜的兩端,任何偉大的產品,都是商業和技術的“有機團結”。
以上是區塊鏈與大數據之間的一些相同點,接下來聊一聊兩者之間的不同點。
兩者屬于不同的時代,區塊鏈繼大數據之后的又一次技術革命。
兩個技術處于不同的生命周期
——Gartner Hype Cycle
技術成熟度曲線(The Hype Cycle)是咨詢公司Gartner用來分析和預測各種新科技的成熟演變速度及所需時間著名工具。
“大數據”與“區塊鏈”在Gartner歷年的《技術成熟度曲線》中的出現情況
2011年,“大數據”第一次上榜,位于技術萌芽期的爬坡階段,當時還統稱為“‘Big Data’ and Extreme Information Processing and Management”(“大數據”和極端信息處理和管理)。2012年更進一步,并在2013年幾乎達到了過熱期頂峰。經歷了2014年的下滑,從2015年開始,“大數據”突然從曲線中消失,可解讀為Gartner對大數據的定位已從“新興”轉為“主流”。當前,大數據對于企業的意義已從能力要素上升為戰略核心。
相對而言,“區塊鏈”直到2016年才第一次出現在《技術成熟度曲線》中,并直接進入“過熱期”。總的來看,“大數據”和“區塊鏈”所處的生命周期階段大不相同,兩者約有5年左右的差距。
主要差異在哪
大數據通常用來描述數據集足夠大,足夠復雜,以致很難用傳統的方式來處理。而區塊鏈能承載的信息數據是有限的,離“大數據”標準還差得很遠。區塊鏈與大數據有幾個顯著差異:
結構化vs非結構化:區塊鏈是結構定義嚴謹的塊,通過指針組成的鏈,典型的結構化數據,而大數據需要處理的更多的是非結構化數據;
獨立vs整合:區塊鏈系統為保證安全性,信息是相對獨立的,而大數據著重的是信息的整合分析;
直接vs間接:區塊鏈系統本身就是一個數據庫,而大數據指的是對數據的深度分析和挖掘,是一種間接的數據;
數學vs數據:區塊鏈試圖用數學說話,區塊鏈主張“代碼即法律”,而大數據試圖用數據說話;
匿名vs個性:區塊鏈是匿名的(公開賬本,匿名擁有者,相對于傳統金融機構的公開賬號,賬本保密),而大數據有意的是個性化;
差異能否調和
對一個分布式系統來說,存在CAP定理(CAP theorem)又被稱作布魯爾定理(Brewer's theorem),它指出一個分布式系統不可能同時滿足以下三點:
一致性(Consistence):在分布式系統中的所有數據備份,在同一時刻是否同樣的值。
可用性(Availability):在集群中一部分節點故障后,集群整體是否還能響應客戶端的讀寫請求。
分區容忍性(Partition tolerance):集群中的某些節點在無法聯系后,集群整體是否還能繼續進行服務。
由于當前的網絡硬件肯定會出現延遲丟包等問題,所以分區容忍性是我們必須需要實現的。換句話說,CAP定理表明我們必須在一致性(C)和可用性(A)之間進行權衡。
具體到區塊鏈和大數據來說,大數據是以犧牲一致性(C)來換取可用性(A)和分區容忍性(P)的,而區塊鏈卻優先保證了一致性(C)。
通過CAP定理,我們知道區塊鏈和大數據的諸多特性無法兩全,需要針對具體場景,在多樣化的取舍方案下設計出多樣化的系統。
區塊鏈是一種不可篡改的、全歷史的分布式數據庫存儲技術,巨大的區塊鏈數據集合包含著每一筆交易的全部歷史,隨著區塊鏈技術的應用迅速發展,數據規模會越來越大,不同業務場景區塊鏈的數據融合會進一步擴大數據規模和豐富性。
區塊鏈以其可信任性、安全性和不可篡改性,讓更多數據被解放出來,推進數據的海量增長。區塊鏈的可追溯性使得數據從采集、交易、流通,以及計算分析的每一步記錄都可以留存在區塊鏈上,使得數據的質量獲得前所未有的強信任背書,也保證了數據分析結果的正確性和數據挖掘的效果。
區塊鏈能夠進一步規范數據的使用,精細化授權范圍。脫敏后的數據交易流通,則有利于突破信息孤島,建立數據橫向流通機制,形成“社會化大數據”。基于區塊鏈的價值轉移網絡,逐步推動形成基于全球化的數據交易場景。
區塊鏈提供的是賬本的完整性,數據統計分析的能力較弱。大數據則具備海量數據存儲技術和靈活高效的分析技術,極大提升區塊鏈數據的價值和使用空間。
大數據+區塊鏈
在大數據中使用區塊鏈技術,大數據的技術生態百花齊放,沒有哪個軟件能解決所有的問題,能解決問題也是在一個范圍內,即使是Spark、Flink等。在強調透明性、安全性的場景下,區塊鏈有其用武之地。在大數據的系統上使用區塊鏈技術,可以使得數據不能被隨意添加、修改和刪除,當然其時間和數據量級是有限度的。
以時間、數據量為坐標軸,列出了目前大數據引擎大致擅長處理數據的范圍,區塊鏈可在其中成為一種很好的補充
比如,對于存檔的歷史數據,因為它們是不能被修改的,我們可以對大數據作Hash處理,并加上時間戳,存在區塊鏈之上。在未來的某一時刻,當我們需要驗證原始數據地真實性時,可以對對應的數據做同樣的Hash處理,如果得出的答案是相同的,則說明數據是沒有被篡改過的。或者,只對匯總數據和結果做處理,這樣,只需要處理增量數據處理,那么應對的數據量級和吞吐量級可能是今天的區塊鏈或改善過的系統可以處理的。
通過把大數據與區塊鏈相結合,能讓區塊鏈中的數據更有價值,也能讓大數據的預測分析落實為行動,它們都將是數字經濟時代的基石。