10gen近日宣布他們已經(jīng)推出MongoDB與Hadoop連接器(1.0版)。這個版本將提供一年的維護。10gen的工作也為用戶提供了在MongoDB部署與Hadoop集群數(shù)據(jù)處理的一體化工具。此連接器支持Hadoop 0.20.x以上的版本。
連接器的核心功能主要是提供將MongoDB所存儲的數(shù)據(jù)讀入Hadoop MapReduce,同時將MapReduce處理過的數(shù)據(jù)返還到MongoDB。用戶還可以選擇是批量寫入數(shù)據(jù)或是單獨用在某個用例上。10gen的目標就是在Hadoop生態(tài)圈中建立對用戶有意義的組件。
在1.0版本中10gen還提供了如下特性:
●從Pig寫入數(shù)據(jù)到 MongoDB
●從Flume 分布式日志系統(tǒng)寫入到 MongoDB
●在MapReduce中支持Python,并通過 Hadoop Streaming 讀取并寫入數(shù)據(jù)到MongoDB
在未來10gen團隊將會繼續(xù)完善他們的工作,據(jù)悉未來將會考慮對Ruby的支持,以及脫機處理MongoDB備份文件讀寫的能力。(李智/編譯)
關(guān)于MongoDB
Mongo是一個高性能,開源,無模式的文檔型數(shù)據(jù)庫,它在許多場景下可用于替代傳統(tǒng)的關(guān)系型數(shù)據(jù)庫或鍵/值存儲方式。Mongo使用C++開發(fā),提供了以下功能:
◆面向集合的存儲:適合存儲對象及JSON形式的數(shù)據(jù)。
◆動態(tài)查詢:Mongo支持豐富的查詢表達式。查詢指令使用JSON形式的標記,可輕易查詢文檔中內(nèi)嵌的對象及數(shù)組。
◆完整的索引支持:包括文檔內(nèi)嵌對象及數(shù)組。Mongo的查詢優(yōu)化器會分析查詢表達式,并生成一個高效的查詢計劃。
◆查詢監(jiān)視:Mongo包含一個監(jiān)視工具用于分析數(shù)據(jù)庫操作的性能。
◆復制及自動故障轉(zhuǎn)移:Mongo數(shù)據(jù)庫支持服務器之間的數(shù)據(jù)復制,支持主-從模式及服務器之間的相互復制。復制的主要目標是提供冗余及自動故障轉(zhuǎn)移。
◆高效的傳統(tǒng)存儲方式:支持二進制數(shù)據(jù)及大型對象(如照片或圖片)。
◆自動分片以支持云級別的伸縮性(處于早期alpha階段):自動分片功能支持水平的數(shù)據(jù)庫集群,可動態(tài)添加額外的機器。
MongoDB的主要目標是在鍵/值存儲方式(提供了高性能和高度伸縮性)以及傳統(tǒng)的RDBMS系統(tǒng)(豐富的功能)架起一座橋梁,集兩者的優(yōu)勢于一身。根據(jù)官方網(wǎng)站的描述,Mongo適合用于以下場景:
◆網(wǎng)站數(shù)據(jù):Mongo非常適合實時的插入,更新與查詢,并具備網(wǎng)站實時數(shù)據(jù)存儲所需的復制及高度伸縮性。
◆緩存:由于性能很高,Mongo也適合作為信息基礎(chǔ)設(shè)施的緩存層。在系統(tǒng)重啟之后,由Mongo搭建的持久化緩存層可以避免下層的數(shù)據(jù)源過載。
◆大尺寸,低價值的數(shù)據(jù):使用傳統(tǒng)的關(guān)系型數(shù)據(jù)庫存儲一些數(shù)據(jù)時可能會比較昂貴,在此之前,很多時候程序員往往會選擇傳統(tǒng)的文件進行存儲。
◆高伸縮性的場景:Mongo非常適合由數(shù)十或數(shù)百臺服務器組成的數(shù)據(jù)庫。Mongo的路線圖中已經(jīng)包含對MapReduce引擎的內(nèi)置支持。
◆用于對象及JSON數(shù)據(jù)的存儲:Mongo的BSON數(shù)據(jù)格式非常適合文檔化格式的存儲及查詢。