熱線電話:13121318867

登錄
首頁職業發展如何做好大數據的實時復雜查詢
如何做好大數據的實時復雜查詢
2016-12-07
收藏

如何做好大數據的實時復雜查詢

在過去的幾年里,我們生活中幾乎每一個功能都依賴于實時應用。無論是通過社交媒體更新我們的朋友圈,在線購物,還是等待客戶服務的立即回應,我們已經變得越來越依賴快速有效的得到我們想要的信息。

然而我們不知道的是,這其中存在幾個挑戰:

在這些系統中流動著的大量數據

·需要一個高度可用的應用程序和數據存儲

·高性能的要求·支持復雜查詢。

·事務支持

我們可以嘗試把這些挑戰轉化為3個部分:大數據,實時性和復雜查詢。

第一個挑戰-大數據

大數據開始,要解決這些問題,我們有很多可以利用的解決方案。 最流行的解決方案是NoSQL數據庫和Hadoop。 它們屬于分布式環境,其中存在多個包含數據的分區。 通過分區間的復制,以確保在某一臺服務器宕機時,我們可以從另一臺服務器獲取數據(大多數是最終一致的,這意味著副本可能沒有最新的數據更新,但是這屬于另外的討論范疇)。 那么,如果我們采用這些NoSQL數據庫,我以很容易地克服數據量和高可用性問題所帶來的挑戰。 它也是一種可擴展的解決方案,可以添加更多的計算和存儲資源,這些將能夠支持更多的數據和吞吐量。

第二個挑戰-實時

實時是面臨的主要挑戰。目前主流的解決方案主要是基于磁盤的,這意味著沒有對實時部分的支持,面對復雜的查詢可能需要幾分鐘,有時甚至更多。 這就是為什么我們需要內存數據網格,它在內存中存儲了部分數據或全部數據。 當數據存儲在內存中,計算是可以做到非??焖俚氖褂肦AM而不是I / O訪問。

但這種解決方案也不是那么容易。 我們也許可以在RAM中存儲幾個TB數據,但如果我們有更多的數據,那怎么辦? 比如說50TB ......即使如今RAM變得便宜得多,但50TB也將是非常昂貴的。 此外,這也導致管理一個數據網格集群的機器數量過多。 一些內存數據網格解決方案提供了另一種方法,在磁盤中存儲一些非活躍的數據。

固態硬盤可以為我們提供一個將二者合二為一的機會,前提是我們使用正確。雖然SSD并不像RAM一樣快,但它比正常的磁盤快得多,而且比RAM便宜很多。 現在有2種方式,我們可以利用固態硬盤來實現非常大的集群和實時復雜查詢:

*快速索引模式 - 我們將查詢的字段存儲在RAM中,將其余部分都存儲在SSD上。 例如,如果我們有一個包含很多字段的大對象,我們只能在RAM中存儲其中的一些索引,將一些次要字段存儲在固態硬盤中,所以相比于常規磁盤,我們依然可以在它們之上進行非??斓牟樵?。

*熱數據---最近被使用的對象將被存儲在RAM中,其他對象將被放入SSD。 這種方法還可能具有實時性的挑戰,因為查詢引擎在SSD上進行需要全部數據的復雜運算,而不是在RAM上。

第三個挑戰-復雜查詢

還剩下復雜查詢這部分挑戰,大多數應用在關系型數據庫中有實時分析的需求,我們可以很容易地通過聚合查詢實現 (avg, min, max, sum, group by)。而分布式環境中,這要復雜得多,因為數據在集群的分區中,聚和就意味著我們要么需要把所有的數據傳輸到客戶端(這不是一種好的選擇,因為它實在是太多了)或使用MapReduce邏輯模型,使用Map Reduce邏輯模型是一種不錯解決方案,只不過沒有簡單SQL group by來的更直觀而已。


數據分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數據分析師資訊
更多

OK
客服在線
立即咨詢
日韩人妻系列无码专区视频,先锋高清无码,无码免费视欧非,国精产品一区一区三区无码
客服在線
立即咨詢