2011/7/28

大規模対応NoSQLデータベース「NanaHoshi」① ~NoSQLとは? スケールアウトとは?


大規模対応NoSQLデータベース「NanaHoshi」① ~NoSQLとは? スケールアウトとは?
先日弊社ではNoSQLデータベースソリューション「NanaHoshi」をリリースしました。

NanaHoshi(ナナホシ)は、オープンソースベースで大規模対応を実現したNoSQL DB。
Hadoopとの組み合わせにより大容量のデータを高速に処理することができます。
大規模EC システムはもちろん、POSやCRMなど、あらゆる業務システムにも適しています。

NoSQLとはどんなものなのか、Hadoopとはどんなものなのか、
今回はこのあたりを噛み砕いてみました!

NoSQLとは?

NoSQLデータベース、読み方はノーエスキューエルです。
従来のWebアプリケーションで広く使われていたRDB(リレーショナルデータベース)と
全く異なる構造のDBです。

RDBは、テーブルと呼ばれる表のようなデータ構造をしています。
EC-CUBEでもおなじみのMySQL、PostgreSQLといったオープンソースのDBがそうです。
この他に、商用DBとして有名なOracleやSQL ServerなどもRDBです。

NoSQLとはこれらRDBとはデータ構造が異なる
分散KVS、列指向データベース、ドキュメント指向データベースといったDBの総称です。
データ同士の関連性が弱く、データ構造がわりと単純です。

GoogleはGoogleクラウドサービスのように莫大なデータ量に対応するために、
BigTableというNoSQL DBを独自に開発しました。
この他、AmazonのSimpleDB、FacebookのCassandra(カサンドラ)などが有名ですが、
NanaHoshiはこのCassandraをベースにしています。

スケールアウトとは?

NoSQL一番の特長は、スケールアウトが可能という点です。
サーバの数を並列に増やして処理性能の向上を図ることをスケールアウトと言いますが、
RDBでは一般的に困難と言われています。
スケールアウトに対し、サーバの性能アップによる処理性能の向上をスケールアップと言います。
メモリやプロセッサを増設したり、高価な(高性能な)サーバに換えたりする必要があり、
また、台数のように”増やせば増やすほど”というものではなく、限界があります。

NoSQLはスケールアウトのしくみを持っているため、
クラウドのように柔軟に拡張・縮小し莫大なデータを扱うのに向いています。
このため、NoSQLはクラウドと相性のいいDBと言えます。

次記事ではトランザクションとHadoopについて噛み砕いてみます。