標籤:nosql
| NoSQL基礎概念及MongoDB |
| MongoDB基礎應用 |
| MongoDB索引及複製集 |
| 資料庫分區的概念及Mongodb sharding的實現 |
一、NoSQL基礎概念
NoSQL(Not Only SQL),是一種技術流派,非關係型資料庫;適合用在大資料領域,各種nosql有各自的查詢語句,這也是nosql的缺點之一。
大資料(BigDate)也稱海量資料是一個模糊的概念,像Google、百度收集大量資料,分析現在、預測未來;這些資料通過某些特定的特徵和演算法得出某些預測的結果,這些資料為大資料。
大資料的四種形式:
1、 並行資料庫:關係型資料庫水平切割,分區查詢
2、NoSQL資料庫管理系統:非關聯式模式,分布式,不支援ACID資料庫設計範式成為NoSQL
優點:簡單資料模型、中繼資料和資料分離、弱一致性、高輸送量、高水平擴充能力和低端 硬體群集
缺點:資料模型沒有經過驗證、不支援ACID特性、功能簡單、沒有統一的查詢語言
3、NewSQL資料庫管理系統:代表產品Cluterix、GenieDB、ScaleBase、NimbusDB、Drizzleyun
4、雲資料管理系統:
大資料的分析處理:
MapReduce
最終一致性細分:
因果一致性、讀自己寫一致性、會話一致性、單調讀一致性、時間軸一致性
ACID: 強一致性、隔離性、採用悲觀保守的方法、難以變化;
BASE:弱一致性、可用性優先、採用樂觀的方法、適應變化、更簡單、更快
資料一致性的實現技術:NRW、2PC、Paxos、Vector Clock
資料存放區模型: www.nosql-databases.org
列式儲存模型 、文檔資料模型 、 索引值資料模型 、圖式資料模型
列式模型:
應用情境:在Distributed File System之上提供支援隨機讀寫的分布式資料存放區
典型產品:Hadoop/HBase、Hypertable(Facebook研發)、Cassandra(Facebook)
資料模型:以“列”為中心進行儲存,將同一列資料存放區在一起
優點:快速查詢、高可擴充性、易於實現分布式擴充
文檔模型:
應用情境:非強事務需求的web應用
典型產品:MongoDB、Elasticsearch、CouchDB、CouchBase Server
資料模型:索引值模型,儲存為文檔
優點:資料模型無須事先定義
索引值模型:
應用情境:內容緩衝,用於大量並行資料訪問高負載情境
典型產品:DynamoDB(亞馬遜研發)、Riak、Redis、MemcacheDB(新浪研發)
資料模型:基於雜湊表實現的key-value
優點:查詢迅速
圖式模型:
應用情境:社交網路、推薦系統、關係圖譜
典型產品:Neo4j、Infinite Graph、TiTan
資料模型:圖式結構
優點:適應於圖式計算情境
二、MongoDB (官方下載網站 www.mongodb.org/downloads/)
MongoDB是Nosql的一種,文檔資料存放區模型,jons資料模型,功能次於MySQL,效能強於MySQL。
CentOS RPM包:http://downloads-distro.mongodb.org/repo/redhat/os/x86_64/RPMS/
安裝mongodb:三個包
(mongo-org-server.rpm、mongol-org-shell.prm用戶端、mongol-org-tools.rpm工具)
#rpm -ql mongodb 查看mongodb設定檔為/etc/mongod.conf
#mkdir -pv /mongodb/data 自訂資料庫存放路徑(預設/var/lib/mongo)
#chown -R mongod:mongod /mongodb/ (系統預設建立mongod使用者來運行mongod,修改目錄許可權)
#vi /etc/mongod.conf 修改設定檔中定義的資料庫路徑
#設定檔開啟http介面: httpinterface=true (添加rest=true)
#service mongod start
#ls /mongodb/data (查看資料庫初始化話的資料,非常大)
#du -sh /mongodb/data/ 顯示3.1G
#ss -tnl #查看監聽的27017和28017連接埠
#mongo --host 172.16.100.7 #連入資料庫
>show dbs #無需建立資料庫,建立collections(容器,相當於表)後自動延時建立資料庫!
>db.stats() #查看資料庫資訊
>db.serverstats() #查看伺服器狀態
第五十一課 NoSQL基礎概念及MongoDB應用、資料庫分配概念