ページの本文へ

Hitachi

Open Middleware Report Web

いったん分けてから考えるのが分散KVSだよ!

今回のテーマは
「インメモリデータグリッド」です!
梅田先生、松本先生、よろしくお願いします!

みどるちゃん

はじめまして、みどるちゃん。

梅田先生

よろしくね、みどるちゃん。

松本先生

はい!
えっと、いきなりなんですが"イン・メモリ・データ・グリッド"って英語ばかりが続いていて、意味がよくわからないんですけど。

みどるちゃん

だよね、確かに(笑)。
データ・グリッドというのは"複数のサーバで構成された分散データベース"を指す言葉。
イン・メモリというのは"データをメモリの中に入れて"という意味だから、合わせると「大量のデータを複数のサーバのメモリ上に分散して管理するデータベース技術」という感じになるかな。

梅田先生

うーん、難しい…

みどるちゃん

データをメモリ上に置くのは、より高速なデータアクセスが必要だからなんだ。
一般的なデータベースは、データを外付けのストレージに書き込んで処理するから、データの読み書きが少し遅くなるけど、メモリなら高速に読み書きができる。
また、データを複数のサーバに分散するのは、データ処理を並列に実行することで高速化が図れるから。
1つの作業を分担すればそれだけ速く済むしね。
あとは、サーバを追加して、簡単に処理性能を上げられるからなんだ。これを「スケールアウト」と呼ぶんだけど、つまりは今まで以上に「高速性」と「拡張性」を追求するためのデータベース技術と考えればいいよ。

松本先生

なるほど、少しわかってきました!
でも、どうしてそういう新しい技術が必要になってきたんですか?

みどるちゃん

今までの技術だけでは、ビッグデータへの対応が難しくなってきたからなんだ。
現在も、世界各地で稼働している機械や設備から発信されるセンサーデータや通信ログなど、ネットワークを介して膨大なビッグデータが飛び交っているよ。
みどるちゃんの持っているスマホからも、位置情報、メッセージや通話のやり取りなど、いろんなデータを送受信しているんだよ。
それをいろんな所でいろんな人がやり取りしていたらビッグデータになっていくでしょ?

梅田先生

確かに、そうですね。

みどるちゃん

これらの情報をサービス品質の向上や将来予測などを目的に、集めて・貯めて・分析したいと考えても、一般的なRDBMS(リレーショナルデータベース)では、集めて貯めるだけで処理性能の限界がくる。
処理性能を向上させようとすると、より高性能なものに換える、「スケールアップ」という手法をとるんだけど、これだと性能が足りなくなる度に高性能なハイスペックマシンを新調しないといけなくてコストと時間が非常にかかる。
そこで注目されてきたのが、大量データを"集めて・貯める"ことに特化した、インメモリデータグリッドというわけさ。

松本先生

へーえ…

みどるちゃん

インメモリデータグリッドというのは、「NoSQL」とか「分散KVS」と呼ばれている技術に近い。
機能に多少の違いはあるけど、めざしているものは同じものだと考えていい。

松本先生

また難しい言葉が出てきました!
簡単に説明してください!

みどるちゃん

あ、そうか。ごめん(笑)。
えーとね、SQL(Structured Query Language)ってのはRDBMSでデータの問い合わせや操作に用いる言語のことで、つまりはRDBMSそのものを指す言葉なんだ。
だからNoSQL(Not Only SQL)っていうのは"RDBMS以外のデータベース"ってこと。
その代表的な技術が「KVS(Key-Value Store)」なんだ。
KVSはデータの「値」とそれを取得するための「キー」だけで構成されているから、処理がシンプルになり、高速化できる。
反面、RDBMSの要件を満たすテーブル間の関連定義や結合処理などの機能を持ってないから、複雑な条件での検索や集計が苦手とされている。
いわば、F1の車みたいに特定の機能を強化させたものなんだ。

松本先生

私もおやつを綺麗にとれる機能に特化したスマホが欲しいです!
この前アップした写真がイマイチだったので

みどるちゃん

みどるちゃん、それはもはやカメラの話にしかなってない…

梅田先生

えー、それでKVSは基本インメモリで動作するから高速になる。
さらに、安価なサーバをたくさん並べて分散処理をするのも簡単だから、「分散KVS」だと、RDBMでは受け止めきれないような大量データが押し寄せても、大丈夫。

松本先生

ほーお……

みどるちゃん

そういった分散KVSの特長を活かしながら、よりビッグデータをスピーディーに効率よく処理するためのミドルウェアとして日立が開発したのが、「uCosminexus Elastic Application Data store(EADs:イーズ)」という製品なんだ。
みどるちゃんはこれまでも、RDBMSや、ストリームデータ処理の勉強をしてきたと思うけど、EADsはそれら製品とはまた違うんだ。
この製品は、「最初の入り口でデータを受け取る」役割に特化している。

梅田先生

確かストリームデータ処理基盤も、すごい量のデータを素早く処理できるデータベースでしたよね?

みどるちゃん

確かに、1つの情報発生源やネットワークから間断なく流れてくるビッグデータをそのまま解析するならストリームデータ処理基盤が適役かもしれない。
でも何百、何千ものネットワークからドッと押し寄せてくる更新頻度の高いデータを処理するには、やはり速度的にも限界がある。
だから大量データを上流のところでいったんダムのように受け止めて、ある程度まとまった水流に分岐させてから、後工程の解析処理に回してやる方が、グンと効率がよくなるわけさ。

梅田先生

つまり、アイドルグループの握手会をさばく係員のようなものだね。

松本先生

握手会?

みどるちゃん

うん。人気アイドルグループの握手会やイベントには何万人ものファンが駆けつけるっていうけど、それを一気に会場入りさせたらパニックになってしまうよね。
だから専門の係員が、ファンがお目当てにするアイドルごとの例に並ばせて、一人5秒ぐらいの速さで握手させては次の人を送り出していく。
要はこれがEADsの仕事さ。
握手し終わった人全体を対象に待ち構えて「あなたの年齢は?CD何枚買いました?」って詳しく分析するのがRDBMsの仕事。
どう、なんとなくわかった?

松本先生

はい!
それならわかります。
そうか、握手会の裏ではデータベースがお仕事していた…?

みどるちゃん

3ページ中1ページ