mongodb分布式 如何向mongodb分片集群導入數據?
如何向mongodb分片集群導入數據?準備工作:在導入數據前,先配置好要分片的數據庫及表。 不然導入完成后,發(fā)現數據庫,表沒有同步到另外一個集群。 我這里做了從原單機數據庫數據導出后,再分
如何向mongodb分片集群導入數據?
準備工作:在導入數據前,先配置好要分片的數據庫及表。 不然導入完成后,發(fā)現數據庫,表沒有同步到另外一個集群。 我這里做了從原單機數據庫數據導出后,再分片集群庫中導入操作。 當設置了要分片的庫,及表后,系統(tǒng)會自動幫你添加庫及表。 設置完成后,就可以導入數據了。 use admin db.runCommand({enablesharding:"ip"}) db.runCommand({shardcollection:"ip.ipaddress",key:{ip1:1}}) ./mongorestore -h 192.168.20.11 --port 28000 -d ip /opt/backup/ip20141109/ip ./mongorestore -h 192.168.20.11 --port 28000 -d dmp /opt/backup/dmp/dmp
mongodb如何定位?
mongo數據庫本身就介于redis內存數據庫和mysql數據庫之間。
以下側重于mongo的優(yōu)點。
mongo V redis,
1:redis受內存的限制,無法存儲海量的數據;mongo可以存儲海量的數據。
2:redis僅支持簡單的string、hash、list、set、zset數據結構,而mongo支持文檔型的數據結構,可以說就是JSON字符串,這種數據結構是多么的靈活,使用是多么的方便,想必不用過多介紹。
3:redis可以提供復雜的查詢嗎?mongo笑笑不語。
4:redis有內置數據分析功能(mapreduce)嗎?
再來看mongo V mysql
1:mongo的文檔型數據結構,每一個文檔可以映射為編程語言中的一個獨立對象,同一個集合的文檔之間的數據結構完全不必相同,如此靈活的數據結構,可以輕松的適應業(yè)務邏輯變更。mysql這類的關系數據庫,怎么比?
2:mongo的插入速度比MySQL更快。
3:mongo可以輕松的分布式擴展,不需要停機,不需要更改應用程序。
三者其實各有優(yōu)缺點,對應不同的數據庫應用場景的。
什么時候需要mongo?
- 不需要跨文檔或跨表的事務,也不需要復雜的join查詢支持
- 業(yè)務變更頻繁,導致數據結構需要頻繁更改
- 需要大量的地理位置查詢,文本查詢
- 海量數據存儲,且數據量快速增加
Mongo其實彌補了redis和mysql中的不足。個人在爬蟲中,經常采用mongo保存爬取的數據,而redis保存待爬取的鏈接和用于網頁去重。