見出し画像

CS_DATABASE_ETL, ELTについて #346日目

コンピューターサイエンスの勉強をしていて、気になった単語についてメモしておきます。データベース関連の用語であるETLとELTに関してです。

かなり似た用語ですが、その意味が微妙に異なるので注意です。


ETL, ELTとは?

どちらも以下3つの略語になっています。
・Extract (抽出)
・Transform (変換)
・Load (書き出し)

ETLとELTはどちらもデータを加工してデータベースに保存する処理で、その処理の実行順と場所が異なるものです。

つまりETLもELTもデータ処理プロセスの一連の流れを意味します。データ分析作業の全体の中で、それがどのような位置付けであるか以下に図示します。各データ層を連携・接続するための技術として用いられています。

データ分析全体の流れ

データレイク・DWH・データマートの3層構造についても後日まとめたいと思いますが、現在一般的になってきている構造で、ETLとELTはそれらを繋ぐ役割を果たしています。

大元になっているデータソースは様々な形で企業の中に存在しています。汎用DB (RDBMS) に格納されていたり、Salesforce等のSaaSが元になっていたり、自社で独自に計測しているデータがあったり。これらのデータソースを分析したい時にデータを抽出し、加工してから別の場所に保存することがETLです。


ETLとELTの違いは?

前述の通り、処理の実行順と場所が異なります。

ETL
Extract(抽出)したデータをTransfer(変換)してから保存先にLoad (書き出し)します。データベースの外側で変換処理をすることから、プログラミング言語を用いて処理を実行します。また、変換処理を行うための専用エンジンが必要になります。

データが構造化されてから投入されるため、後続の分析作業が効率的になりますし、機密性の高い情報を事前に秘匿するなども可能です。

ELT
Extract(抽出)したデータを保存先にLoad(書き出し)してからTransfer(変換)します。データベース内で変換処理をすることから、SQLを用いて処理を実行します。データベースのリソースを使って変換処理を行うため、専用エンジンは不要です。

DWHにローデータを直接投入する分、ELTはETLと比較してデータの取り込みスピードが早くリアルタイム性のある分析が可能です。また、ローデータであるほど粒度が細かい情報なので、柔軟性の高い分析ができる可能性もあります。データベースの機能として変換処理を行うことため新たなプログラムを作る必要もありません。

ただし、ELTはデータベース自体に負荷がかかってしまい、処理中は他の人のデータベース利用に支障が出たり、容量を逼迫する可能性があります。また、ローデータを直接投入しているため、秘匿性の高い情報が紛れている場合はコンプライス的にも要注意です。


ETLは20年以上の歴史がありツールも豊富みたいですが、一方でELTはまだまだ発展途上の技術という感じでした。

ここまでお読みいただきありがとうございました!!


参考


この記事が気に入ったらサポートをしてみませんか?