ビジネスインテリジェンスとデータウェアハウスの成熟
近年、データ・AI活用やDXなどが世間で注目を浴びているが、ビジネスの意思決定をデータに基づいて実施しようとする「意思決定支援システム(Decision Support System:DSS)」は1980年代から利用されており、意外にもその歴史は長い。そして、より分析しやすいUIを持つビジネスインテリジェンスと、それを実現するデータ基盤としてデータウェアハウスが80年代後半から広く認識され利用されるようになってきた。
データウェアハウスにおいて扱うデータは、データタイプ(整数、文字列、浮動小数など)や属性が厳密に管理された「構造化データ」が中心である。データが限定されているため、アトミックな処理が保証されるトランザクション機能、インデクシングによる高速化、データ品質を保つスキーマ強制、および、クエリ高速処理機能が開発・実装されてきた。また、利用者における観点でも、クエリ言語の標準化(SQL)も進み、どのデータウェアハウスを使っていてもSQLを基本としてデータ操作が共通に可能になっている。
このように、「構造化データ」のみを扱う上では、データウェアハウスは成熟した領域に達していると言えるだろう。
機械学習・データサイエンスの進展とデータレイクの登場
データウェアハウスの成熟の一方で、それだけでは対応できない新しいデータの利用方法が広がってきた。機械学習をはじめとする人工知能(AI)の進展とビジネスへの活用だ。機械学習やデータサイエンスでは、文書、画像、音声、ログデータ、センサーデータなど、あらゆるデータが対象になり、データタイプやサイズが多様であるため、これまでの構造化データと同じようにデータウェアハウスでは扱うことが難しい。これらのデータを「非構造化データ」と呼ぶ。そして、この非構造化データはテーブル形式ではなく、ファイルとして扱われることが多い。
非構造化データは、ネットワークでアクセス可能な通常のストレージ上に保存され、利用者はそこにアクセスし、分析に利用することが一般的だ。特に、クラウドベンダーが提供するオブジェクトストレージは安価、従量課金制、容量に上限がなく、ボラティリティーが高いデータ量に対して最適なコストで運用できることから、データレイクとして広く用いられることになった。
また、データレイクの利用には、ストレージに加えて、分析・処理のための計算リソースも同時に必要になる。この目的のために、安価のサーバーでクラスタを構成し、分散処理を実施するHadoopなどのシステムが開発され利用が進んだ。これにより、大量のデータを安価に処理し、安価に保存することが可能になったのだ。こうして、Hadoopなどを使用し、ログデータなどの大量なテキストデータ(非構造化データ)を処理し、小さいサイズになった集計結果をテーブルデータとして高価なデータウェアハウスにロードする使い方が一般的になった。これを抽出(Extract)/変換(Transform)/格納(Load)の頭文字を取ってETLと呼ぶ。
一方、機械学習の分野では、開発言語としてPythonが中心に使用される。よって、データのロードも通常のファイルアクセスのようにデータレイク上のデータを読み込み、分析や機械学習を実施してデータをファイルとして保存することが多く行われる。ファイル操作なので、データについては制約が特になく、操作の自由度が非常に高い。逆を言えば、データに対して何でもできてしまい、データ管理はユーザー側に委ねられているのだ。
実は、データレイクを運用する上での課題がここにある。つまり、企業などの組織レベル、もしくはエンタープライズ用途でデータレイクを運用する場合、そのデータの品質の管理が非常に困難になる。たとえば、頻発なデータコピーが発生する、データアクセス権限がファイルやフォルダ単位、データ破損の検知機構がない、派生データから上流のオリジナルデータをたどれず、データが正しいのかの正当性判断が難しいなど、実際の運用での課題は多岐にわたるだろう。
データレイクは、自由度やオープン性が高い一方で、こうした課題を運用などで補足して構築管理することが求められる。