データエンジニアリング実践シリーズ 第一回【データエンジニアリングとは】

「データエンジニアリング」という言葉を聞いたことがあるでしょうか。

昨今、デジタルトランスフォーメーションが推し進められていることにより、データ活用の重要性がますます高まっています。中長期的な経営方針や意思決定のためにデータを活用するためには高度なデータ分析を行う必要があり、そのためにはデータ分析を行うための分析基盤が必要となります。このデータ基盤を構築・管理する技術および関連領域をデータエンジニアリングといい、これらを行う技術者はとりわけデータエンジニアなどと呼ばれることがあります。

データ分析を行うデータアナリストや、数理・統計学を用いてデータを活用するデータサイエンティストのために、ビッグデータ分析基盤や特定用途の分析のためデータを保存するデータウェアハウスなどを設計・導入するのがデータエンジニアリングの特徴と言えるでしょう。

それでは、データエンジニアリング領域におけるデータとは具体的にどういったことを指すのでしょうか。データという言葉を聞いた時、我々が思いつくものの一つとしてリレーショナルデータベース(RDB)があります。RDBを導入する時は特定のビジネスアプリケーション用に設計・最適化を行い、このRDBにはアプリケーションが必要とするデータのみが日々更新され、高パフォーマンスで運用されます。

さて、このRDB内のデータをビジネスの他の目的のために分析したい場合、以下のような課題が発生します。

・特定アプリケーション用に設計されており、データを他の目的で再利用しにくい。

・通常、RDBの保管領域サイズは数十GB~数百GBとなるケースが多いため、分析に必要な十分な期間のデータが存在しない

                      ・・・など

分析のためには目的別にデータを保管しておく必要が分かります。つまり、データの粒度や必要な期間を考慮してデータを整形して分析しやすい形で保存しなければならないということです。そこで登場するのがデータウェアハウスです。データウェアハウスは目的志向のデータベースになり、大量に蓄えたデータに関して効率的なデータ分析が可能なアーキテクチャとなっています。また、分析目的別にあらかじめデータを加工して保存しておくことで分析者が利用しやすい形でデータを保管しておくことができます。データウェアハウスはリレーショナルデータベースの一種でもあるので、多くのデータウェアハウスサービスは通常のSQLクエリでデータにアクセスすることができます。

データウェアハウスでの効率的なデータの分析と利活用は現在も主流となっていますが、データウェアハウスの利用が進むにつれ新たな課題が発生してきます。

・時代と共に分析したいデータの量が大幅に増加し、またドキュメントや画像などのRDSには保存できない非構造化データを分析したいという需要が高まってきた。

・データウェアハウスには特定の目的のために加工されたデータが保存されるが、加工されていない大量の生データを保存するデータ保管領域が求められてきている。

                      ・・・など

ここで登場するのがデータレイクです。データレイクは構造化・非構造化問わず大量のデータを保管することができます。また、生のデータを保存するので必要に応じてデータを加工した上でデータウェアハウスに保存し分析を行うことも可能です。

これら様々なデータ保管手法とBI(ビジネスインテリジェーション)ツールなどを組み合わせたデータ分析のための統合的なデータ基盤を設計・導入・運用し、データサイエンス・データアナリティクスを支援するのがデータエンジニアリングと言えるでしょう。

これらのデータエンジニアリングが注目されている背景として、AWS,Azure,GCPなどのパブリッククラウドサービスでデータウェアハウスやデータレイクなどのデータ基盤を安価に導入できることが挙げられます。従来で導入するだけでも高コストとなり手を出しにくかったMapReduceなどの分散処理フレームワーク基盤もクラウドの隆盛のおかげで、検証を気軽に行えるようになってきています。

本ブログでは、今後AWS,GCPなどのクラウドサービス上でデータエンジニアリング技術の利用方法を紹介していく予定です。