
データベース・データウェアハウス・データレイクの違い
こんにちは、ひぢりです。
今回はデータベース、データウェアハウス、データレイクの違いについて書いていきます。
データベース、データウェアハウス、データレイクって何が違うのでしょうか?なんかExcelの大きい版がデータベースでしょ?それの大きい版がデータウェアハウスじゃないの?といった感覚の方も多いと思いますが、それぞれ役割と目的がことなります。
データベースって必要なの?Excelでいいじゃん
EXCEL(表計算ソフト)とデータベース何が違うのでしょうか?別にデータベースを利用せずともEXCELだけで業務データを管理すればよいのではないでしょうか?
はい、そうなのです。ある程度のデータ量や更新が少ない表とかはEXCELでいいのです。
ただし、データ量が増えて表が大きくなったり、更新処理が頻繁になったり、システム間連携が必要な場合には、データベースが必要になります。
そもそもEXCELには、最大行数1,048,576 、最大列数16,384 という上限があったり、列幅は255 文字までという上限があったりします。
さらに、表(テーブル)が大きくなればなるほど遅くなってしまします。その大きな表に追加とか削除とかする際には、遅くて使い物になりません。(開くだけで数分かかったりしてしまいます)
>いやいや、そんな大きな表なんて必要ないよーという声も聞こえてきそうですが、例えば販売実績とかで、1日に1万個の商品の販売実績をEXCELに入れた場合、たった100日で限界を迎えることになります。
また、販売実績が間違えていたので修正を書ける場合、マウスを使ってチマチマと右クリック>行挿入を人間がすることになりますよね。その修正作業、時間も労力もかかって大変です。
そこで出てきたのが、データベースというわけです。
データベースを使うと上記のような制限や運用が緩和されるのです!
EXCELでは、1,048,576行が限界でしたが、RDBを使うと無制限になります(あまりにもテーブルが巨大になると遅くなったりするのですが、、)。
また、テーブルの更新(追加・削除・修正)などは基本SQL文というのをつかってコマンドで指定して実行します。いちいち、目でみてマウスで挿入とかしなくていいのです。コマンドで実行するということは、プログラムで処理できるということです。これにより、システム間連携や自動化ができ、いろいろなシステムからデータベースに入ったデータの修正や参照ができるようになります。
この様に、扱うテーブルの大きさや業務システムによってデータベースかEXCELかを選択することになります。個人のアドレス帳管理程度ならEXCELのほうが扱いやすいですし、会社の業務システムとかはデータベースで構築することが多いですね。
データベースとデータウェアハウスの違いって?
ここからは、データベースとデータウェアハウスの違いについて見ていきます。
データベース(RDB)とデータウェアハウス(DWH)どちらもデータを蓄積し、分析することができ、SQL文まで取り扱うことができるのですが、決定的に違うところは、その役割・目的が異なるところです。
リアルタム処理に向いているデータベース
データベースは、(リアルタイムに)更新するシステムに向いています。一方DWHの方は更新しないデータを蓄積し、分析するシステムに向いています。
例えば、居酒屋の予約システムがあったとします。たくさんのお客様から時間や人数を予約するシステムです。当然キャンセルが入ったら、その時間は空きとして即座に表(テーブル)を更新しなければなりません。次の顧客に予約可能として表示させる必要があるので。なのでリアルタイム性が求められるため、このシステムはデータベースで構築することになります。
巨大なテーブルを扱うDWH
ただし、この様にRDBで構築したものにも欠点があります。それは扱うテーブルのサイズが大きくなりすぎると、更新処理や表示速度に時間がかかってしまうということです。
そこで出できたのが、データウェアハウス(DWH)です。
DWHは、更新が発生しないデータを蓄積かつ表示に特化したデータベースとなります。これに特化しているため、大きなテーブルでも取り扱うことができ、素早く表示できます。
このDWHは、上記でも述べていますが、更新が発生しないことがポイントとなります。更新が発生しないもの??そんなデータってあるの?ということですが、主に過去のデータ(履歴)を取り扱うシステムです。例えば先月の売上金額とか、過去の購入履歴だったりは過去の実績なので更新は発生しないですよね?
この過去の履歴データは更新する必要が無いため、表示に特化したデータベース、すなわちDWHに入れるほうが、向いているのです。
表にまとめると以下の様になります。

データレイクとは
では、次の用語として”データレイク”について説明します。
データレイクを知る前に構造化データと非構造化データの違いについて知っておく必要があります。
構造化データとは
Excelなどのように行と列を持ち、事前に定めた構造に整形されたデータのことです。表に値が入ったデータのことです。csvファイルでもいいですし、xmlエクセルデータでもいいです。値には、数字とかテキストの単語とかです。イメージしやすいように顧客のテーブル(例)を貼り付けます。

非構造データとは
一方非構造化データとは、動画データとか、画像データとか、テキスト文章とかです。これは表のデータとしては扱えません。
ここからようやくデータレイクの説明になります。
こういった構造化データや非構造化データを集めて一緒に保存しておく領域(器)のことをデータレイクといいます。あくまで器です。
構造化データと非構造化データを1つの器に入れておくことで、データの一元管理が可能になります。データを分析するには、構造化データのデータを分析しますが、非構造化データから、構造化データを作成することがよくあります。
例えば、レシートの画像データから購入日時や価格などをスキャンしてデータを取り出し、構造化データにするとかです。
このような、非構造化データ収集しておき、必要に応じて構造化データにして、分析をするといった具合に処理をしていくためには、1つの器にデータを集約させるほうが、管理面や処理時間システム間連携が不要とかのメリットが多くあり便利なのです。したがって、ビックデータを扱うシステムはデータレイクを用いることが必然となってくるのです。
以下にデータウェアハウスとデータレイクの比較した表を記載します。

以上となります