天天看點

《大資料存儲:MongoDB實戰指南》一1.9 适合哪些業務

本節書摘來異步社群《大資料存儲:mongodb實戰指南》一書中的第1章,第1.9節,作者: 郭遠威 , 彭文波 責編: 陳冀康,更多章節内容可以通路雲栖社群“異步社群”公衆号檢視。

大資料存儲:mongodb實戰指南

目前各行各業都離不開資料的存儲與檢索需求,傳統關系資料庫發展了這麼多年,在有些壟斷性行業如電信、銀行等仍然是首選,因為這些行業需要資料的高度一緻性,隻有支援事務的資料庫才能滿足它們的要求。但随着這幾年網際網路業務的發展,資料量越來越大,并發請求也越來越高,一個大系統中隻用一種資料庫并不能很好地滿足全部業務的發展,同時以mongodb為代表的nosql資料庫快速發展,在某些方面展示了它們的優越性,逐漸被采用并取代了系統中的某些部件,總的來說以下幾個方面比較适合使用mongodb這類的資料庫。

1.web應用程式

web應用是一種基于bs模式的程式,業務的特點是讀寫請求都比較高,早期系統的資料量可能很少,但是發展到一定程度後資料量會暴增,這就需要資料存儲架構能夠适應業務的擴充。傳統的關系資料庫表結構都是固定的,增加一個業務或者橫向擴充資料庫都會帶來巨大的工作量。mongodb支援無固定結構的表模型,是以很容易增加或減少表中的字段,适應業務的變化;同時mongodb本身就支援分片叢集,很容易實作水準擴充,将資料分散到叢集中的各個片上,提高了系統的存儲容量和讀寫吞吐量。web應用程式還有一個特點就是“熱資料”讀并發很高,也就是說最新的資料被請求的次數會最多。為了提供讀的性能,在傳統的關系資料将中會采用其他的緩存技術來将這部分資料放在記憶體中,而mongodb本身就支援這一點,它是通過記憶體映射資料檔案來實作的。它會維護一個工作集,将最熱的資料放在記憶體中,不需要其他技術的協助,這為系統開發提供了簡便性,如圖1-3所示。

《大資料存儲:MongoDB實戰指南》一1.9 适合哪些業務

2.緩存系統

這種使用場景是與關系資料庫搭配使用,作為關系資料庫的緩存前端。目前緩存技術有很多種,最常見的就是使用memcached,但是這些緩存系統都有個缺點,就是支援的資料類型有限,查詢語句也有限,隻能儲存少量的資料且不能持久化。而mongodb這些都能支援,是以可以作為緩存使用,如圖1-4所示。

《大資料存儲:MongoDB實戰指南》一1.9 适合哪些業務

3.日志分析系統

這類系統的特點是資料量大,允許部分資料丢失,不會影響整個系統的可靠性。以前将日志直接儲存到作業系統的檔案上,我們需要用其他工具打開日志檔案或編寫工具讀日志進行分析,這樣的話對于大量的日志查詢會比較困難。如果用mongodb資料庫來儲存這些日志,一來可以利用分片叢集使日志系統的容量海量大,二來使用mongodb特有的查詢語句能夠快速找到某條日志記錄。最重要的是mongodb支援聚集分析甚至mapreduce的能力,為大資料的分析和決策提供了強有力的支援,如圖1-5所示。

《大資料存儲:MongoDB實戰指南》一1.9 适合哪些業務