めも
データレイクってなんだろう。
RDBと比べて?
そんな内容について、教えていただいたことをめもとしてまとめてみます。
保存方法の違い
RDBって、データを保存する時にどうするでしょうか。
正規化をしていれば、
ユーザーがデータを保存するときに、
複数のテーブルに対応するように、データを分割してから保存すると思います。
例えば、usersテーブルと、user_itemsテーブル等々、複数のテーブルにデータを『整理』してから保存します。
では、データレイクはどうするか。
そのまま1つのデータを1つのデータとして保存します。
もちろん、カラムとしての特性はあって、ユーザーの年齢カラム等の情報はありますが、
テーブルのためにデータを分割して保存はしません。
保存方法から見る用途の違い
データレイクはそのまま保存することがわかりました。
取り出す時に、キャッシュや検索を上手く使ってデータを取り出します。
するとどんな利点があるか。
ビッグデータ、IoTの領域などで、リアルタイムに大量のデータを保存するときに役に立ちます。
保存する時に負荷のかかる処理をするRDBと比較して、保存時に頑張らないのがデータレイク。
データレイク遅くねって言われる話
保存するときに、大雑把には保存するのですが、ある程度はジャンル分けをされてるんです。
そのジャンル分けを適切にせず、なんとなく似てるからと本来2つに分けるべきジャンル分けを1つにしたらどうなるか。
単純に倍の量を探索する必要になります。
たくさんのデータを扱おうとしている領域において『倍』という言葉の重さは分かると思います。
なので、適切な設計が超重要です。
あとから変えようとしても、利用する現場の種類の関係上、その間もデータが取得され続けています。
そこで、設計を疎かにすると……
悲惨な事例とかが世の中に沢山転がっていそうです。