weblog of key_amb

主にIT関連の技術メモ

(メモ) NoSQL じゃなくて RDB を使う理由

今のところ ぶいてく: KVS上でアプリを動作させるために必要なたった2つのこと とほぼ同意見です。

  1. トランザクションを使う必要がある
  2. 単一の主キー以外で検索したい

この2つが主要な理由だと思います。

NoSQL になくて RDB にある機能としては、他にもテーブルの Join などありますが、スキーマレスな NoSQL であれば、頑張って Join する以外にもいろいろやりようはありそうな気がします。

一方で、上に挙げた2つの機能を実装した NoSQL もあります。 GoogleBigTable が一例です。 Amazon の DynamoDB にはトランザクションはありませんが、擬似的にトランザクションを実現することはできるようです。

BigTable, DynamoDB については別記事にまとめました。

それ以外の NoSQL 製品でもこういった機能がサポートされているものもあります。

ので、これまで RDB を使わざるを得なかった部分でも NoSQL の採用は進んでいくのではないかな、と思いました。

上に挙げた2つの機能が満たされる NoSQL であれば、NoSQL の持つ高いスケーラビリティと柔軟性の恩恵が享受できるだろうと想像します。

余談

LINE が使っている HBase は BigTableOSS 版ですね。

参考