12
13

More than 3 years have passed since last update.

データ基盤を設計するにあたり「10年戦えるデータ分析システム」がめっちゃ役立っているのでメモ

Last updated at Posted at 2019-10-08


10年戦えるデータ分析入門 SQLを武器にデータ活用時代を生き抜く (Informatics &IDEA)

本書では、分析システムのあるべき形として、「SQL中心アーキテクチャ」というものが提唱されている。
BigQueryを中心に据えたデータ基盤を作りたいと思っていたので、大変参考になった。

SQL中心アーキテクチャとは

  • 1. 必要なデータを1つのデータベースに集める
  • 2. データの加工には原則としてSQLだけを用いる
  • 3. データベース内を論理的にソースデータ層・DWH層・アプリケーション層の3層に区分する

SQL中心アーキテクチャの利点

  • 企業のデータはほとんどRDBMSかHadoopにある
    • RDBMSもHadoopも共通点としてSQLが使える
  • サイズの制約がない
    • データ量が数MBでも数PBでも制約なく使える
    • BigQueryのような強力なデータベースの力を活かせる
  • エンジニアとプランナーの共通言語として優れている

SQL中心アーキテクチャの3つの層

名称未設定.png

ソースデータ層

  • 元データをそのまま格納した層

DWH層

  • 整理・統合された汎用共通データモデル層
    • 例: アプリケーション層で共通で使われる利益集計テーブルや、広告費用集計のテーブル

アプリケーション層

  • 特定の分析や分析システムに特化したデータや、集計済みテーブルを格納する層(データマート)
    • 例: DWH層の利益集計と広告費用集計から出したROIテーブル

段階的な構築

3層管理は面倒だと思われがちだが、以下のようなイメージで段階的に進めていくと面倒ではないはず。

  • 1. まずは元データをそのままデータソース層に貯める
    • 分析者は5、6人であればデータソース層から直接分析すれば問題ない
  • 2. 分析者が多くなり、データソース層だけでは厳しくなったらアプリケーション層を作る
    • 主に集計テーブルや、BIツール用のテーブルを作る
  • 3. さらに分析者が多くなり、アプリケーション層が乱立し、曖昧なデータの定義が混乱を生み出したらDWHを作る
    • 共通部分をくくりだし、アプリケーション層で曖昧だった定義を共通化し固める

ETLよりELTを使う

ETL
- Extract -> Transform -> Load という順番で、Transformしてから分析データベースに入れる
ELT
- Extract -> Load -> Transform という順番で、分析データベースに入れてからTransformする

BigQueryのような強力なデータベースを利用している場合は、ELTモデルの方が恩恵を受けられるという理由で、本書ではELTの方が推奨されている

12
13
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
13