
大型互聯網站解決海量數據的常見策略
大型互聯網站的數據存儲與傳統存儲環境相比不僅是一個服務器、一個數據庫那么簡單,而是由網絡設備、存儲設備、應用服務器、公用訪問接口、應用程序 等多個部分組成的復雜系統。分為 業務數據層、計算層、數據倉儲、數據備份,通過應用服務器軟件提供數據存儲服務,并且通過監控工具對存儲單元監控。
隨著系統中用戶數據量的線性增長,數據量將會越來越多。在這樣一個數據不斷膨脹的環境中,數據已經如洪水般洶涌泛濫。數據查找和調用困難,在海量數據中一些用戶提交的請求往往要等到第二天才能得知結果,直接影響到了用戶滿意度的提升和新業務的布局。在技術上而言,這一特點使得RDBMS在大型應用場景被大幅限制,唯一的可選方案是Scale Out,通過增加多個邏輯單元的資源,并使它們如同一個集中的資源那樣提供服務來實現系統的擴展性。
系統中的數據就好比我們家里的物品,衣服放在衣柜里,碟子放在碗櫥里,數據庫、存儲系統就好比你的衣柜和碗櫥是一個存放的容器,衣服和碟子就好比不同的數據,將不同類型的東西放入合適的存儲空間里面,這樣系統的效率和利用率將會更高,所以我們將會做出如下設計,如圖所示:
對于大型系統存儲單元的結構模型我們分為6個部分組成,清單如下:
1. 業務數據層
各類業務所產生的各種文件類型的數據,其中包含 用戶信息、用戶操作記錄、實時業務數據、手機客戶端升級應用程序、圖片,等。
2. 計算層
針對不同的數據格式、不同類型的數據文件,通過不同的工具、計算方法進行操作,針對大量的數據計算采用一些分布式、并行計算的算法,例如:MapReduce,BSP。并且對一部分的數據進行緩存,緩解對存儲應用服務器的壓力。
3. 數據存儲層
對于海量數據的查詢與存儲,特別是針對用戶行為日志操作,需要使用到一些列式數據庫服務器,對于處理業務和一些業務規則的數據依然存放在關系型數據庫中,將采用MySQL來存儲。
4. 數據倉儲
數據存儲主要是針對于用戶行為日志和用戶行為分析,也是系統中數據量產生較大的一個環節,將會采用Apache Hive、Pig、Mathout 對數據倉儲進行構建。
5. 數據備份
分為在線數據備份和離線數據備份,數據備份環節需要經過運維經驗的積累,根據業務和用戶訪問量進行定制合理的備份規律。
6. 硬件
硬件環境是存儲單元最基礎的部分,分為磁盤、內存、網絡設備存儲,將不同的業務數據、文件存儲在不同的硬件設備上。
技術實現
對于系統不同的業務數據和應用服務器的架構需要采用不同的讀寫方式,以及數據存儲類型存放,數據倉儲構建,數據冷熱分離、數據索引多個部分組成。例如:業務應用程序、日志采集代理、用戶空間文件系統(Filesystem
in Userspace)。Data Access Proxy Layer(DDAL/Cache
Handler)、OLAP、日志服務器、Oracle(暫定)、MySQL、Redis、Hive、HDFS、Moosefs。
如圖所示:
針對以上設計架構,描述清單如下:
1. Data Access Proxy Layer
統稱數據訪問代理層(簡稱 DAPL),封裝了DDAL和Cache
Handler層,抽象的對編寫的應用程序進行了劃分,便于擴展和維護,例如:需要對HDFS或者圖形數據庫操作,上層不需要知道HDFS具體操作,只需要關注提供的接口。DAPL封裝了很多訪問各種數據源的讀寫策略。因此,可以保證對不同數據庫、數據源操作的事務完整性。
2. DDAL
統稱分布式數據訪問層(簡稱
DDAL)主要針對關系數據庫的讀寫分離操作,需要做到讀寫分離,首先需要對傳入的SQL語句進行解析,并且采用Round-Robin算法負載分載對數據大量讀取的操作,在代碼實現中將使用MySQL-JDBC中的參數配置實現對MySQL-Slave的讀取壓力分載。
3. Cache Handler
與DDAL的相似,具體區別在于自己實現了Round-Robin算法負載分載對數據大量讀取的操作,并且能在Redis Master當機的狀態下重新指派新的Master進行寫的操作。
4. Redis一主多從
對緩存數據進行讀寫分離,減少單臺機器的I/O瓶頸,值得一提的是Cache不是可靠的存儲,所以在設計時,需要容許Cache的數據丟失,因此,Cache的數據全部失效時,會從數據庫里重新裝載。
5. MySQL雙主多從
這種方式是MySQL架構設計中最折中的方案,對數據的訪問壓力分載和數據的可靠性都有了相應的保障。前端2臺Master
MySQL相互進行數據備份,后端大量的Slave
MySQL對Master寫入的數據進行同步,所以每臺機器節點上的MySQL數據庫中的數據都是一致的,并且DDAL應用程序將數據輪詢寫入Master
MySQL數據庫中。
6. 數據庫讀寫分離
主要采用mysql的策略,學習MySQL-Prxoy的策略,自己開發對MySQL書籍節點進行讀寫分離的方法,MySQL驅動支持讀寫分離的數據完整性,當數據量超大規模的時候將會采用Sharding策略。
7. 緩存讀寫分離
緩存Redis的策略,采用自己開發的應用程序需要實現Round Robin算法,對Redis Master和Slave緩存集群進行讀寫分離操作。
8. ETL Tools
采用Apache Hadoop項目中的Pig對海量的行為數據進行清洗,Pig可以針對有規律的半結構化數據執行類似SQL的腳本,并且可以將計算壓力分載到每臺服務器上進行分布式、并行處理。
9. Hive集群
針對數據倉庫的建設由Apache Hive進行構建,是一個建立在Hadoop上的數據倉庫框架,它提供了一個方便的數據集成方法和類似SQL的Hive QL查詢語言,實現了Map/Reduce算法支持在Hadoop框架上進行大規模數據分析。
10. HDFS分布式文件系統
Hive中的數據全部存儲在Hadoop分布式文件系統中,所有被存儲的數據都會有數據的存儲副本,這樣對數據的可靠性有了保障。
11. Moosefs分布式文件系統
與上面提到的HDFS一個文件系統是有區別的,Moosefs不需要任何客戶端程序對分布式文件進行操作的服務器,可以直接與任何運行環境進行對接,而且服務端也有副本復制的功能。
12. 冷熱數據分離
將系統中產生的進行歸類存放,將用戶更多關心、熱門話題等內容
抽象為“最近幾天”的“熱數據”,而越早的數據我們在設計中抽象的分為“冷數據”。由此可見,“熱節點”存放最新的、被訪問頻率較高的數據。對于這部分數據,我們希望能給用戶提供盡可能快的查詢速度,因此無論在硬件還是軟件的選擇上都會有了明顯的區分,例如:最近常訪問頻率高的數據將會存儲在系統緩存中,需要經常性被的業務數據將會存儲在MySQL或者Oracle數據庫系統中,
數據分析咨詢請掃描二維碼
若不方便掃碼,搜微信號:CDAshujufenxi
CDA數據分析師證書考試體系(更新于2025年05月22日)
2025-05-26解碼數據基因:從數字敏感度到邏輯思維 每當看到超市貨架上商品的排列變化,你是否會聯想到背后的銷售數據波動?三年前在零售行 ...
2025-05-23在本文中,我們將探討 AI 為何能夠加速數據分析、如何在每個步驟中實現數據分析自動化以及使用哪些工具。 數據分析中的AI是什么 ...
2025-05-20當數據遇見人生:我的第一個分析項目 記得三年前接手第一個數據分析項目時,我面對Excel里密密麻麻的銷售數據手足無措。那些跳動 ...
2025-05-20在數字化運營的時代,企業每天都在產生海量數據:用戶點擊行為、商品銷售記錄、廣告投放反饋…… 這些數據就像散落的拼圖,而相 ...
2025-05-19在當今數字化營銷時代,小紅書作為國內領先的社交電商平臺,其銷售數據蘊含著巨大的商業價值。通過對小紅書銷售數據的深入分析, ...
2025-05-16Excel作為最常用的數據分析工具,有沒有什么工具可以幫助我們快速地使用excel表格,只要輕松幾步甚至輸入幾項指令就能搞定呢? ...
2025-05-15數據,如同無形的燃料,驅動著現代社會的運轉。從全球互聯網用戶每天產生的2.5億TB數據,到制造業的傳感器、金融交易 ...
2025-05-15大數據是什么_數據分析師培訓 其實,現在的大數據指的并不僅僅是海量數據,更準確而言是對大數據分析的方法。傳統的數 ...
2025-05-14CDA持證人簡介: 萬木,CDA L1持證人,某電商中廠BI工程師 ,5年數據經驗1年BI內訓師,高級數據分析師,擁有豐富的行業經驗。 ...
2025-05-13CDA持證人簡介: 王明月 ,CDA 數據分析師二級持證人,2年數據產品工作經驗,管理學博士在讀。 學習入口:https://edu.cda.cn/g ...
2025-05-12CDA持證人簡介: 楊貞璽 ,CDA一級持證人,鄭州大學情報學碩士研究生,某上市公司數據分析師。 學習入口:https://edu.cda.cn/g ...
2025-05-09CDA持證人簡介 程靖 CDA會員大咖,暢銷書《小白學產品》作者,13年頂級互聯網公司產品經理相關經驗,曾在百度、美團、阿里等 ...
2025-05-07相信很多做數據分析的小伙伴,都接到過一些高階的數據分析需求,實現的過程需要用到一些數據獲取,數據清洗轉換,建模方法等,這 ...
2025-05-06以下的文章內容來源于劉靜老師的專欄,如果您想閱讀專欄《10大業務分析模型突破業務瓶頸》,點擊下方鏈接 https://edu.cda.cn/g ...
2025-04-30CDA持證人簡介: 邱立峰 CDA 數據分析師二級持證人,數字化轉型專家,數據治理專家,高級數據分析師,擁有豐富的行業經驗。 ...
2025-04-29CDA持證人簡介: 程靖 CDA會員大咖,暢銷書《小白學產品》作者,13年頂級互聯網公司產品經理相關經驗,曾在百度,美團,阿里等 ...
2025-04-28CDA持證人簡介: 居瑜 ,CDA一級持證人國企財務經理,13年財務管理運營經驗,在數據分析就業和實踐經驗方面有著豐富的積累和經 ...
2025-04-27數據分析在當今信息時代發揮著重要作用。單因素方差分析(One-Way ANOVA)是一種關鍵的統計方法,用于比較三個或更多獨立樣本組 ...
2025-04-25CDA持證人簡介: 居瑜 ,CDA一級持證人國企財務經理,13年財務管理運營經驗,在數據分析就業和實踐經驗方面有著豐富的積累和經 ...
2025-04-25