RDBMS(MS SQL,Oracle,MYSQL等)はOLTP等のリアルタイムのデータ分析、
またNoSQLが最近の世の中のコンテンツリッチ化や大容量データ分析(NOT REALTIME)
のDWH系選択肢として話題になっているので少しレビューしてみたいと思います。
まずは自分のクライアントで手軽に試せるのでWindows版でテストしてみました。

MongoDB is an open source, document-oriented database designed with both scalability
and developer agility in mind. Instead of storing your data in tables and rows as you
would with a relational database, in MongoDB you store JSON-like documents with dynamic schemas.
The goal of MongoDB is to bridge the gap between key-value stores (which are fast and scalable)
and relational databases (which have rich functionality).

MongoDBは、Shardingによって水平スケーリングが可能である。
これはBigTableやPNUTSのスケーリングモデルに非常に良く似ている。
開発者はshardキーを選択し、このキーがデータをどのように分散させるかを決める。
データ中のキーを元にデータを分散させるshardが決められる。

関連ドキュメント
Presentations Matching: MongoDB Tokyo 2012

http://www.10gen.com/
http://www.mongodb.org/
http://www.mongodb.org/downloads

対応OS
OS X 32-bit
note OS X 64-bit Linux 32-bit
note Linux 64-bit Windows 32-bit
note Windows 64-bit Solaris i86pc
note Solaris 64 Source

MongoDB on Windows
http://www.mongodb.org/downloads

Windows7での利用
mongodb-win32-x86_64-2.0.5.zipダウンロード

インストール手順
http://www.mongodb.org/display/DOCS/Quickstart+Windows

① Unzip
Unzip the downloaded binary package to the location of your choice.
You may want to rename mongo-xxxxxxx to just “mongo” for convenience.

② Create a data directory
By default MongoDB will store data in \data\db, but it won’t automatically
create that folder.

※If you prefer to place datafiles elsewhere,
 use the –dbpath command line parameter when starting mongod.exe.
 他のパスにデータを配置したい場合は、MYSQLでいうdatadirのようにデータパスを
 起動時に指定してあげれば良いようです。

ダウンロードした実行ファイルとデータ用にフォルダーを作成しました。

mongodb install

③ Run and connect to the server

C:\mongodb\bin>mongod
mongod –help for help and startup options
Sun May 20 08:20:03 [initandlisten] MongoDB starting : pid=10660 port=27017 dbpath=/data/db 64-bit host=any-place
Sun May 20 08:20:03 [initandlisten] db version v2.0.5, pdfile version 4.5
Sun May 20 08:20:03 [initandlisten] git version: 1bb4de4630302fad8af53824ca4f627db490b753
Sun May 20 08:20:03 [initandlisten] build info: windows sys.getwindowsversion(major=6, minor=1, build=7601, platform=2, service_pack=’Service Pack 1′) BOOST_LIB_VERSION=1_42
Sun May 20 08:20:03 [initandlisten] options: {}
Sun May 20 08:20:03 [initandlisten] journal dir=/data/db/journal
Sun May 20 08:20:03 [initandlisten] recover : no journal files present, no recovery needed
Sun May 20 08:20:04 [initandlisten] waiting for connections on port 27017
Sun May 20 08:20:04 [websvr] admin web console waiting for connections on port 28017
Sun May 20 08:21:04 [clientcursormon] mem (MB) res:20 virt:82 mapped:0

Note: It is also possible to run the server as a Windows Service.

mongod start

④ Start the administrative shell

C:\mongodb\bin>mongo
MongoDB shell version: 2.0.5
connecting to: test
> 3+3
6
> db
test
> db.foo.insert( { a : 1 } )
> db.foo.find()
{ “_id” : ObjectId(“4fb82c2961d4fad4249cd4a5”), “a” : 1 }
> show dbs
local (empty)
test 0.078125GB
> show collections
foo
system.indexes
>

データをINSERT,SAVE,FIND出来ます。
基本的には、”Key”と”Value”がペアになっています。

> db.foo.insert( { d : 4 } )
> db.foo.insert( { e : 5 } )
> db.foo.find()
{ “_id” : ObjectId(“4fb82c2961d4fad4249cd4a5”), “a” : 1 }
{ “_id” : ObjectId(“4fb832e8606ee417ccf80408”), “b” : 2 }
{ “_id” : ObjectId(“4fb8331c606ee417ccf80409”), “c” : 3 }
{ “_id” : ObjectId(“4fb833a4606ee417ccf8040a”), “d” : 4 }
{ “_id” : ObjectId(“4fb833ab606ee417ccf8040b”), “e” : 5 }

> db.foo.save( { f : 6 } )
> db.foo.find()
{ “_id” : ObjectId(“4fb82c2961d4fad4249cd4a5”), “a” : 1 }
{ “_id” : ObjectId(“4fb832e8606ee417ccf80408”), “b” : 2 }
{ “_id” : ObjectId(“4fb8331c606ee417ccf80409”), “c” : 3 }
{ “_id” : ObjectId(“4fb833a4606ee417ccf8040a”), “d” : 4 }
{ “_id” : ObjectId(“4fb833ab606ee417ccf8040b”), “e” : 5 }
{ “_id” : ObjectId(“4fb834a3606ee417ccf8040c”), “f” : 6 }
>

> db.foo.find({“e”:5})
{ “_id” : ObjectId(“4fb833ab606ee417ccf8040b”), “e” : 5 }
>

mongod and mongo

mongod and mongo

———————————————————–
HELP内容
———————————————————–
db.help() help on db methods
db.mycoll.help() help on collection methods
rs.help() help on replica set methods
help admin administrative help
help connect connecting to a db help
help keys key shortcuts
help misc misc things to know
help mr mapreduce

show dbs show database names
show collections show collections in current database
show users show users in current database
show profile show most recent system.profile entries with time >= 1ms
show logs show the accessible logger names
show log [name] prints out the last segment of log in memory, ‘global’ is default
use set current database
db.foo.find() list objects in collection foo
db.foo.find( { a : 1 } ) list objects in foo where a == 1
it result of the last line evaluated; use to further iterate
DBQuery.shellBatchSize = x set default number of items to display on shell
exit quit the mongo shell
———————————————————–

データフォルダーの確認

mongodb data dir

mongodb data dir

http://localhost:28017/にて状況確認

mongodb process confirmation

mongodb process confirmation

Drivers
MongoDB currently has client support for the following programming languages:
http://www.mongodb.org/display/DOCS/Drivers

mongodb.org Supported

C
C++
Erlang
Haskell
Java
Javascript
.NET (C# F#, PowerShell, etc)
Node.js
Perl
PHP
Python
Ruby
Scala

Community Supportedには,その他色々あるようです。
Linux版、Hadoopとの連携等はまた後日確認。

Comments are closed.

Post Navigation