NoSQL データベース比較

DBえんじにあの独り言

ビッグデータとNoSQLデータベース


logos マシンスペックの進歩により、ビッグデータの活用も現実化してきた今日この頃。「ビッグデータ活用のために、NoSQLデータベースを活用せねば!」と考えるIT部門担当の方や、エンジニアの方は多いかもしれません。しかしながら、一声にビッグデータといっても、様々な種類のデータがあります。NoSQLデータベースは、扱おうとするデータの特性に合わせて選択しなければ、後で痛い目を見るというのも事実です。色々な検証結果を載せているサイトがある中で、比較表にまとまっているサイトが少なかったので、以下にまとめてみました。

NoSQLデータベース比較


今回取り上げてみたのは、mongoDB・okuyama・Kyoto Cabinet・cassandra・HBaseの5種類です。okuyamaやKyoyo Cabinetは国産のNoSQLデータベースということで、ぜひとも頑張って欲しいものです。Kyoto CabinetはTokyo Cabinetの後継版みたいですね。

データベース名 mongoDB okuyama Kyoto Cabinet cassandra HBase
タイプ ドキュメント指向型 分散キーバリューストア 分散キーバリューストア Google Big Table + Amazon Dynamo 分散キーバリューストア (Hadoop)
開発元 10gen KDL
(神戸デジタルラボ)
FAL labs Apache Incubator Apache Software Foundation
採用実績 SAP、DeNA、SourceForge、Disney、サイバーエージェント、NAVER他多数 ワールド他 mixi Facebook、楽天、docomo、Twitter Facebook、サイバーエージェント
日本語コミュニティorマニュアル
特徴 ①スキーマレス
②シャーディングが容易
③レプリケーションが容易
④スケールアウトが簡単
⑤js実行エンジン搭載、MapReduce等に利用出来る
①データノード上でのJavascript実行機能
②keyだけでなくvalueを条件として検索を行える
③Tagでの検索により、複数条件の検索が可能
①TokyoCabinetに代わるものとして開発された
②memcachedから比較的容易な移行が可能
③keyだけでなくvalueを条件として検索を行える
①管理サーバーは存在しない。可用性の高いシステムが構築可能
②データは各ノードに自動的にレプリケーション
③ノードの追加削除は停止なしで行える
④4次元・5次元の連想配列
①GoogleBigTableを参考に設計
②負荷に対して非常に高いスケーラビリティと性能を発揮
③シンプルで強い一貫性モデル
④一般的なRDBと同じようなモデル
ライセンス DB:GNU AGPL v3.0
Driver:Apache License, Version 2.0
GPL GPL v3.0 Apache License, Version 2.0 Apache License, Version 2.0
画像の格納
(GridFS使用で大きいファイルも 扱い可能)

(大きいサイズのファイル扱い には向かない:~64MB)

NoSQL参考資料


最近はビッグデータ関連の書籍も続々登場していますので、参考までに。

RDBMSとNoSQLデータベースの違い


違いって何?って思われる方も多いかもしれませんが、一番ポイントとなるのはトランザクションの有無でしょう。高機能なNoSQLデータベースにはトランザクションが実装されているものもありますが、多くのNoSQLデータベースは高速化のためにトランザクションを実装していません。(逆に、トランザクションを使うと遅くなるってことですね。)データの信頼性を保持する必要がある場合には、その重要部分だけRDBMSを使用するなど、併用も考える必要があります。
利用シーンを十分に考えたデータベース設計が望まれますね!

profile

name:T-chan
work:System Engineer / DB Engineer
新しい技術を活かして新しい楽しいサービスを作れるよう、日々奮闘する仙台出身の人。
実は気象が好きだったりもする。