では、それぞれのデータモデルの代表的なOSSを紹介したいと思います。
(1)Key-Value(キーバリュー)型
この型の代表的なNoSQLは、「Redis」です。
「Redis」の基本情報は、下記になります。
- 開発元:イタリアのSalvatore Sanfilippo氏が開発を開始。2009年にOSSとして公開されました。その後、2010年に米国VMware社が、Sanfilippo氏を雇用し、開発の支援をしてきました。現在は、2011年に設立された米国Redis Lab社で開発が進められています。
- 開発言語:ANSI-C
- ライセンス:3条項BSDライセンス(*1)
- サポートOS:Linux・Mac OS Xなど(Windowsは未サポート)
- 公式サイト:https://redis.io/
- 採用実績:
(国内)DeNA,サイバーエージェント、ニコニコ動画、GMO、LINE 他
(海外) github、flicker、twitter、intasgram、stackoverflow 他
- 特徴:
(ア)すべてのデータをメモリ上に保持するため、非常に高速でデータの読み込み/書き込みが可能になります。
(イ)また、一定期間ごとなどの条件でスナップショットをとり、再起動時にメモリ上に展開することでデータを永続化することができます。 高速に読み書きができるというメリットを享受しながら、データを永続化することができます。
(ウ)文字列だけではなく、バイナリデータ、リスト、集合(セット)、ハッシュなどを多様なデータを格納できます。
(2)ワイドカラム型
この型の代表的なNoSQLは、「Cassandra」です。
「Cassandra」の基本情報は、下記になります。
- 開発元:米国Facebook社で開発され、2008年にOSSとして公開されました。2009年3月からApache Incubatorプロジェクトとなり、2010年2月にはトップレベルプロジェクトに引き上げられた。
- 開発言語:Java
- ライセンス:Apache License 2
- サポートOS:Windows・Linux・Mac OS Xなど
- 公式サイト:http://cassandra.apache.org/
- 採用実績:
Facebook・Apple iCloud・Yahoo! JAPAN・ぐるなびなど
- 特徴:
(ア) 強力なスケーラビリティ:全てのノードがマスターレスな設計のため、スケールアウトが容易。
(イ) SQLライクなAPI:RDBに慣れたアプリ開発者の勉強コスト低減可能。
(ウ)マルチデータセンタ:ディザスタリカバリや収集・分析の分離に活用
(エ)整合性の自由度:整合性と可用性・性能を天秤にかけて調整可能
(3)ドキュメント型
この型の代表的なNoSQLは、「MongoDB」です。
「MongoDB」の基本情報は、下記になります。
- 開発元:2009年に米国10gen社により、OSSとして公開されました。その後、社名をMongoDB社と変えた同社が開発を進めています。
- 開発言語:C++
- ライセンス:GNU AGPL v3.0
- サポートOS:Windows・Linux・Mac OS Xなど
- 公式サイト:https://www.mongodb.com/
- 採用実績:
Ameba・MetLife・McAfee・gumiなど
- 特徴:
(ア)キーバリューよりも複雑なデータが簡単に扱える
(イ)スキーマレスなため、データ構造の変更が柔軟
(ウ)JSON形式であるため、エンジニアでなくても理解が容易
(エ)ウェブサービスやM2Mの標準的なデータ構造