SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

特集記事

実用段階に入ったNoSQLをおさらい
「Cassandra」の概要と導入手順・基本設定

  • このエントリーをはてなブックマークに追加

 このドキュメントは、NoSQLデータシステム「Cassandra」について解説するものです。数年前から「ビックデータ」が話題となっているので、いまさら遅いのではないかと思う方もいるでしょう。しかし、そうではありません。Cassandraを含めたNoSQLは、これからが本格的な実用フェイズなのです。これまでは、先端企業が技術実証のために取り組んでいました。これからは、CassandraをRDBのように自然に選択/活用するステージなのです。

  • このエントリーをはてなブックマークに追加

ビックデータとは

 はじめに、Cassandraが得意としているビックデータについて解説します。ビックデータという言葉が一般的に使われていますが、実際のところ何を指すのか、これまでとの違いは何かを説明します。

何に使われているのか

 「ビックデータ」とは、通常の処理では処理不可能な膨大な蓄積データを指す言葉です。これまでは、処理することをあきらめていた膨大なデータを処理対象とすることで、新しい答えを見出すことを目指しています。しかも短時間で処理することで、タイムリーな活用を目指すのです。

 これまでは、ばらばらに発生していたデータが、通信環境の発達でリアルタイムに収集することが可能になりました。個々のデータは小さくても、大量に集まれば膨大なデータです。せっかく集めた膨大データを活用するために時間が掛っては何もなりません。大量に集めたデータを短時間に効率よく処理して、処理結果を得られる必要があります。

 「ビックデータ」の活用モデルとして、よく紹介されるのがライフラインでの活用です。各種のライフライン(電気/水道/ガス)のメーターを通信回線に接続することで、リアルタイムに使用量を収集できるようになりました。もちろん、対象が多ければ膨大なデータになります。これらのデータをうまく活用できれば、飛躍的にきめ細かな解析が可能です。

図1:ライフラインでのビックデータ活用
図1 ライフラインでのビックデータ活用

何が新しいのか

 これまで、データ処理の担い手はRDB(リレーショナルデータベース)でした。ビックデータの場合は、NoSQL(Not only SQL)が担い手です。では、RDBとNoSQLは何が違うのでしょうか。

 RDBは、膨大なデータを格納でき、効率的に処理が可能です。では何が不足なのでしょうか。RDBは、データの一貫性を保証するのが大前提となっています。データの一貫性を保証するための機能を、ACID特性(Atomicity Consistency Isolation Durability)と言います。RDBは、ACID特性を実現するために数々の機構を組み込んでいます。実は、この数々の機構が処理時間の足枷となっているのです。NoSQLでは、データの一貫性の保証は目をつぶって高速処理を主眼としています。例えば、同時に同じデータ更新があれば、単純にリクエスト順に更新を行います。つまりNoSQLは、高速処理にフォーカスしたデータシステムと言えます。

 また、RDBは複雑なデータ構造を格納して処理できるようになっています。それに対して、NoSQLは単純なデータ構造を処理対象としています。単純なデータ構造なので、高速に処理が可能なのです。

 NoSQLの代表として話題となるmemcachedでは、Key-Valueストアという形でデータを保持しています。つまり、Key(キー:インデックス)に対してValue(値)が対応するもので、keyは重複せず一意となるものです。このような速度重視のデータ構造では、非常にシンプルなデータしか扱えません。後述するCassandraなど多くのNoSQLでは、市場のニーズに合わせて、もっと複雑なデータ構造を扱うことが可能です。

市場の動向

 ビックデータを処理するためにNoSQLの利用が増大しています。しかし、RDBがNoSQLに置き換わるのではありません。NoSQLとRDBの使い分けが重要と言えます。どちらを使用すれば効率的なのかを見極める必要があります。

 また、NoSQLとRDBがお互いの特徴を備えるようになっています。例えば、MySQL5.6には、memcachedのAPIが実装されており、MySQLをkey-Valueとして使用することが可能になっています。

 逆にCassandraには、SQLとよく似たステートメントで利用できるCQLが実装されています。つまり、SQL感覚でCassandraが使用できるのです。

 このようにNoSQLとRDBは、次第に接近してきています。将来的には、いずれの特徴も備えたプロダクトの登場もあるかもしれません。

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
NoSQLとRDBの違い

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
特集記事連載記事一覧

もっと読む

この記事の著者

佐藤 栄一(コネクト株式会社)(サトウ エイイチ(コネクトカブシキガイシャ))

PHPによるWebシステム構築をプロダクトとサポートサービスで支援するコネクト株式会社(創業時はゼンド・ジャパン株式会社)の創立メンバー。主要事業の一つであるMySQLの技術担当(Oracle Certified Expert,MySQL 5.1 Cluster Database Administrator)。ビックデータで注目を集めるCassandraも合わせて担当する。http://www.konekto.jp/

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/7548 2014/01/08 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング