データ基盤と ETL/ELT(DWH・データレイク・BigQuery)

DWH・データレイクの違いと、ETL/ELTの順序の違い。クラウドDWH時代のデータ基盤を整理。

大規模データ処理の土台、データウェアハウス・データレイク・ETL/ELT。

胡桃 あんず(普段) 胡桃 あんず

データレイクとデータウェアハウスって何が違うの?

若葉 みどり 先生(笑顔) 若葉 みどり 先生

どちらも大量データの保管庫だけど、使い方がちょっと違うのよ。 整理してみましょうか。

白銀 ゆき(普段) 白銀 ゆき

データウェアハウス(DWH)は『分析用に整形された構造化データ』の保管庫。 BigQuery・Redshift・Snowflakeが代表例。 SQL で分析しやすい。

胡桃 あんず(普段) 胡桃 あんず

データレイクは?

白銀 ゆき(普段) 白銀 ゆき

あらゆる形式の生データ(CSV・JSON・画像・ログ)を未加工で蓄積する保管庫。 S3・Google Cloud Storage・Azure Blob Storage が代表例。 安価で柔軟。

桜井 もも(普段) 桜井 もも

じゃあレイクが上流、DWHが下流みたいなイメージですかぁ?

若葉 みどり 先生(普段) 若葉 みどり 先生

そう、よくあるパターンは『レイク → 加工処理 → DWH → BIツール』。 加工処理がETLやELTよ。

白銀 ゆき(普段) 白銀 ゆき

ETL(Extract Transform Load)は『抽出→変換→ロード』。 加工してからDWHに投入。 古典的アプローチ。

白銀 ゆき(普段) 白銀 ゆき

ELT(Extract Load Transform)は『抽出→ロード→変換』。 まず生データをレイクやDWHに取り込み、必要に応じて変換する。 クラウドDWHの計算リソースを活用する現代的アプローチ。

# ELTの簡単な例(BigQueryへの接続)
from google.cloud import bigquery
import pandas as pd

client = bigquery.Client(project='my-gcp-project')

# 生データをレイクからロード
load_query = '''
  CREATE OR REPLACE TABLE `my_dataset.raw_orders` AS
  SELECT * FROM `my_dataset.s3_orders_external`
'''
client.query(load_query).result()

# DWH内で変換 (T)
transform_query = '''
  CREATE OR REPLACE TABLE `my_dataset.daily_sales` AS
  SELECT
    DATE(ordered_at) AS order_date,
    category,
    SUM(amount) AS total_sales
  FROM `my_dataset.raw_orders`
  WHERE ordered_at >= CURRENT_DATE - INTERVAL 90 DAY
  GROUP BY 1, 2
'''
client.query(transform_query).result()

# 結果取得
df = client.query('SELECT * FROM `my_dataset.daily_sales`').to_dataframe()
桜井 もも(普段) 桜井 もも

他に押さえておきたいキーワードってありますかぁ?

若葉 みどり 先生(普段) 若葉 みどり 先生

バッチ処理 vs ストリーミング処理、Hadoop・Spark(分散処理)、Kafka(ストリーミング)、dbt(SQLでELT)、Airflow(ワークフロー管理)は名前と役割を押さえて。

白銀 ゆき(普段) 白銀 ゆき

クラウドDWH3強: BigQuery(Google)、Redshift(AWS)、Snowflake(マルチクラウド)。 試験では『どれもDWH』『SQL中心で分析』を覚えれば十分。

胡桃 あんず(しょんぼり) 胡桃 あんず

うわぁ、覚えること多いなぁ…

若葉 みどり 先生(笑顔) 若葉 みどり 先生

DS検定★ではDWH/レイク/ETL/ELT/Hadoop/Sparkの『何の役割か』を押さえれば十分。 細かい実装は問われないわ。

確認クイズ

ELTとETLの違いとして最も正しいのはどれか。

  1. ELTはETLより必ず低速
  2. ELTはロードしてから変換、ETLは変換してからロード
  3. ETLは構造化データのみ、ELTは非構造化のみ
  4. 両者は同じ意味
こたえを見る

正解: 2. ELTはロードしてから変換、ETLは変換してからロード

ELTはロードしてから変換、ETLは変換してからロード。 順序の違いがそのまま名前の違いになっています。 ELTはクラウドDWHの計算リソースを活用できる現代的アプローチ。

桜井もも・胡桃あんずのイラスト。水族館で大水槽を鑑賞

この記事の関連書籍

Amazonアソシエイトリンクを含みます。他分野は おすすめ書籍ページ へ。

この記事について

データサイエンティスト検定スタディが作成した教材です。運営について・記事の作り方

試験についてはこちらをご覧ください: データサイエンティスト協会 公式サイト

この記事を共有