今回はMongoDBについてです。MongoDBって最近よく聞くけど一体何なの?!という方もまだ多いかと思います。MongoDBは,いわゆる「ビッグデータ」を処理可能なパフォーマンスをもつNoSQLの性能と,RDBMSのもつ豊富な機能をバランスよく取り込んだソフトウェアです。
■特徴
・NoSQL(Not only SQL)の1種でありドキュメント指向データベース。
・スキーマレス(テーブルの構造が固定ではなく、自由にデータを突っ込める)。
・RDMBSと比較するとスケールアウトが容易。
・レコードはBSON (Binary JSON) の形で扱われる。
・JOINはできない。JOINをしなければならない場合はRDBMSをチョイスする必要がある。
・etc
この中でもやはりスキーマレスというのがRDBMSとの決定的な違いでしょうか。
完全にRDBMS脳になってしまっているので、慣れるまで少し時間が必要そうですね。
詳しくは以下サイトをご参照ください。
http://itpro.nikkeibp.co.jp/article/COLUMN/20120306/384811/
インストール
まずは以下サイトからインストーラーをダウンロードします。
https://www.mongodb.org/downloads#production
- インストール後、exeファイルの場所をPathに追加
- 例:C:\Program Files\MongoDB\Server\3.0\bin
- コマンドプロンプトでmongod --versionが通ってればOK
起動方法
- データを保存する場所とログを保存する場所を確保する
- データの保存場所の例:D:\mongodb\data
- ログの保存場所の例:D:\mongodb\logs
- コマンドプロンプトでMongoDBを起動する
- 例:mongod --dbpath D:\mongodb\data --logpath D:\mongodb\logs\mongodb.log
PyMongoのインストール
PyMongoとはPythonのMongoDBクライアントのことです。
pip install pymongoでインストールしてください。
MongoDBの導入については以上です。さて、続いてはPythonでMongoDBを操作してみましょう!
■sample.py
# -*- coding: utf-8 -*- import pymongo def main(): client = pymongo.MongoClient(host='localhost', port=27017) #接続 test_db = client.test #「test」というDBを作成する collection = test_db.my_first_collection #コレクション=テーブル collection.insert_one({'name': 'foo', 'age': 10}) #コレクションにドキュメント(レコード)を挿入。JSON形式 data = collection.find_one() #一件目のデータを取得する #各種値の確認 print u'DB = ' + test_db.name print u'テーブル= ' + test_db.collection_names(include_system_collections=False)[0] print u'レコード= ' print collection.find_one() if __name__ == '__main__': main()
コンソールの確認をします。
簡単にMongoDBデビューができました!
次はこれを使ってもう少しビッグデータの処理っぽいことをしてみたいですね。