第6回 IoT(もののインターネット)とビッグデータ vol.2

第6回 IoT(もののインターネット)とビッグデータ vol.2

1.IoTとビッグデータ

早いもので、IoTの特集ももう6回目ですね。あと1回でラッキーセブンです。 と言っても今回のテーマとは何の関係もありませんが。

1-1.ビッグデータのおさらい

前回、ビッグデータについてお話しをさせていただきました。それと共にビッグデータを活用した新たな取り組み例として、IBMのコグニティブ・コンピューティング(人工知能)であるWatsonをご紹介しました。

ですが少々説明不足なところもあったと思いますので、簡単におさらいをしたいと思います。

ビッグデータを直訳すると『巨大情報』になるのですが、実はこの言葉が一番適切にビッグデータを表現しているとも言えます。

では何が『ビッグ(巨大)』なのか? ということになりますね。それがこの3つです。

  1. Volume(ボリューム:量)
  2. Velocity(ベロシティ:速度)
  3. Variety(バラエティ:多様性)

では少し具体例を挙げていきましょう。

  • Volume(ボリューム:量)
    現在、FaceBookの使用人口は全世界で6億人と言われています。もしこの6億人全員が、一斉に1KB(キロバイト)のメッセージを一斉に送信したとしましょう。 そのデータ量を計算すると・・・、

1KB × 6億人 = 1KB × 6 × 10の8乗 = 6 × 10の8乗(キロバイト) = 600GB(ギガバイト)

となります。

簡単に言えば、あなたのノートPCのハードディスクを一瞬で埋め尽くしてしまうだけの容量があるってことです。

今FaceBook上でやりとりされているデータ量は、1日で約500TB(テラバイト)以上だと、FaceBookのインフラ担当者は明かしています。(と言うことは・・・、クラスタ量はペタ(1,000TB!)レベルってこと!?)

やりとりされているデータ量が、いかに巨大化しているのか? を伺い知れる数値ですね。

  • Velocity(ベロシティ:速度)
    先の例で考えると、全てのデータを1台のサーバで処理すると仮定して・・・・・・。 1KBのメッセージ処理に1μ(マイクロ)セカンド(10の-3乗秒:0.001秒)の時間が必要だとした場合、全データ量が600GBですので、単純計算で600秒、10分の処理時間が必要になります。

もし仮定のようなことをやったとしたら、世界中で約10分間FaceBookがフリーズしてしまうことになるわけです。

  • Variety(バラエティ:多様性)
    先ほどの例では、メッセージに限定していましたが、実際にはそうではありません。『いいね』の場合もあれば、写真の場合もあります。動画もありますし、ファイル送信の可能性もあるわけです。

このようにやりとりされるデータの種類は、多種多様に分かれます。 その全てに対応しておかなければならないのです。

2.ビッグデータとデータベース

2-1.ビッグデータをどう処理するのか?

先程挙げたFaceBookのデータ量。それがまさに『ビッグデータ(巨大情報)』なのですが、IoTが本格化されれば、それが世界中に溢れることになります。

つまり以下に挙げる3条件をいかにスムーズに、かつ高速に、複雑な処理を行うのかが課題になってくるのです。

そこで出てくるのがデータベース(以下DBと略)というものなのですが、ここではDBそのものの説明をするよりも、その考え方に重点を置きたいと思います。

というのは、IoT時代の到来を前にして、DBの考え方そのものを見直そう。という流れに今なっています。

今までDBというと、RDBMS(Relational DataBase Management System)が主流でした。

一般的に『SQL言語』で動作しているものをDBと呼んでいた(もしくは定義していた)のですが、最近はそれが通じなくなってきています。

2-2.DBって何?

では、DBって何? ってことになる訳ですが・・・・・・。

極論を言ってしまえば、『データを扱うもの全てがDB』だと言えます。この考え方からすれば、一般的なDBソフトの代表格であるMS(マイクロソフト)社製の『Access』だけでなく、『Excel』も『Word』も『Googleカレンダー』も、更に言うならHPやサイトそのものも、データを扱う以上全てDBであると言うことができます。

話は少し逸れますが、一般的にDBというと、住所録を例に上げる方が多いのですが、この例は決して正しいとは言えません。

なぜなら、住所録というものは、1枚の紙に書けてしまうからなんです。実際にはもっと細分化して説明していくのですが、この例の場合、「1枚の紙に書けるものをわざわざ細分化する必要があるのか?」という疑問に突き当たるのです。

これではDBの必要性を説明できなくなるのです。

他にもう1つ使われる例としてあげられるのが、銀行の振り込みです。

AさんがBさんから買い物をして、Bさんの口座に1万円を振り込むことになりました。

AさんもBさんも口座には100万円入っています。

この時、AさんがBさんの口座に1万円振り込んだ時に、Aさんの口座は99万円になり、Bさんの口座金額は101万円になっていないといけない。

ということなのですが、これも「何当たり前のこと言ってんの?」ということになり易いのです。

この説明は『トランザクション』というコンピュータ上の処理の単位を表しています。もしこの『トランザクション』という単位の処理が行われなかったら、先に挙げた振込の例だと、銀行の預金額が勝手に増減してしまうことになるのです。

このようにデータを処理する時に、一連の動作によって分割されてはいけない単位のことを『トランザクション』という定義に当てはめているのです。

とは言うものの、一般的にイメージしにくいのも事実です。

RDBMSとかトランザクションと言うとイメージしにくいので、何か難しいもののように聞こえますが、実は当たり前のことを当たり前に処理するための定義ということになります。

ということで、これ以上は長くなるので、これ以降は次回に譲りたいと思います。

3.最後に

プログラマを目指す時に、このRDBMSの考え方は非常に役立ちます。逆の言い方をするなら、RDBMSの考え方がなかったばかりに、消えていったソフトやアプリは数知れません。

そしてRDBMSは、アルゴリズムと切っても切れない関係性を持っています。このことからも、1度はDBに触れておくことをお奨めします。

LEAVE A REPLY

*
* (公開されません)

CAPTCHA


*

COMMENT ON FACEBOOK