読者です 読者をやめる 読者になる 読者になる

sonoshouのまじめなブログ

情報系大学生からのウェブ見習い人生の記録

KVSとそのKVSを開発した企業まとめ

データサイエンティスト養成読本

ビッグデータ時代のビジネスを支えるデータ分析力が身につく!
という触れ込みに惹かれ、読んでみた。
全体としては、現在ビジネスに携わっている人向けに書かれており、
網羅的に全体像を把握することができるような印章を受けた。
(私が学生なのでピンと来ない部分は多くあったが、現在ビジネスをしている人にとっては、特に即戦力になる本だと思う。)

さらりと読んだ結果、NoSQLについて気になったので、
この部分だけをまとめようと思う。復習がてら。

データサイエンティスト養成読本 [ビッグデータ時代のビジネスを支えるデータ分析力が身につく! ] (Software Design plus)

まとめと感想

いきなり(一部の)まとめと感想を述べてみる。
KVSとそのKVSを開発した企業まとめ。

  • Google:HBase
  • Amazon:Dynamo
  • Facebook:Casandra
  • 10gen:MongoDB
  • LinkedIn:Voldemort

そうそうたる企業の数々。
ついでに、Twitter社は独自のストリーム処理技術であるStormがある。

なぜ日本発の世界標準が一つもないのか……。

日本発の技術が少ない点について、IT Proの読者からはあまり反論がないと思う。 マイクロプロセサ、オペレーティング・システム、データベース、開発ツール、開発言語といった基盤となる部分で、世界で使われている日本発の技術や製品はほとんどない。 業務用アプリケーションの分野を見ても同様である。サーバー製品を見ても、日本製品の存在感はまるでない。

---なぜ日本で独自技術は生まれないのか(上)より引用。--- http://itpro.nikkeibp.co.jp/free/ITPro/OPINION/20030610/1/

ほら、IT Proの記事にもなってる。

……実はこの記事、2003年の記事である。
今は2013年。10年間、まるで成長していない……。なぜなのか。

といってもこれはそっくりそのままヨーロッパにも言えるわけで。
アメリカの1強というのが正しい認識なのかもしれない。

「ビッグデータインフラ」入門

RDBMS

SQLをおもなデータベース言語とするデータベース。
SQLは最も基本的であり、40年間の間利用され続けたことによって、
高度に鍛えられている。

NoSQL

NoSQLとは"Nott only SQL"の略。 すなわち、データベース言語としてSQLを用いないデータベース。
代表的なデータベースとして、KVS(key value store)がある。

RDBMSとNoSQL

RDBはデータをテーブル形式で保持するが、 KVSはキーとバリューという目印をデータに与えて扱う。

Hadoopがもたらしたもの

近年のビッグデータ解析を支える重要な技術として、
分散処理フレームワークHadoopがある。
Haddopの要素技術であるKVSフレームワークMapReduce
分散ファイルシステムHDFSをさして、狭義のHadoopと言う。
また、講義では、ソフトウェアを含む開発プロジェクト全体をHadoopと言う。
元々Hadoopの要素技術はGoogleが自社のサービスで活用するために開発された技術だったが、Hadoopが公開されたことによって、様々な高度なデータ施策が容易にできるようになった。

データベースの種類

Hadoop

Hadoopプロジェクトの中で、データベースの役割を担うものに、
NoSQLデータベースのHBaseがある。
HBaseを利用する利点としてはRDBの強みであるテーブル間の演算操作を犠牲にして得た、強力なスケーラビリティが挙げられます。

Dynamo

Amazonが自社のサービスのために開発したKVS。
応答についての信頼性や高速性が追求されている。 DynamoDBはAmazon Web Servicesとして展開されている。
特徴を列挙する。

  • ユーザの管理を最小限にしたフルマネージドサービス。
  • データ容量は、無制限に拡張可能。
  • スループット性能は任意の値を指定可能。
  • ハードウェアはSSDを利用し、アクセス速度を担保。
  • 3箇所以上の異なる物理拠点にデータをレプリケーションし、可用性を担保。

Casandra

Facebookが自社のサービスのために開発したKVS。
HadoopのHBaseの源流であるBigtableとDynamoという2つのKVSを研究し、
両者の長所を取り入れたハイブリッドKVSとして登場。
データモデルについてはBigtableを、ストレージシステムについてはDynamoに類似させている。
これにより、Bigtableのストレージシステムに孕むSPOF(Single Point of Failture)を防ぐことができる。
HBaseと同じくオープンソース・ソフトウェアとしてApacheプロジェクトで開発が進められている。

MongoDB

アメリカの10gen社が開発したKVS。
RDBMSのリプレースを狙って開発されたオープンソースプロジェクト。
特徴を列挙する。

  • JSON形式のドキュメントで保存する「ドキュメント志向」により、データ構造の拡張が簡単。
  • インデックスの設定が可能。
  • JavaScriptによるMapReduceやHadoopを利用可能。
  • 蓄積データが増えるとコード変更なしで自動でスケールアウト可能。

スケーラビリティと高機能の両立を目指している。

VoltDB

PostgreSQLなどに携わっていたMichael Stonebrakerによって開発されたRDBMS
これまでのRDBMSと比べた時のメリットとしてオンメモリRDBMSであることが挙げられる。そのため、RDBMSでありながらKVSのような高速性を実現できる。

Voldemort

LinkdInの技術者が開発したKVS。 Dynamoをモデルとして作られており、オープンソース・ソフトウェアとしてApacheプロジェクトで開発が進められている。

こちらのSlideShareが参考になる。
http://www.slideshare.net/JoongjinBae/voldemort-dynamo