MySQLでNoSQL「Friendly」
FriendlyはRuby製のオープンソース・ソフトウェア。ここ最近話題になっているのがNoSQLという概念だ。NoSQLというのはRDBMSのようにスキーマを定義してリレーションを組んだものではなく、いわゆるスキーマレスで柔軟なシステム開発を可能にするデータベースだ。
こんな感じで定義する。まさにNoSQL
AmazonのSimpleDBやGoogle App EngineのDataStoreなどが良く知られているが、同様のNoSQLをMySQLで実現するのがFriendlyだ。FriendlyはRails用に開発されているライブラリで、スキーマを定義することなくデータベースを利用できるようにするものだ。
Friendlyはクラス名をテーブル名とし、クラスの中で定義した属性を利用できるようにする。特にその要素名でフィールドを作る訳ではなく、attributesというテキストフィールドに全て入れてしまうようだ。とは言え検索は自由にでき、inを使ったデータ抽出にも対応している。
アソシエーションにも対応
インデックスにも対応しており、定義すると自動的に別なテーブルが作られるようになっている。さらにキャッシュ機能もあり、memcachedを使ってデータをキャッシュできるようになっている。その他スコープやアソシエーションにも対応しているので、O/Rマッパーとして必要そうな機能は揃っていそうだ。
DataStoreを使いこなそうと思うと経験とそれに合わせたデータの持たせ方が重要だが、FriendlyはRDBMSとNoSQLの間にも成り得そうだ。色々な場面で活用できそうなソフトウェアだ。
執筆時のバージョン
0.4.1
jamesgolick’s friendly at master - GitHub