データレイク、データウェアハウス、データマートって結局なんなん?

はじめに

データレイク、データウェアハウス、データマートって何?って聞かれたらすぐ答えられますか?

なんかこれって概念的な話で会社によって全然異なったりしませんか?

よく聞かれることも多いので、ちゃんと自分の言葉にして残しておこうと思い、イメージとともに記載していきます!

データレイク、データウェアハウス、データマート

結論から、

データレイク=「生データ(なにも加工していないデータ)をそのまま集めた箱」

データウェアハウス=「大量のデータを集めるための倉庫」

データマート=「データウェアハウスに入ってるデータを特定の目的の部分だけ切り出したもの」

一言でいえば、簡単そうにみえますが、これだけだとあんまりイメージつかないですね。。。

一つずつ説明していきます!

データレイク

イメージはこんな感じ!!

ポイントは、「生データ(なにも加工していない)」ということ。

この生データをどこかに保存しておく箱のことをデータレイクとよく言います。

ただ、そもそも

最初こう思ってました。

イメージを用いて説明します。

みなさん、料理しますか??わたしは全くしません。Uber Eatsばかりです(笑)

例えば料理をイメージしていただくとわかりやすいのですが、カレーを作りたいってときに、材料として「にんじん」「じゃがいも」「たまねぎ」「豚肉」と用意すると思います。これを、ピーラーで皮を向いて、まな板と包丁を使って食べやすい大きさに切って、最後に煮込んで〜〜、カレーの出来上がり〜〜!って感じになると思うんですね!

データの流れも料理と一緒で、

材料→生データ
ピーラーや包丁で切ったり、鍋で煮込む→PythonやSQLを使って前処理する
カレーの出来上がり→BigQueryにいれる

とこのようにすでに出来上がった状態でBigQueryにいれるのがセオリーです!
ここで、下のイメージを見てみましょう!

カレーを作るのに、きゅうりやハム、生姜を使ったらめちゃくちゃまずいカレーしかできなさそうですよね。。。。作り直しってなったら、材料を取り直さないと行けないです。データの流れもこれと全く同じ概念です。

データの流れで言い換えると、、、

このように、いつでもやり直せるようにデータを残しておくことがデータレイクを用意するって意味になるんですね。

実際のデータ例でみてみると、、、

例えば、Google広告とYahoo広告のデータでカラム名が全然違ったり、日付の型が全然違ったりと、データ分析する際には整形する必要性があります。

このようにデータレイクとは

「いつでもやり直せるように生データを残しておく箱」という意味になります。

データウェアハウス

イメージはこんな感じ!!

ポイントは「データを集める倉庫」ということ。amazonとかの倉庫と同じ考え方です。

この倉庫のこと自体をデータウェアハウスとよく言います。

ただ、そもそも

って思いませんか??倉庫にいれなくても、DataPortalとかTableauとかのBIツールと直接連携しちゃえばいいじゃんと!

イメージを用いて説明します。結論これ!

スピード!!!!

amazonって昨日の夜頼んで、次の日の朝に届いたりしますよね!

これって「倉庫の中でどこになんの商品があるかしっかりと整理整頓されているから」なんですね!

データの流れも同じです!

BigQueryで一元管理することで、どこからデータをとってきて、どう管理しているのかひと目で分かります。

逆にBigQueryを挟まず、直接BIツールと連携するとします。新しくメンバーが入ってきたら、その人に一個一個このデータはこのツールから抽出してーこう整形してと細かく説明したいですか??

めっちゃ面倒だと思いません??

BigQueryにいれておけば、「BigQueryのこのテーブルでデータ元はこれで、このコードです」これだけですみます。

より経験者であれば、BigQueryみてください!でいいかもしれません(笑)

ということで、データウェアハウスとは

「データをすぐに取り出せるように一箇所に集めた倉庫」という意味になります。

データマート

イメージはこんな感じ!!

ポイントは「分析用のテーブル」ということ。

分析する際に必要なデータのみ取り出してテーブルにしたものをデータマートとよく言います。

ただ、そもそも

って思いませんか?別にテーブル分けなくてもでっかいテーブルの中から、SQLでそれぞれ指定してとってくればいいじゃんと!

これはイメージではないのですが、結論からいうと

という感じだと思います。

実務ベースのお話をすると、一つのでっかいテーブルにしてしまうと、「必要なデータどこにあるん?」「めんどいから、SELECT *で一気にとってきてしまうか」等、作業時間の増加やコストの増加が懸念されます。

これを事前にテーブルごとに分けておけば、そのネックも解消されるということです。

ということで、データマートとは

「管理しやすくするために作る分析用のテーブル」という意味になります。

 

まとめ

とはいえ、データレイク、データウェアハウス、データマートって会社ごとに異なる使い方をしたりして、絶対にこれ!!といったものは存在しません。

今まで説明してきたものもあくまで私の中でこう解釈しているっていうものです。。。

なので、結論以下のことだけわかってればいいかなと。

もし、わたしの解釈で間違っていることあれば、ぜひ皆さんの考えも教えてほしいです!