読者です 読者をやめる 読者になる 読者になる

GridFSを試す

MongoDB

GridFSはMongoDBをファイルシステムのように使う機能。

MongoDB supports the storage of large (file size) objects via a specification called GridFS.

http://www.mongodb.org/display/DOCS/Storing+Files

まずはPythonクライアントで試してみる。

# -*- coding: utf-8 -*-
from pymongo.connection import Connection
import gridfs

conn = Connection()
fs = gridfs.GridFS(conn.gridfs_test_db)

fp = fs.open("test.txt", "w")
fp.write("Hello, GridFS")
fp.close()

fp = fs.open("test.txt", "r")
print fp.read()

配布物にはGridFSを操作するコマンドmongofilesも含まれている。詳細は以下のページ。

MongoDBのレプリケーション機能を使えば、分散ファイルシステムっぽいこともできるのかも。MongoDBの配布物をぱっと置いてDBを起動させれば使えるのは、MogileFSやHDFSよりも楽でいいけど、真剣に使っている人っているのかな?


MongoDBのPythonクライアントのコードを見た感じではかなり気合の入った良いコードで、公式サイトのドキュメントも簡潔ながら結構充実しているし、全体として非常に信頼できるプロダクトだという印象を受ける。ただ、ネーミングセンスがちょっと残念じゃないか?GridFSで検索すると、たぶんMongoDBと関連のない別のファイルシステムに関する論文が出てくるし、前エントリで書いた"upsert"にしても、「upsertはないわー」と思うんだけど。