みなさんこんにちは。
(株)adingoでprivate DMPと呼ばれるcosmi Relationship Suiteの開発をしています。
@tana_raことあらたです。
世の中にはアルファベット3文字が溢れていて混乱しますよね。AWSと広告業界が混ざるとカオスです。
AWSとかEMRとかSSPとか。DMPもその一つですね。
ちなみにDMPはData Management Platformの略です。
ところでcosmiでは、データの管理にMySQLとMongoDBを利用しています。
私は開発時にはMySQLのGUIツールをよく利用するのですが、
MongoDBのGUIツールってあまり聞かないなと思ったので探してみました。
今日は触ってみたMongoDBのGUIツールを紹介してみたいと思います。
基本的にWEBベースの物を利用しています。
触ってみたGUIツールたち
■phpMoAdmin
まずはじめにphpMoAdminです。
名前から分かる通りPHP製です。
phpMyAdminとかphpMyFaqとか似た名前のものがたくさんありますね。
1ファイルで出来ているので、apacheのDocument Rootに配置するか、
PHPのビルトインサーバで利用することが出来ますね。
インストール
以下がその画面です。
何にもせず接続できました。
デフォルト設定で接続ができますが、Configファイルなどはないので
portを変えたり、認証をつけたりすると使えなくなってしまいます。
(無理やりコードを変更することで色々できますが・・・w)
基本的なデータの確認は可能ですが、ユーザ認証とかは無いみたいですね。
■RockMongo
次にRockMongoです。これもPHP製。
したがって、phpMoAdminと同様の方法で利用することが出来ます。
インストール
アクセスすると以下のような画面が現れます。
ログイン認証もできますが、以下のように
/var/www/html/rockmongo/config.php
の31行目を編集すれば認証を無くすことも可能です。
RockMongoは結構機能が多そうですね。
データの確認も見やすくていいです。
■mongo-express
mongo-expressはJavaScript(node.js)製のGUIツールです。
CSSはTwitter Bootstrapを利用しているようで綺麗です。
インストール
なのでconfig.default.jsをコピーして使いましょう。
今MongoDBで認証は行っていないのでconfig.jsで認証が必要ないように変更します。
変更しないとConnectionErrorとコンソールに出てきます。
右のバツボタンを押したらこのレコード消してくれそうだなーと思って押したら
確認なしで消してくれましたw
とてもカジュアルですね・・・(´・ω・`)w
■Genghis
最後にGenghisです。
Genghisの読みがわからなくてぐぐったらチンギスハンのチンギスらしいです。
gem installでもできるらしいのですが、
PHPerな私はPHPのビルトインサーバを利用しました。
(色々躓いたわけでは決してないです。)
こちらもTwitter Bootstrapを利用しているのでどことなくモダンな感じです。
インストール
localhostを選択すればlocalhostのサーバにつながります。
その他にもAdd serverとやれば、他サーバのMongoDBにもつなげることが出来そうです。
localhostにつなげてみた画面が以下のようになります。
Twitter Bootstrapのおかげかとても見やすいですが、
findとinsertくらいの機能しかありませんでした。
まあ見やすければ・・・いいですかねw
全体的な比較
個人的にはGUIツールに要求する機能はデータの確認くらいという結論に至りました。
そうすると、データの確認がカジュアルにできる、
mongo-expressはかなりいいなと思います。
(開発環境とはいえ誤って複雑なレコードを消したら泣きそうですがw)
GUIツールは個人に依る部分があると思うので皆さんも試してみるといいかもしれません。
以下に検証に利用したレポジトリを用意したので、
是非みなさん、MongoDBのGUIツールと戯れてみてください。
VagrantとVirtualboxを利用してMongoDBのGUIツールを検証出来るレポジトリです。
https://github.com/tarata/mongo-gui-try
(株)adingoでprivate DMPと呼ばれるcosmi Relationship Suiteの開発をしています。
@tana_raことあらたです。
世の中にはアルファベット3文字が溢れていて混乱しますよね。AWSと広告業界が混ざるとカオスです。
AWSとかEMRとかSSPとか。DMPもその一つですね。
ちなみにDMPはData Management Platformの略です。
ところでcosmiでは、データの管理にMySQLとMongoDBを利用しています。
私は開発時にはMySQLのGUIツールをよく利用するのですが、
MongoDBのGUIツールってあまり聞かないなと思ったので探してみました。
今日は触ってみたMongoDBのGUIツールを紹介してみたいと思います。
基本的にWEBベースの物を利用しています。
触ってみたGUIツールたち
- phpMoAdmin 1.1.2
- RockMongo 1.1.7
- mongo-express 0.18.0 (※)
- Genghis 2.3.11
※mongo-expressは最新版では、依存ライブラリのバージョンによって動かなかったため、
現在masterブランチに上がっているものを利用しています。
現在masterブランチに上がっているものを利用しています。
■phpMoAdmin
まずはじめにphpMoAdminです。
名前から分かる通りPHP製です。
phpMyAdminとかphpMyFaqとか似た名前のものがたくさんありますね。
1ファイルで出来ているので、apacheのDocument Rootに配置するか、
PHPのビルトインサーバで利用することが出来ますね。
インストール
$ wget http://www.phpmoadmin.com/file/phpmoadmin.zipでインストール完了です。
$ unzip phpmoadmin.zip
$ mv moadmin.php /var/www/html/moadmin.php
以下がその画面です。
何にもせず接続できました。
デフォルト設定で接続ができますが、Configファイルなどはないので
portを変えたり、認証をつけたりすると使えなくなってしまいます。
(無理やりコードを変更することで色々できますが・・・w)
基本的なデータの確認は可能ですが、ユーザ認証とかは無いみたいですね。
■RockMongo
次にRockMongoです。これもPHP製。
したがって、phpMoAdminと同様の方法で利用することが出来ます。
インストール
$ wget "http://rockmongo.com/downloads/go?id=14” -O rockmongo.zipこれで完了です。
$ unzip rockmongo.zip
$ mv rockmongo-1.1.7 /var/www/html/rockmongo
アクセスすると以下のような画面が現れます。
ログイン認証もできますが、以下のように
/var/www/html/rockmongo/config.php
の31行目を編集すれば認証を無くすことも可能です。
31 //$MONGO["servers"][$i]["control_auth"] = true;//enable control users, works only if mongo_auth=falseするとこんな画面が現れます。
32 $MONGO["servers"][$i]["control_auth"] = false;
RockMongoは結構機能が多そうですね。
データの確認も見やすくていいです。
■mongo-express
mongo-expressはJavaScript(node.js)製のGUIツールです。
CSSはTwitter Bootstrapを利用しているようで綺麗です。
インストール
$ npm install https://github.com/andzdroid/mongo-express/tarball/masterデフォルトだとconfig.jsが無いため怒られます。
・・・
$ cd node_modules/mongo-express
$ cp config.default.js config.js
$ vim config.js
なのでconfig.default.jsをコピーして使いましょう。
今MongoDBで認証は行っていないのでconfig.jsで認証が必要ないように変更します。
変更しないとConnectionErrorとコンソールに出てきます。
35 // adminUsername: 'admin',以下がアクセスした時の画面です。
36 // adminPassword: 'pass',
37 adminUsername: '',
38 adminPassword: '',
$ node app
Mongo Express server listening on port 8081
Database connected!
Admin Database connected
右のバツボタンを押したらこのレコード消してくれそうだなーと思って押したら
確認なしで消してくれましたw
とてもカジュアルですね・・・(´・ω・`)w
■Genghis
最後にGenghisです。
Genghisの読みがわからなくてぐぐったらチンギスハンのチンギスらしいです。
gem installでもできるらしいのですが、
PHPerな私はPHPのビルトインサーバを利用しました。
(色々躓いたわけでは決してないです。)
こちらもTwitter Bootstrapを利用しているのでどことなくモダンな感じです。
インストール
$ wget https://github.com/bobthecow/genghis/archive/v2.3.11.zip -O genghis.zipとして、アクセスしたら下のような画面にたどり着きました。
$ unzip genghis.zip
$ mv genghis-2.3.11 genghis
$ cd genghis
$ php -S localhost:8080 genghis.php
localhostを選択すればlocalhostのサーバにつながります。
その他にもAdd serverとやれば、他サーバのMongoDBにもつなげることが出来そうです。
localhostにつなげてみた画面が以下のようになります。
Twitter Bootstrapのおかげかとても見やすいですが、
findとinsertくらいの機能しかありませんでした。
まあ見やすければ・・・いいですかねw
全体的な比較
phpMoAdmin | RockMongo | mongo-express | Genghis | |
---|---|---|---|---|
Version | 1.1.2 | 1.1.7 | 0.18.0 | 2.3.11 |
言語 | PHP | PHP | JavaScript(node.js) | PHP or Ruby |
License | GNU GPL | BSD | MIT | MIT |
Github | phpMoAdmin | RockMongo | mongo-express | Genghis |
出来ること | ||||
データ コレクション データベース管理 |
◯ | ◯ | ◯ | ◯ |
認証 | × | ◯ | △(configファイル利用) | × |
他サーバアクセス | × | × | △(configファイル利用) | ◯ |
という感じでしょうか。
データの確認レベルであればphpMoAdmin以外はどれも良さそうだなーと思いました。
MongoDBにはAggregationやMap-Reduce機能もありますが、
それら用のなにか特別な機能はなさそうでした。
考えてみたら、結局難しい処理はシェルで打ち込んでしまうと思ってしまい、MongoDBにはAggregationやMap-Reduce機能もありますが、
それら用のなにか特別な機能はなさそうでした。
個人的にはGUIツールに要求する機能はデータの確認くらいという結論に至りました。
そうすると、データの確認がカジュアルにできる、
mongo-expressはかなりいいなと思います。
(開発環境とはいえ誤って複雑なレコードを消したら泣きそうですがw)
GUIツールは個人に依る部分があると思うので皆さんも試してみるといいかもしれません。
以下に検証に利用したレポジトリを用意したので、
是非みなさん、MongoDBのGUIツールと戯れてみてください。
VagrantとVirtualboxを利用してMongoDBのGUIツールを検証出来るレポジトリです。
https://github.com/tarata/mongo-gui-try