大數據的形成是因為源源不斷產生的數據。在高容量環(huán)境中,數據輸入的速度非???,但仍然需要進行分析和存儲?! oltDB公司軟件架構師
大數據的形成是因為源源不斷產生的數據。在高容量環(huán)境中,數據輸入的速度非???,但仍然需要進行分析和存儲。
VoltDB公司軟件架構師John Hugg建議,我們不應該簡單地存儲數據以便以后進行分析,我們應該實現這樣的情況,當數據被輸入時就可以被分析,同時通過Apache Kafka等工具來保持很高的輸入率。
十幾年前,我們幾乎不可能使用商品硬件來分析PB級歷史數據?,F在,通過數千個節(jié)點構建的Hadoop集群非常常見。Hadoop等開源技術讓我們看到了如何使用商品和虛擬化硬件來有效處理PB級數據,并且這種技術可以很容易地實現。因此,大數據開始出現。
現在我們正看到一個類似的數據革命的發(fā)生,即所謂的快數據(Fast Data)。首先,讓我們看看快數據的定義。大數據是指以驚人速度產生的大量數據,例如點擊數據、金融股票數據、日志聚集或者
傳感器數據。通常情況下,這些事件每秒發(fā)生數千或數萬次。無怪乎這種類型的數據通常被稱為“水龍管”。
對于大數據,我們并不是以數據倉庫熟悉的千兆字節(jié)、TB和PB級來測量數據,我們是從時間的角度來計算:每秒多少MB、每小時多少GB或者每天多少TB。我們談論的是速度以及容量,這是大數據和數據倉庫之間的核心差異。大數據不僅大,而且很快。
快速移動的數據被轉儲到HDFS(分析型RDBMS),大數據的好處就失去了,因為當事情發(fā)生時,我們將無法發(fā)出警報。大數據代表著活躍數據、即時狀態(tài)。而數據倉庫則是通過分析歷史數據來了解過去和預測未來。
對數據進行即時分析被認為是昂貴且不切實際的,特別是在商用硬件上。而快數據的價值在于,重新規(guī)劃消息隊列和流媒體系統(tǒng)(例如開源Kafka和Storm),并通過引入開源NoSQL和NewSQL產品,重新構建數據庫的部署。
從快數據獲取價值
從輸入數據獲得價值的最好方法是在它達到的瞬間做出反應。如果你在批量處理輸入數據,你已經失去了最佳時機和數據中的價值。
為了處理以每秒數千到數百萬事件的數據,你將需要兩種技術:首先,你需要能夠快速提供事件的流系統(tǒng);其次,能夠快速處理每個數據的數據倉庫。
快遞快數據
在過去幾年出現了兩個流行的流媒體:Apache Storm和Apache Kafka。Storm最初是由Twitter的工程團隊開發(fā),它可以穩(wěn)定地處理每秒數百萬的數據流。Kafka則是由LinkedIn的工程團隊開發(fā),這是一個高度分布式消息隊列系統(tǒng)。這兩個流系統(tǒng)都解決了處理快數據的需求。不過,Kafka有些不同。
Kafka被設計為一個消息隊列,并能夠解決現有技術的已知問題。這是具有無限可擴展性、分布式部署、多租戶和強大持久性的雙重隊列。企業(yè)可以部署一個Kafka集群來滿足其所有消息隊列需求。在其核心,Kafka可以傳遞消息。它并不支持任何形式的處理或查詢。
處理快數據
消息傳遞只是解決方案的一部分。傳統(tǒng)關系型數據往往在性能方面受到限制,有些可能能夠以高速率存儲數據,但它們無法實時驗證或操作數據。NoSQL系統(tǒng)可以提供集群和高性能,但犧牲了傳統(tǒng)SQL系統(tǒng)提供的動力和安全性。對于基本的大數據處理,NoSQL解決方案可能會滿足你的業(yè)務需求。然而,如果你試圖執(zhí)行復雜的查詢和業(yè)務邏輯操作,內存NewSQL解決方案可以滿足你的需求,無論是在性能還是事務的復雜性方面。
與Kafka一樣,一些NewSQL系統(tǒng)建立在無共享集群的基礎上。負載分布在集群節(jié)點之間,以確保性能。數據復制在集群節(jié)點之間復制,以確保安全性和可用性。為了處理增加的負載,節(jié)點可以透明地添加到集群。節(jié)點可能被刪除,或者出現故障,而其他集群可以繼續(xù)運作。該數據庫和消息隊列并沒有單點故障。這些功能是可擴展系統(tǒng)的特點。
此外,Kafka和一些NewSQL系統(tǒng)能夠利用集群和動態(tài)拓撲來擴展。Kafka提供消息排序保證,而一些內存處理引擎則提供序列化一致性和ACID語義。這些系統(tǒng)都是用集群感知客戶端來提供更多功能或者簡化配置。最后,它們都通過不同機器的磁盤來實現冗余耐用性,而不是RAID或其他本地存儲方案。
大數據工具包
對于處理大數據,你需要怎樣的系統(tǒng)?
具有本地無共享集群的冗余性和可擴展含蓄優(yōu)勢的系統(tǒng)
依靠內存存儲和處理來實現每節(jié)點高吞吐量的系統(tǒng)
在數據輸入時處理數據的系統(tǒng)。系統(tǒng)是否能執(zhí)行條件邏輯?是否能夠查詢千兆字節(jié)或更多現有狀態(tài)來通知決策?
隔離操作以及對其操作作出有力保障的系統(tǒng)。這允許用戶編寫更簡單的代碼,專注于業(yè)務問題,而不是處理并發(fā)問題或數據分歧。有些系統(tǒng)提供一致性,但是極大地降低了系統(tǒng)性能。
具有這些特定的系統(tǒng)源自于NewSQL、NoSQL和Hadoop社區(qū),但不同的系統(tǒng)會有自己的優(yōu)點和缺點。對于想要實時對數據采取行動的企業(yè),這些工具可以減少理解大量數據的復雜性。
Kafka提供了安全的高可用的方法來在不同生產者和消費者之間移動數據,同時提供了性能來讓管理員放心。內存數據庫可以提供完整的關系型引擎,具有強大的事務邏輯、計數和聚合,都具有足夠的可擴展性來滿足任何負載。這種系統(tǒng)不僅是作為一種關系型數據庫,這種系統(tǒng)還可以作為補充Kafka的消息基礎設施的處理引擎。 無論你的企業(yè)需求如何,這些工具可以幫助你更快地了解數據。
免責聲明:本站所使用的字體和圖片文字等素材部分來源于互聯(lián)網共享平臺。如使用任何字體和圖片文字有冒犯其版權所有方的,皆為無意。如您是字體廠商、圖片文字廠商等版權方,且不允許本站使用您的字體和圖片文字等素材,請聯(lián)系我們,本站核實后將立即刪除!任何版權方從未通知聯(lián)系本站管理者停止使用,并索要賠償或上訴法院的,均視為新型網絡碰瓷及敲詐勒索,將不予任何的法律和經濟賠償!敬請諒解!