見出し画像

それ、ETLですか?ELTですか?

ETLとELTの違い、本当に分かっていますか?
データサイエンティスト・データエンジニアの仕事を数年やってきましたが、今までETLだと思っていたものが実はELTだったと気がつきました。
反省の意味も込めて改めてここにまとめます。

勘違いしていたこと

この図はETLとELTの比較でよく使われています。
つまり―
ETLは色んなデータソースからデータを取って(E)、加工して(T)、データウェアハウスに入れる(L)。
ELTは色んなデータソースからデータを取って(E)、まずはデータレイクに無加工のまま入れて(L)、それを加工しつつデータウェアハウスに入れる(T)。
ということです。

私は今まで後者をETLだと思っていました。
データソースから取ってきてデータレイクにいれるところまでがExtract、それを加工することがTransform、そしてデータウェアハウスにいれるのがLoad。

そもそも前者のデータレイクがないパターンは全く頭にありませんでした。

でもおかしくない?

ETLの説明でのLは「データウェアハウスにいれる」なんですよね?
一方ELTの説明でのTは「加工しつつデータウェアハウスに入れる」ですよと。

…「入れる」がLだったりTの一部だったりでおかしくないですか?
ELTは正確には「ELTL」ですよね。

さらにいうと、TLの部分はデータクリーニングと基礎集計とデータマート作成と…というように数段階に分けられるのが一般的です。
そうすると「ELTL」でもまだ正確ではなくて、「EL+(TL)×n」ということになります。

…ややこしいですね。
だから単純化してELTと呼ばれるに至ったのでしょうか。

まとめ

「ELTはETLの順番を変えたものです!」と言われますが、そのようなざっくり解釈だと誤解してしまいます。
ETLと比べてELTにはデータレイク層が追加されています。
でもその辺りを正確に表現するとややこしい名称になるのでELTに落ち着いた、と解釈しました。

参考

https://aws.amazon.com/jp/compare/the-difference-between-etl-and-elt/

この記事が参加している募集

仕事について話そう

よろしければサポートお願いします! いただいたサポートはクリエイターとしての活動費に使わせていただきます!