symfony+MongoDBでNoSQLはじめの一歩 〜MongoDBインストール〜

記事タイトルとURLをコピーする

はじめに

はじめまして。開発部エンジニアのあさくらです。 主にPHPsymfonyを使ったシステム開発を担当させていただいています。 好きな開発環境は、MacGNU Emacs。 好きな仮面ライダーは龍騎カブトWです。

技術的なTipsやチュートリアル、開発手法についての情報を中心に投稿させていただこうと思っています。 どうぞ、よろしくお願いいたします。

私は普段、symfony+RDBMSで開発を行っているのですが、RDBMSで吸収することが難しい問題に直面することが多々あります。(私の理解不足という点も否めませんが) そういった問題を解決するのにNoSQLが有効か否かを調べたいと思い、本エントリを投稿するに至りました。 バリバリNoSQLを使いこなす域には達していないので、少し物足りない内容になってしまうかもしれませんが、皆さんと一緒に勉強させていただければと思っています。

はじめの一歩

それでは、NoSQLの世界へ一歩踏み出してみましょう。 NoSQLのはじめの一歩として、symfony1.0からMongoDBを操作し、パフォーマンスがどの程度得られるか、全5回程度で学んでいきたいと思います。 今回は、「MongoDBをインストールし、データベースの起動ができるようになる」ことを目標に、お話を進めていきたいと思います。

今回のエントリの対象読者

今回のエントリは、下記のような方を対象としています。

  • NoSQLのことを何となく知っている
  • MongoDBの名前を聞いたことがあるが、触ったことはない
  • アプリケーションを自由にインストールできるLinux環境がある

今回のエントリのゴール

今回のエントリを読み終えて、次のことが出来ることをゴールとしています。

  • Linux環境へ、MongoDBがインストールできる
  • mongodコマンドで、MongoDBデータベースが起動できる

MongoDBとは

MongoDBロゴ

Wikipediaでは以下のように紹介されています。

MongoDBはC++言語で記述された オープンソースのドキュメント指向データベースである。
MongoDBは従来の関係データベース管理システムでは簡単に解決できない多量のトランザクション処理が要求されない問題に対し設計されている。一例として、データベースが複数サーバにまたがる必要がある場合が挙げられる。
CouchDBのようなドキュメント指向データベースシステムと同じく、MongoDBは関係データベース管理システムではない。データベースはBSONと呼ばれる、バイナリで格納されたJSONのようなドキュメントの集合を管理している。

また、書籍や勉強会での情報では、 「KVS、ドキュメント指向データベース、RDBMSのいいとこ取りなデータベース」 と評されることが多いようです。 なんだかすごそうで、わくわくしてきますね。

作業環境

今回の作業環境は以下の通りです。

  • MacOSX 10.6.3 SnowLeopard

MongoDBのインストール

まずは、MongoDBをダウンロードしましょう。 Downloads - MongoDBから、自分の環境にあったパッケージをダウンロードしてください。

MongoDBDownload画面

今回は、MacOSX SnowLeopard環境で作業をするので、「OS X 64-bit」から、この記事を作成している2010年7月15日時点での最新バージョン1.4.4をダウンロードします。

$ curl http://downloads.mongodb.org/osx/mongodb-osx-x86_64-1.4.4.tgz > mongodb.tgz
$ tar zxvf mongodb.tgz

データの格納先ディレクトリの作成

データの格納先を作成します。 今回は、mongodコマンド実行時にデフォルト格納先として指定されるディレクトリを準備しましょう。 ※mongodコマンドの引数に「--dbpath=/hoge/mongodb_data」を追加することで、任意のデータ格納先を指定することも可能です。

$ mkdir -p /data/db

mongodコマンドで、MongoDBを起動

展開したmongodコマンドを実行し、データベースを起動してみましょう。

$ mongodb-osx-x86_64-1.4.4/bin/mongod

mongodコマンド実行後、メッセージに「waiting for connections on port 27017」とメッセージがでれば起動成功です。

また次回

今回のエントリでMongoDBの起動まで出来るようになりました。 次回は、MongoDBを操作するためのmongoコマンドを使い、実際にMongoDBを操作していきたいと思います。 それでは

参考にさせていただいたページ

本エントリを作成する際に、こちらのページを参考にさせていただきました。 ありがとうございました。