エンジニアのひよこ_level10

【毎日更新!】新卒4年目エンジニアブログです!

データレイクとRDBの、データ保存方法から見た違いのメモ【948日目】

めも

データレイクってなんだろう。

RDBと比べて?

そんな内容について、教えていただいたことをめもとしてまとめてみます。

保存方法の違い

RDBって、データを保存する時にどうするでしょうか。

正規化をしていれば、
ユーザーがデータを保存するときに、
複数のテーブルに対応するように、データを分割してから保存すると思います。

例えば、usersテーブルと、user_itemsテーブル等々、複数のテーブルにデータを『整理』してから保存します。

では、データレイクはどうするか。
そのまま1つのデータを1つのデータとして保存します。

もちろん、カラムとしての特性はあって、ユーザーの年齢カラム等の情報はありますが、
テーブルのためにデータを分割して保存はしません。

保存方法から見る用途の違い

データレイクはそのまま保存することがわかりました。
取り出す時に、キャッシュや検索を上手く使ってデータを取り出します。

するとどんな利点があるか。
ビッグデータ、IoTの領域などで、リアルタイムに大量のデータを保存するときに役に立ちます。

保存する時に負荷のかかる処理をするRDBと比較して、保存時に頑張らないのがデータレイク。

データレイク遅くねって言われる話

保存するときに、大雑把には保存するのですが、ある程度はジャンル分けをされてるんです。
そのジャンル分けを適切にせず、なんとなく似てるからと本来2つに分けるべきジャンル分けを1つにしたらどうなるか。

単純に倍の量を探索する必要になります。
たくさんのデータを扱おうとしている領域において『倍』という言葉の重さは分かると思います。

なので、適切な設計が超重要です。
あとから変えようとしても、利用する現場の種類の関係上、その間もデータが取得され続けています。

そこで、設計を疎かにすると……
悲惨な事例とかが世の中に沢山転がっていそうです。