一言でいうと
ETLとELTは、データを集めて、使える形に整えるまでの「順番」の違いです。
| 方式 | 順番 | 一言でいうと |
|---|---|---|
| ETL | 取り出す(Extract)→ 加工する(Transform)→ 格納する(Load) | 整えてから、しまう |
| ELT | 取り出す(Extract)→ 格納する(Load)→ 加工する(Transform) | まず、しまってから、整える |
たとえ話:食材の下ごしらえ
買ってきた食材を、冷蔵庫にしまう場面を考えてみてください。
- ETL:買ってきたその場で、洗って、切って、小分けにしてから、冷蔵庫に入れる
- ELT:買ってきた食材を、そのまま冷蔵庫に入れておき、料理する時に、洗って切る
ETLは、使う時にすぐ使える状態でしまえます。ELTは、元の食材が残っているので、あとから、別の料理にも使えます。どちらが良いかは、冷蔵庫の大きさや、料理の頻度によって変わります。
それぞれの特徴
| 観点 | ETL | ELT |
|---|---|---|
| 加工するタイミング | 格納する前 | 格納した後 |
| 格納されるデータ | 整えられたデータが中心 | 元のデータが、そのまま残る |
| 加工のやり直し | 元のデータを取り込み直す必要が出ることがある | 格納済みの元データから、再加工できる |
| 個人情報の扱い | 格納前に、伏せたり、除いたりできる | 元データに含まれるため、アクセス管理が重要 |
| 向いている場面 | 決まった形式で、安定して使いたい場合 | 用途が変わりやすく、柔軟に加工したい場合 |
なぜELTが選ばれるようになったのか
背景には、クラウド上のデータ基盤の変化があります。保存できる量を増やしやすくなり、格納先の処理能力も高まったため、**「まず全部入れて、必要な時に、格納先の力で加工する」**という方法が、現実的になりました。
元のデータが残るので、加工のルールを変えたくなった時に、やり直しやすいのも、利点です(データレイクとデータウェアハウスの違いの考え方とも関係します)。
ただし、「ELTのほうが優れている」わけではない
ELTは新しい考え方ですが、ETLが劣っているわけではありません。ELTには、次のような注意点があります。
- 個人情報や機密情報が、元データのまま、格納先に残る:閲覧できる人を、きちんと絞る必要があります(最小権限の原則とは)
- 加工のルールが、あちこちに散らばりやすい:人によって、別々の方法で加工すると、同じ指標でも、数字がぶれます
- 格納先の処理に、費用がかかる:加工のたびに、計算の資源を使います
一方、ETLは、格納前に、個人情報を伏せたり、品質を確認したりできるため、規制や社内ルールが厳しい場面で、選ばれることがあります。
例:売上データの流れで比べる
同じ「売上データを、分析に使える形にする」作業を、2つの方式で並べてみます。
| 段階 | ETL | ELT |
|---|---|---|
| ① 取り出す | 受注システムから、売上データを取り出す | 同じ |
| ② 加工 / 格納 | 日付の形式をそろえ、キャンセルを除き、個人情報を伏せてから、格納先に入れる | 取り出したデータを、そのまま格納先に入れる |
| ③ 格納 / 加工 | 整えたデータが、格納される | 格納先で、日付をそろえ、キャンセルを除き、集計用の表を作る |
| 後から定義を変えたい時 | 加工の処理を直し、元のデータを取り込み直す | 格納してある元データから、加工をやり直す |
ELTでは、元のデータが残っているため、「キャンセルの扱いを変えたい」といった場合に、元データから再計算できます。一方、その元データには、個人情報などが含まれたままなので、誰が見られるかの管理が欠かせません。
ELTでも「どこで加工するか」を決める
ELTの方式では、格納先で、さまざまな加工が行われます。そのままにすると、人ごとに、別々の加工が増え、数字がぶれます。そのため、格納先のデータを、段階に分けて管理する考え方がよく使われます。
| 段階 | 内容 |
|---|---|
| 元のデータ | 取り出したままの状態。基本的に、書き換えない |
| 整えたデータ | 形式をそろえ、重複や欠損を処理した状態 |
| 集計・分析用のデータ | 指標の定義に沿って、集計した状態。分析や報告は、ここを使う |
指標の定義は、最後の段階で、一か所だけで行うことで、誰が使っても、同じ数字になります。