IT社員3人組によるリレーブログ

某IT企業に勤める同期3人が、日常で思ったことを記録していきます (twitter: @go_mount_blog)

データレイクとは?DWHとどう違うの?

どうもKoheiです

三連休、いい天気が続きそうですね。 

 

前回までの記事でデータウェアハウス(DWH)+BIを中心とした解析環境の話をしておきました。

  今日はデータレイクについて書きたいと思います。

 

f:id:go-mount:20181123141631j:plain

 

データレイクとは?

みなさんはデータレイクという言葉は聞いたことがあるでしょうか?

2010年ごろにBIツール企業のPentahoのCTOであるJames Dixonが提唱した考え方で、構造化されたデータ、非構造なデータ問わず、あらゆる分析で利用する可能性のデータを保持することのできるシステムのこと。。。と言われています。

 

「考え方」というところがポイントで、こういう技術を使えばデータレイクになる!というような明確な定義がありません。

 

 

 データレイクが実現すること

定義が曖昧なデータレイクですが、 データレイクを通じて実現したいことは下記のとおりです。

  • 構造・非構造など形式に関わらずデータを蓄積できること
  • 生成されたのと同じ形式の生データを持つこと
  • 必要に応じてデータをピックアップし、加工・解析ができること

昨今IoTの発展や通信の大容量化により、テキスト、画像、動画、音声といった様々な形のデータが増え続けており、こうしたデータを解析して、次のビジネスにつなげることが必須になってきました。

こうした非構造なデータも含めて、まとめて貯めて置いて必要に応じて解析したい

というニーズを満たすのがデータレイクになります。

 

f:id:go-mount:20181123164116p:plain

 

DWHとの違いは

以前説明したデータウェアハウス(DWH) も「データの倉庫」としてデータ解析のためのデータを保持するシステムとして紹介しました。

 

DWHとデータレイクの最大の違いは、

分析目的に基づいたデータ設計がなされているか?

という点です。

 

DWHは主にRDBMSを使うケースが多く、それゆえ、分析したい要件に応じて事前にデータを加工・整理しています。

一方、データレイクは、まだ具体的な分析要件が固まってないけど、とりあえずためておくとなんか使えるかも、くらいの目的でデータを保持します。

つまりDWHより、より柔軟な分析要件にこたえられるような対応を想定しています。

 

f:id:go-mount:20181123165054p:plain

 

データの沼地

とはいえ、

ストレージ買ってきてデータをとりあえずデータを突っ込んでおけばokでしょ!

データレイク完成!

とすると落とし穴にはまります

 

ただやみくもにデータを貯めておくと、誰からも使われないデータ置き場になり、「Data Swamp(データの沼地)」になってしまうケースがあります。

  • 必要に応じてデータをピックアップし、加工・解析ができること

これを満たしていることが肝になります。

なので、単にデータストアとしての一面だけでなく、どんなデータが蓄積されているのかというメタデータ管理の側面も持ち合わせています。

 

データレイクを実現するアーキテクチャ

さて、最初にも言いましたが、データレイクを実現するための必須アーキテクチャは存在しないです。

要件に応じてNoSQLデータベースを作るかもしれません。

あるいは大容量のオブジェクトストレージを用意するかもしれません。

多種多様なデータを生情報として保持し、解析する際にピックアップできればokなわけです。

 

・・・とはいえ、データレイクとして使われるのに主流のアーキテクチャは存在します。それが以前も説明したHadoopになります。

 

go-mount.hatenablog.com

 

Hadoopがデータレイクとして適しているのには下記のような特徴を持つからです。

Hadoop分散ファイルシステムHDFS」によって様々なファイル形式のデータを保持することができる

これは、データレイク要件の中の

構造・非構造など形式に関わらずデータを蓄積できること

生成されたのと同じ形式の生データを持つこと

を満たします。

hadoopのコア技術である分散ファイル処理によって、多種多様なデータを保持することができ、容量が足らなくなったらサーバを増やすことでスケールアウトも容易です。

MapReduceやほかのHadoopエコシステムを通じて、HDFSに保存されているデータへのアクセス・加工が容易に行える

データレイク要件の中の

必要に応じてデータをピックアップし、加工・解析ができること

に該当します。

hdfsに保存されているデータに対しては、MapReduceを使った分散処理が可能です。

また、Hadoopエコシステムと呼ばれるHDFSへのアクセスや分散処理を簡単にするためのフレームワークがたくさん作られています。こうしたフレームワークを使えば、例えば、大容量データをSQLで簡単に処理したり・・・といったことも可能になります。

 

まとめ

データレイクについてまとめてみました。

データを蓄えて、ちゃんとデータをピックアップできればなんでもあり感があるデータレイクですが、きちんと保存したデータを活用できるように「メタ情報を管理すること」が要になります。データの沼地にならないように、よく考えてデータレイクを作って利用していくことが大事ですね

 

ではでは