高效經營 Big Data:MongoDB資料庫系統管理與開發手札 | 被動收入的投資秘訣 - 2024年9月
![](https://www.books.com.tw/img/001/076/90/0010769097.jpg)
高效經營 Big Data:MongoDB資料庫系統管理與開發手札
本書儘量從一個學習與實作者的角度,本著力求精簡、突出精髓的原則,剖析了MongoDB在生產環境中使用需要知道的所有內容,全書分4 部分,共13章,每章的內容簡單介紹如下。
‧第1 章:本章主要從什麼是MongoDB以及幾個核心處理程序兩方面概述了MongoDB,讓讀者整體上對MongoDB的系統結構有個認識。
‧第2 章:本章主要介紹了MongoDB的查詢語言系統,包含各種查詢選擇器以及查詢選項,這是對任何一個資料庫都有的內容。
‧第3 章:本章主要介紹了MongoDB的索引與查詢最佳化。
‧第4 章:本章主要介紹了MongoDB的增、刪、改敘述。
‧第5 章:本章主要從底層儲存視圖與寫入操作流程剖析了MongoDB的Journaling 記錄檔功能。
‧第6 章:本章主要介紹了MongoDB的聚集分析架構與MapReduce的程式設計模型。
‧第7 章:本章主要介紹了複製集的功能與工作機制,包含資料同步、容錯移轉、寫關注等,這些是MongoDB的核心。
‧第8 章:本章主要介紹了分片叢集,包含部署架構、分片、讀寫分離、片鍵選擇等內容,這是MongoDB不同於傳統關聯式資料庫地方,也是實現巨量資料分散式儲存的關鍵。
‧第9 章:本章主要介紹了分散式檔案系統的GridFS檔案,實現二進位資料的儲存。
‧第10 章:本章主要介紹了對MongoDB的管理與監控,包含資料的匯入匯出、備份恢復以及執行狀態的監控。
‧第11 章:本章主要介紹許可權控制,實現不同資料庫對不同角色使用者的許可權分配。
‧第12 章:本章主要從應用程式開發角度,介紹了MongoDB的PHP 驅動介面。
‧第13 章:本章主要介紹了一個完整的電子商務平台,資料庫使用的是MongoDB並對前面所有章節的知識進行歸納,內容包含電子商務平台資料庫表的設計、核心程式的撰寫、前台介面的原型圖設計等,還介紹了開發Web 應用程式常用的PHP 架構Codeigniter和前端開發架構Bootstrap 等。
P A R T I 基礎知識
CH01 大數據與雲端運算
1.1 什麼是大數據
1.2 什麼是雲端運算
1.3 大數據與雲端運算
1.4 什麼是MongoDB
1.5 大數據與MongoDB
1.6 MongoDB特點
1.7 安裝MongoDB
1.8 幾個重要的處理程序介紹
1.8.1 mongod處理程序
1.8.2 mongo 處理程序
1.8.3 其他處理程序
1.9 適合哪些業務
1.10 小結
CH02 查詢語言系統
2.1 查詢選擇器
2.2 查詢投射
2.3 陣列操作
2.4 小結
CH03 索引與查詢最佳化
3.1 索引
3.1.1 單欄位索引
3.1.2 複合索引
3.1.3 陣列的多鍵索引
3.1.4 索引管理
3.2 查詢最佳化
3.3 小結
CH04增改刪操作
4.1 插入敘述
4.2 修改敘述
4.3 刪除敘述
4.4 鎖機制
4.5 小結
P A R T I I 深入了解MongoDB
CH05 Journaling 記錄檔功能
5.1 兩個重要的儲存視圖
5.2 Journaling 工作原理
5.3 小結
CH06 聚集分析
6.1 管線模式進行聚集
6.2 MapReduce模式聚集
6.3 簡單聚集函數
6.4 小結
CH07 複製集
7.1 複製集概述
7.2 複製集工作機制
7.2.1 資料同步
7.2.2 容錯移轉
7.2.3 Write Concern
7.2.4 讀取參考
7.3 小結
CH08 分片叢集
8.1 分片部署架構
8.2 分片工作機制
8.2.1 使集合分片
8.2.2 叢集平衡器
8.2.3 叢集的寫與讀
8.2.4 分片鍵值選擇策略
8.3 小結
CH09 分散式檔案儲存系統
9.1 小檔案儲存
9.2 GridFS檔案儲存
9.3 小結
P A R T I II 監控與管理MongoDB
CH10管理與監控
10.1 資料的匯入匯出
10.2 備份與恢復
10.2.1 單節點dump 備份與恢復
10.2.2 叢集dump 備份恢復策略
10.3 監控
10.3.1 資料庫角度監控指令
10.3.2 作業系統角度監控指令
10.3.3 Web 主控台監控
10.4 小結
CH11許可權控制
11.1 許可權控制API
11.1.1 針對所有資料庫的角色
11.1.2 針對單一資料庫的角色
11.2 複製集與叢集的許可權控制
11.3 小結
P A R T I V 應用實作
CH12 PHP 驅動介面
12.1 開發環境安裝
12.2 驅動介紹
12.3 單實例上的增刪改查
12.4 幾個重要的類別、方法與參數
12.5 複製集上的操作
12.6 分片叢集上的操作
12.7 分散式小檔案存取操作
12.8 分散式大檔案存取操作
12.9 小結
CH13案例:高度可訂製化的電子商務平台
13.1 功能需求
13.2 資料庫表設計
13.3 撰寫MongoDB_driver類別
13.4 CodeIgniter架構
13.4.1 基本介紹
13.4.2 下載與安裝
13.4.3 執行原理
13.4.4 程式示範
13.5 Bootstrap 架構
13.6 前台介面原型圖(編按:本小節為簡中介面)
附錄:常見問題
序
多年來,我一直在和資料庫儲存技術朝夕相處,深知資料儲存技術在整個IT 系統中具有非常重要的作用,尤其是隨著雲端運算時代的到來,所有企業都面臨著巨量的資料資訊,如何處理這些資料成為目前研究的熱點。在過去二十幾年中,資料的儲存是關聯式資料庫的天下,它以高效、穩定、支援交易的優勢幾乎統治了整個企業的儲存業務;但是隨著網際網路的發展,許多新興產業如社群網站、微博、資料採擷等業務快速增長,資料規模變得越來越龐大,高效儲存、檢索、分析這些巨量的資料,關聯式資料庫變得不再適用。前幾年我們還可以看到網路上關於關聯式資料庫與NoSQL資料庫誰優誰劣的激烈討論,如今NoSQL幾乎佔據了各大數據庫討論區討論的大部分版面。一些企業龍頭公司也逐漸將業務移轉到非關聯式資料庫上,NoSQL類型的資料庫也變得越來越成熟。當然,在未來一段時間裡關聯式資料庫如Oracle、DB2、SQL Server 等仍會在交易性要求比較高的企業(如銀行、電信等)發揮它的作用。
另一方面,在資訊技術領域,計算與儲存一直是密不可分的,目前我們身處雲端運算的浪潮中,因此對應的各種雲端儲存技術也呼之欲出。本書將介紹的NoSQL資料庫MongoDB正是許多分散式巨量資料儲存技術中最出色的一種。MongoDB是一種針對文件的分散式資料庫,可擴充,表結構自由,支援豐富的查詢敘述與資料類型,旨在為未來的大數據應用提供高性能的雲端儲存解決方案。當然MongoDB並不是萬能的,隨著了解的深入,我們也會發現它的缺點,這也是本書的宗旨,儘量讓讀者明白它的長處與短處,對於特定的業務選擇最合適的資料庫儲存方案。最後我們希望本書介紹的MongoDB知識能為您在未來的專案中處理巨量資料時提供幫助。