データ分析のステップと、そこで活躍するインフラに関する用語・ベストプラクティスをまとめてみようと思いました。
「ベストプラクティス」なので、世間一般で使われる、(やや?)枯れた技術のまとめです。
データ分析のステップ
データ分析はいくつかステップがあります。
区切り方は諸説ありますが、大まかには以下のステップかなと思います。
- Ask:目的を明確化し、問い・仮説を立てる
- Prepare:データを準備する
- Process:分析しやすいようにデータを整理・処理する
- Analyze:実際にデータを分析する
- Share:分析結果を共有する
- Act:分析結果から行動を起こす
データ分析を支えるインフラ
上記ステップのうち、ビッグデータに対して、Prepare~Process~Analyze~Shareを手間を掛けず、効率的・自動的に処理できるようにするインフラがデータ基盤です。
データ基盤は、その機能で大まかに、データレイク・データウェアハウス・データマートに分かれます。
こちらの図が個人的イメージと近いです。
https://medium.com/@david.alvares.62/datalake-datawarehouse-datamart-with-bigquery-32f6c3735a9d
データレイク Data Lake
データの湖です。非常に大きい湖のイメージです。
データ基盤では上流に位置し、装置などから送られてくるデータが、まずここに入ってきます。
データレイクでは、多種多様な生データを貯めています。
生データのため、そのまま使いやすいものもあれば、加工が必要なものも入っています。
(一般的に、使いやすいデータ=表形式のデータを「構造化データ」と呼びます。)
そのため、ここがデータ分析に直接使われることは少ないです。
生データを貯めるため、ファイルシステムやAmazon S3などの比較的単純なストレージで構成されていることが多いです。
前述の分析ステップでは、Prepare~Processの段階で登場するかなと思います。
データウェアハウス Data Warehouse
データの倉庫です。Amazonの巨大物流倉庫のようなイメージで、多種多様なデータを扱いますが、整理整頓され使いやすい状態で保持されています。
データ基盤では中流に位置し、データレイクのデータを加工処理1して倉庫に貯めています。
データ分析では、このデータウェアハウスを用いて分析するはまあまああります。
ただし、「巨大物流倉庫」のため、「どこに何があるか」や「どうすれば効率的に扱えるか」といった、データを触る前の「コツ」があり、初心者には扱いにくいです。
データウェアハウスでは、データベースを使います。
小規模・単一データであれば表計算ソフトを利用する人が多いですが、データベースを用いると、大規模・複数のデータを一箇所で整合性が高い状態で管理できます。
データを取り出したいときも、計算処理や複数データを組み合わせた上で、所望の部分のみ抽出することができます。
前述の分析ステップでは、Process~Analyzeで登場するかなと思います。データサイエンティストであれば、結果をそのままShareすることもあるかなと思います。
データマート Data Mart
データの店舗です。小売店のイメージです。
データウェアハウスから必要なものを取り出し、特定用途に特化したデータを扱っています。
データウェアハウスは多種多様なデータを扱っているため初心者には扱いにくいですが、
データマートは特定の用途に絞っているため、高度な分析は難しいが、扱いやすいという特徴があります。
例えば、データウェアハウスには「全ての決済の詳細な情報」が入っている場合、それを集約した「日ごとの売上」がデータマートのイメージです。
データマートでもデータベースが使われることが多いです。
データマートの中身は比較的単純・軽量なデータであることが多いため、ストレージに書き出して扱うことも可能ですが、
ストレージにファイルを書き出す方式だとフォーマット変更などが容易で、データ整合性が保ちにくいため、
データベースを使うのがベストプラクティスかと思います。
前述のデータ分析ステップでは、Analyze~Shareで主に登場するかなと思います。
-
この、「データを使いやすい状態になるような加工処理」を「ETL処理」と呼ぶことがあります。Extract(ファイル抽出)、Transform(変換・加工)、Load(データベースに読み出し)の頭文字を取っています。
ETL処理により、不要な部分の削除、データの集約、簡易的な計算など、データの前処理を行います。 ↩