『壹』 MongoDB挑戰傳統資料庫:非結構化資料庫的迭新不容小覷
相比甲骨文中國在中國市場的裁員風波,同為資料庫服務的MongoDB顯得更為樂觀。「MongoDB是中國開發者最喜歡用的一個資料庫。」MongoDB全球渠道及亞太區銷售高級副總裁Alan Chhabra帶著一點自信和驕傲在媒體面前宣稱。
中國企業的數字化轉型正進入關鍵期,在打造開放、高效、靈活、共享的雲計算基礎設施的同時,資料庫的更新換代也被提上了日程。
日前,非結構化資料庫平台提供商MongoDB在上海舉辦用戶大會,MongoDB全球渠道及亞太區銷售高級副總裁Alan Chhabra接受了億歐企業服務頻道的采訪, 並針對去年修改開源協議,在SSPL的不同許可機制下授權伺服器軟體的爭議以及其他疑問作出回應。
資料庫的本質是解決數據的存儲和管理問題。 Alan Chhabra表示,對企業發展具有戰略意義的資料庫正在催生巨大的市場。
在這些潛力頗大的資料庫中,市場上目前存在著的是關系型的傳統資料庫和以Mongo DB為代表的非關聯式新型資料庫。傳統資料庫比較典型的是甲骨文旗下的Oracle資料庫、IBM推出的大數據平台Hadoop和Stream Computing、微軟的sql Server、SAP以及EMC Greenplum。 他們的主要差別在於資料庫的結構化和非結構化。
結構化的數據是指可以使用關系型資料庫表示和存儲,表現為二維形式的數據,存儲和排列很有規律,這對查詢和修改等操作很有幫助,但擴展性和靈活性欠佳。 非結構化資料庫就是各種文檔、圖片、視頻/音頻等沒有固定結構的數據,一般直接整體進行存儲為二進制的數據格式。 目前涵蓋分布式資料庫、圖資料庫、流資料庫、時空資料庫和眾包資料庫等多個領域。
MongoDB是文檔型的非結構化新型資料庫,Alan Chhabra表示, 與傳統資料庫相比,更能滿足用戶數據存儲量大、計算靈活的需求。「在某些客戶某些案例上,我們已經取代了傳統資料庫,比如甲骨文。」
當前, 軟體對於商業模式的改變、開發人員地位的提高,以及企業向雲端遷移的趨勢 都讓數據服務公司的發展得到了助力。但從畢馬威會計事務所對首席信息官的調查結果來看, 88%的首席信息官認為他們未能從數字化戰略中充分獲益;82%的首席信息官認為其所在機構在利用技術推動業務發展方面並非「卓有成效」。 也就是說, 大多數公司的數字化戰略是以失敗告終的。
在此背景下,更加靈活、性能更加強大的新型資料庫在一些領域獲得了試驗田豐收,並且可以看到,隨著客戶數據需求的繁雜程度的日益增加,傳統資料庫也在自我革新,以迎頭趕上數據浪潮的大變革。
MongoDB成立於2007年,2017年在納斯達克上市。最初,MongoDB是一項面向技術愛好者的技術,如今已成為一項企業級的業務關鍵技術。通過不斷開發資料庫即服務(Database-as-a-Service)產品,積極擁抱雲計算,MongoDB在過去十年裡,為開發人員提供了處理數據的方法。正因如此,它也成了企業數字化轉型戰略的一個關鍵部分。
MongoDB提供的產品主要包括MongoDB雲服務MongoDB Atlas、MongoDB Mobile、MongoDB企業版和MongoDB Stitch等十餘個相關產品。Alan Chhabra表示,產品包括了 開源版、付費版和雲版。
2018 年 10 月,MongoDB宣布其開源許可證將從GNU AGPLv3切換到SSPL,新許可證將適用於新版本的MongoDB Community Server以及打過補丁的舊版本,這一舉動引發了行業熱議。基於GNU AGPLv3協議,企業可以將MongoDB作為公共服務但這需要企業開源自己的軟體或是獲得MongoDB的商業授權,事實卻是MongoDB發現許多企業正在違反協議「瘋狂試探」甚至已經違反協議。 SSPL( Server Side Public License)顧名思義,要求使用者必須得到伺服器端公共許可證,這一協議會進一步約束商業公司使用MongoDB服務。
Alan Chhabra向億歐解釋, SSPL 針對的是提供MongoDB託管服務的雲服務廠商。 也就是說,如果不是雲服務廠商,沒有公然售賣MongoDB產品,而只是作為應用後台資料庫來使用的話,那麼無論你是電商、物聯網、金融、社交、 游戲 、移動應用等等,一概都不會有任何影響。 「MongoDB的宗旨還是為了始終支持並保護創新開放。」
但此開源協議的修改明顯帶來了市場用戶的「掉粉」,比如Linux 社區的接連「棄用」,以及AWS 、IBM、微軟推出了兼容MongoDB的相關產品來服務用戶。
資料庫開源的商業變現與創新形成的矛盾,目前似乎還尚未找到解決方案。
Alan Chhabra在大會上也透露了MongoDB的未來計劃, 即將基於智能運營數據平台和下一代基礎架構、文化、方法論和安全,推動原有系統的現代化、數據即服務、雲數據策略、業務敏捷性,進而幫助客戶實現以數據驅動的數字化轉型。
針對MongoDB在中國的發展情況, Alan Chhabra表示,公司將以創新立足,持續引領資料庫技術發展潮流,與合作夥伴攜手助力中國企業的數字化轉型。
MongoDB北亞區副總裁蘇玉龍認為:「中國是數據大國,而數據就是未來的石油。如何利用好數據,讓數據石油助力中國企業騰飛是MongoDB希望在中國達成的事情。隨著中國企業數字化轉型逐漸走向深入,MongoDB資料庫的價值得到不斷釋放。」
本文作者龔晨霞,微信Gcx847076575,歡迎關注企業服務和產業互聯網的朋友加微信交流。
『貳』 mongodb使用場景是什麼
使用場景:
(1)網站數據:MongoDB適合實時的插入,更新與查詢,並具備網站實時數據存儲所需的復制及高度伸縮性。
(2)緩存:由於性能很高,MongoDB也適合作為信息基礎設施的緩存層。在系統重啟之後,由MongoDB搭建的持久化緩存層可以避免下層的數據源過載。
(3)大尺寸,低價值的數據。
(4)高伸縮性的場景:MongoDB適合由數十或數百台伺服器組成的資料庫。
(5)用於對象及JSON數據的存儲:MongoDB的BSON數據格式適合文檔化格式的存儲及查詢。
mongodb設計特點:
(1)面向集合存儲,容易存儲對象類型的數據。在MongoDB 中數據被分組存儲在集合中,集合類似RDBMS 中的表,一個集合中可以存儲無限多的文檔。
(2)模式自由,採用無模式結構存儲。在MongoDB 中集合中存儲的數據是無模式的文檔,採用無模式存儲數據是集合區別於RDBMS 中的表的一個重要特徵。
(3)支持完全索引,可以在任意屬性上建立索引,包含內部對象。MongoDB的索引和RDBMS 的索引基本一樣,可以在指定屬性、內部對象上創建索引以提高查詢的速度。除此之外,MongoDB 還提供創建基於地理空間的索引的能力。
(4)支持查詢。MongoDB 支持豐富的查詢操作,MongoDB 幾乎支持SQL中的大部分查詢。
(5)強大的聚合工具。MongoDB 除了提供豐富的查詢功能外,還提供強大的聚合工具,如count、group 等,支持使用MapRece 完成復雜的聚合任務。
『叄』 Mongodb和mysql的區別
Mongodb和mysql的區別
1.Mongodb簡介及優缺點分析
Mongodb是非關系型資料庫(nosql ),屬於文檔型資料庫。文檔是mongoDB中數據的基本單元,類似關系資料庫的行,多個鍵值對有序地放置在一起便是文檔,語法有點類似javascript面向對象的查詢語言,它是一個面向集合的,模式自由的文檔型資料庫。
存儲方式:虛擬內存+持久化。
查詢語句:是獨特的Mongodb的查詢方式。
適合場景:事件的記錄,內容管理或者博客平台等等。
架構特點:可以通過副本集,以及分片來實現高可用。
數據處理:數據是存儲在硬碟上的,只不過需要經常讀取的數據會被載入到內存中,將數據存儲在物理內存中,從而達到高速讀寫。
成熟度與廣泛度:新興資料庫,成熟度較低,Nosql資料庫中最為接近關系型資料庫,比較完善的DB之一,適用人群不斷在增長。
優點:
快速!在適量級的內存的Mongodb的性能是非常迅速的,它將熱數據存儲在物理內存中,使得熱數據的讀寫變得十分快。高擴展性,存儲的數據格式是json格式!
缺點:
① mongodb不支持事務操作。
② mongodb佔用空間過大。
③ 開發文檔不是很完全,完善。
2.MySQL優缺點分析
優點:
在不同的引擎上有不同 的存儲方式。
查詢語句是使用傳統的sql語句,擁有較為成熟的體系,成熟度很高。
開源資料庫的份額在不斷增加,mysql的份額頁在持續增長。
缺點:
在海量數據處理的時候效率會顯著變慢。
3.Mongodb和MySQL資料庫的對比
傳統的關系資料庫一般由資料庫(database)、表(table)、記錄(record)三個層次概念組成,MongoDB是由資料庫(database)、集合(collection)、文檔對象(document)三個層次組成。
MongoDB對於關系型資料庫里的表,但是集合中沒有列、行和關系概念,這體現了模式自由的特點。
4.MongoDB常用語句
# 連接Mongo資料庫,並設置數據存儲地址
mongod.exe --dbpath "d:softwareMongoDBServer3.0data"
#-----------------------#1# 資料庫
# 查看所有的資料庫
show dbs
# 刪除當前使用的資料庫
db.dropDatabase()
# 使用這個資料庫(只有插入數據後完成創建資料庫)
use dbt
# 查看當前使用的資料庫
db
db.getName()
# 查看當前資料庫狀態
db.stats()
# 修復當前資料庫
db.repairDatabase()
# 從一個資料庫復制到另一個資料庫
db.Database("mydb", "temp", "127.0.0.1");
#-----------------------#2# 集合
# 查看當前資料庫下所有的集合
show collections
show tables
# 創建名稱為coll集合
db.createCollection('coll')
db.createCollection("coll2", {capped:true, autoIndexId:true, size:6142800, max:10000}) # 可選參數
# 查看當前集合狀態
db.coll.stats()
# 刪除名稱為coll集合
db.coll.drop()
#-----------------------#3# 集合數據
# 插入空數據並且直接創建名稱為coll集合
db.coll.insert({})
# 插入一個或多個數據
db.coll.insert({name:'tom', age:22})
db.coll.insert([{name:'adam', age:10},{name:'john', age:23}])
# 添加數據(save方法可以修改相同id的數據)
db.coll.save({name:'allen'})
# 刪除一個或所有的數據
db.coll.remove({name:'tom'})
db.coll.remove({})
# 刪除符合條件的數據中的第一條
db.coll.remove({name:'tom'}, 1)
# 更改數據
db.coll.update({name:'tom', age:22}, {$set:{name:'tom', age:222}})
# 查看數據
db.coll.find()
# 查看一條數據
db.coll.findOne()
db.coll.find({}, {name:1, '_id':0}) # 1表示顯示,0表示不顯示(find默認顯示_id)
# 格式化顯示數據,使數據更加清晰明了
db.coll.find().pretty()
# 使用and,or查看數據
db.coll.find({name:'tom', age:22}) # 等同and使用
db.coll.find({$or:[{name:'tom'}, {age:21}]}) # or使用
# 操作符大於,小於,等於,不等於,大於不等於,小於不等於
db.coll.find({age: {$gt: 22}}) # 大於
db.coll.find({age: {$lt: 22}}) # 大於
db.coll.find({age: 22}) # 等於
db.coll.find({age: {$ne: 22}}) # 不等於
db.coll.find({age: {$gte: 22}}) # 大於等於
db.coll.find({age: {$lte: 22}}) # 小於等於
# 顯示從skip之後limit個
db.coll.find().limit(2).skip(1)
#-----------------------# # 用戶
# 3.x之後版本添加用戶
use admin
db.createUser({user:'nu', pwd:'nu', roles:[{role:'readWrite',db:'admin'}]})
# 用戶認證
db.auth("nu", "nu");
# 顯示當前所有用戶
show users;
db.system.users.find()
3.x版本刪除用戶
db.removeUser('nu') # 不推薦使用,已經廢棄
db.dropUser("nu");
# 當前db版本
db.version();
# 當前db的鏈接機器地址和埠
db.getMongo();
# 備份到備份目錄
mongomp
# 從備份目錄恢復備份語句。
mongorestore
咱們下期見。
『肆』 使用mongodb資料庫有哪些優勢
下面是一個瑭錦TANJURD總結 MongoDB 優缺點的列表,希望對打算使用 MongoDB 的同學,能有一些作用:x0dx0a 優勢:x0dx0a 快速!(當然,這和具體的應用方式有關,通常來說,它比一般的關系型資料庫快5位左右。)x0dx0a 很高的可擴展性 _ 輕輕鬆鬆就可實現PB級的存儲(但是可能我們並不需要PB級的存儲,10TB可能就夠了)x0dx0a 他有一個很好的 replication 模式 (replica sets)x0dx0a 有很完善的Java APIx0dx0a 他的存儲格式是Json的,這對Java來說非常好處理,對javascirpt亦然。x0dx0a 運維起來非常方便,你不用專門為它安排一個管理員。x0dx0a 它有一個非常活躍的社區(我提出的一個bug在20分鍾內就能得到修復。多謝Elliot)x0dx0a 他的版本控制非常清楚。x0dx0a MongoDB 背後的公司(10gen)已經准備好了明天在 MongoDB 上面的投入的資金了。x0dx0a 劣勢x0dx0a 應用經驗缺乏,我們都沒有相關NoSQL 產品的使用經驗。x0dx0a 項目相對來說還比較新。x0dx0a 和以往的存儲相比,數據的關系性操作不再存在。
『伍』 mongodb是什麼類型的資料庫
MongoDB是一個基於分布式文件存儲的資料庫。由C++語言編寫。旨在為WEB應用提供可擴展的高性能數據存儲解決方案。MongoDB
是一個介於關系資料庫和非關系資料庫之間的產品,是非關系資料庫當中功能最豐富,最像關系資料庫的。他支持的數據結構非常鬆散,是類似json的bson格式,因此可以存儲比較復雜的數據類型。Mongo最大的特點是他支持的查詢語言非常強大,其語法有點類似於面向對象的查詢語言,幾乎可以實現類似關系資料庫單表查詢的絕大部分功能,而且還支持對數據建立索引。
『陸』 《MongoDB實戰》epub下載在線閱讀,求百度網盤雲資源
《MongoDB實戰》([美] Kyle Banker)電子書網盤下載免費在線閱讀
資源鏈接:
鏈接:https://pan..com/s/18MtkrdI1I-IoGav-0XC31Q
書名:MongoDB實戰
作者:[美] Kyle Banker
譯者:丁雪豐
豆瓣評分:8.1
出版社:人民郵電出版社
出版年份:2012-10
頁數:244
內容簡介:
內容簡介:
MongoDB是為處理大數據而生的一款面向文檔的資料庫,由10gen公司開發和維護。本書作者Kyle Banker曾在該公司負責MongoDB驅動程序的維護,對各方面技術細節都了如指掌,本書也是在大量第一手資料的基礎上形成的,其權威性毋庸置疑。
本書基於MongoDB 2.0+,全面系統地講解了設計、實現、安裝和維護MongoDB的各方面內容。全書分三部分,第一部分從基於文檔的數據與傳統關系型資料庫的差別講起,介紹了MongoDB的基本概念及安裝使用。第二部分是一個實戰式教程,結合示例講解了MongoDB的CRUD操作,以及實現系統安全、靈活和高效的設計原則及模式。第三部分側重資料庫的維護和管理,深入到MongoDB背後的技術細節,給出了對管理員和開發者都極有價值的建議。
本書篇幅適中,內容深淺得當,文字通俗易懂,再配以直觀形象的插圖和貼近實戰的代碼示例,非常適合MongoDB學習者、開發人員及管理員學習參考。
本書內容:
MongoDB介紹及其優劣勢
MongoDB的Shell界面
使用MongoDB的簡單應用
如何通過以文檔為中心的方式看待數據
編寫查詢,以MapRece方式聚合數據
更新和刪除數據及相關性能考量
尋找和改進慢查詢
MongoDB的復制與分片
MongoDB的監控、備份及恢復
作者簡介:
作者介紹:
Kyle Banker 軟體工程師,曾工作於10gen公司,負責維護Ruby及C語言的官方MongoDB驅動、領導MongoDB文檔項目並開發培訓課程,且為客戶提供咨詢、商業支持和培訓;現任職於Snapjoy(為用戶提供默認私有的在線照片備份和自動管理服務)。個人網站http://kylebanker.com/blog。
譯者介紹:
丁雪豐 一線「攻城師」一枚,InfoQ中文站小編,滿江紅翻譯組核心成員,常年混跡於各種社區,業余時間寫作、翻譯、漢化軟體,《RESTful Web Services Cookbook中文版》、《Spring攻略》等多部書的譯者。
『柒』 mongodb資料庫有哪些優勢
1. 文檔存儲
數據存儲以BSON/JSON文檔,這對於Web應用程序有很大的意義。開發者API喜歡以JSON形式傳輸,這使得整個項目的數據表示可採用統一的模型。所有這一切都無需任何前期架構設計。
2. 可擴展性
MongoDB被用在一些規模龐大的環境中,FourSquare/Craiglist都在使用它。通過分片數據縮放處理理論上可實現更高的吞吐量。
3. 簡單的復制
就像分片技術一樣,MongoDB范圍內復制過程同樣簡單好用,在副本機器上還有大量的復制選項。靈活的功能可滿足用戶應用的需求。
4. 易於查詢
MongoDB以文檔的形式存儲數據,不支持事務和表連接。因此查詢的編寫、理解和優化都容易得多。簡單查詢設計思路不同於SQL模式,嵌入文檔在特定的環境下可得到更好的查詢,然而這需要先加入集合。如果需要執行多個請求到資料庫則需要加入其到客戶端。在MongoDB時ODM工具(如Doctrine2)將發揮自身的優勢。
5. 安全性
由於MongoDB客戶端生成的查詢為BSON對象,而不是可以被解析的字元串,所以可降低受到SQL注入的攻擊的危險。最常見的攻擊類型為針對Web應用程序的攻擊,在MongoDB上使用Doctrine2 ODMs 查詢語言可減輕攻擊風險。
6. 支持
用戶在選擇資料庫時總是喜歡積極和充滿活力的,這點非常重要。MongoDB在業界有非常大的影響力,用戶也會定期的組織活動。MongoDB的標簽在StackOverFlow是非常活躍的。你永遠不會陷入困境,因為總有人與你討論並解決問題。
7. 價格
MongoDB是免費的!
當然遠不止這些優勢,但是也有很多劣勢。
『捌』 mongodb和redis區別是什麼
就Redis和MongoDB來說,大家一般稱之為Redis緩存、MongoDB資料庫。這也是有道有理有根據的,
Redis主要把數據存儲在內存中,其「緩存」的性質遠大於其「數據存儲「的性質,其中數據的增刪改查也只是像變數操作一樣簡單;
MongoDB卻是一個「存儲數據」的系統,增刪改查可以添加很多條件,就像SQL資料庫一樣靈活,這一點在面試的時候很受用。《linux 就該這么學》
Mongodb與Redis應用指標對比
MongoDB和Redis都是NoSQL,採用結構型數據存儲。二者在使用場景中,存在一定的區別,這也主要由於
二者在內存映射的處理過程,持久化的處理方法不同。MongoDB建議集群部署,更多的考慮到集群方案,Redis
更偏重於進程順序寫入,雖然支持集群,也僅限於主-從模式。