データレイクの概念について理解する

はじめに

データ基盤は役割別に3構成に分けることができる。その中でも今回はデータレイクの概念についてまとめる。

データ基盤の3構成

データ基盤はデータ活用用途別に1.データレイク層、2.データウェアハウス層、3.データマート層に分けることができる。

データ基盤の三層構造
ここで各層は役割(用途)を示し、特定の製品を使うことと同義ではないことに注意する。例えばデータウェアハウス層はデータウェアハウス製品と同義ではない。データウェアハウス層は「データクレンジングし、加工・結合したデータを格納する」という役割のことを指しており、データウェアハウス製品を使うことではない。実際にはエクセルでデータウェアハウス層を扱ったり、データウェアハウス製品がデータレイク層を扱うこともある。

データレイクとは何か

元のデータを何も加工せずにコピーして、多様な生データを一元的に集約して保存するためのストレージ。データレイクのデータはデータソースと一対一の関係になっている。

データレイクのイメージ

データレイクの思想

データ分析の重要性の高まりとともに、データレイクの必要性も高まっている。ここではデータレイクを構築する重要性について、データレイクがない3ケースに紐づく課題から説明する。

1. データレイクがなく、保存するデータがあらかじめ絞られている場合:
「元データのままでは使いにくい」、「生データを保存するのであればストレージコストの無駄」という考え方から、保存するデータをあらかじめ絞ってしまうケースがある。このケースでは分析が進むに連れて、他のデータが必要になったり、他の加工方法で利用したいなどの新しい分析ニーズが生まれた時に対応できないという課題がある。

2. データレイクがなく、データを加工してから保存する場合
「どうせ加工してから活用するので、加工後のデータを保存したほうがいい」という考え方から、加工したデータのみ保存してしまうケースがある。このケースではもしデータ加工方法に問題があった場合に調査することができないという課題がある。

3. データレイクがなく、取得したデータを一箇所に一元的に保存しない場合:
部署間でバラバラにデータを管理していて、生データを一元的に管理できていないケースがある。このケースでは、データソース(データ元)に修正が必要になった場合に各部署でデータ修正を行う必要があり、「Single Source Of Truth」が担保されないという課題がある。そのため各部署間でバラバラのデータを活用することになり、データ分析時に正しい示唆を得られない可能性がある。

これらの問題を解決するために、処理系と蓄積を分離し、大容量かつ多様なデータを一元的にひとつの保管場所「データレイク」に蓄積し、その中から必要なデータをその都度取り出そうという発想が生まれた。 またクラウドの普及により、安価に多様な生データをそのまま保存することが可能になったことでデータレイクの構築がより容易になっている。

データレイクの要件

1. 多様なデータを一元的に保存する(Single Source Of Truth)

様々な形式/フォーマットのデータをそのまま保存できる。また複数あるどちらかが「真」となるデータかわからなくなるのを避けるために一元的にデータを保存する。この特性のことを唯一「真」となるデータ格納場所として「Single Source Of Truth」と呼ぶ。

2. データを失わない

全てのデータの大元の参照場所となるため、データを失わないことは重要な要件になる。

3. サイズ制限からの解放

データの上限を事前に決めすにデータを保存することができる。データ活用が進むにつれて格納するデータは増加することが多いため、データ容量を容易に増やせる必要がある。

4. 決められた方法でアクセスが可能

複数のシステムと連携してデータを収集する必要があるため、データの追加や取得、更新などのAPIが用意されている必要がある。APIが定義されていれば、システム側の内部構造を気にすることなくデータを収集することが可能になり、呼び出し元と呼び出されるシステムの結合度合いを下げることができる(疎結合)。

まとめ

今回はデータレイクがどうして必要なのかについてまとめた。一方で現状多くのデータ基盤で各層ごとに異なるツールを使っており、保守性が低いという課題がある。次回は保守/運用も含めた最適なデータ基盤についてまとめたい。

参考