![見出し画像](https://assets.st-note.com/production/uploads/images/121945822/rectangle_large_type_2_ab51fe4f4b6ad27ec4273d6ca8f956bd.png?width=1200)
ビジネス職のためのデータ基盤入門:ETLからELT、そしてELTPへ
ETLとは
ETLとはなにか
ETLとは、あるデータベースからあるデータベースへ、データをコピーして格納する際に発生するプロセスの、Extract(抽出)Transform(変換)Load(格納)の頭文字を取った名称です。なぜ、このようなプロセスが発生するかというと、業務用システムのデータベースと、それらのデータを統合して分析基盤として使われるデータベース(いわゆるデータウェアハウス)の中では、データ保持の形式が異なることが多いからです。
たとえば、Aというデータベースでは、性別の情報を「男性」「女性」として保持しているとします。そしてそれをBという、性別情報を「1」「2」(1:男性 2:女性の意味)で保持するデータウェアハウスに格納するプロセスを考えてみましょう。その場合、
1.Aから「男性」 「 女性」というデータを抽出する
2.男性を「1」、女性を「2」という数値に変換する
3.Bに「1」「2」で格納する
のようなプロセスとなります。これがETLプロセスです。
ここでは、単純な加工の例を示しましたが、例えば、複数列から計算して元のデータベースでは計算されていなかった数値を算出したり、個人情報を削除したりなどするなども変換プロセスで行われるタスクとなります。
![](https://assets.st-note.com/img/1700204454066-73PjHQGNdA.png?width=1200)
代表的なETLツール
例えば、日本国内ではtroccoやAsteria warp、海外ではFivetranなどが有名です。その他にもクラウドベンダー(AWS、Microsoft、Googleなど)がそれぞれサービスとして各社のプラットフォーム上でETLサービスの提供を行っています。
ETLからELTの進化
従来、データベースからデータウェアハウスへのデータコピーは、抽出→変換→格納、の、いわゆるETLプロセスで行われていました。しかし、近年そのプロセスの主流が、抽出→格納→変換のELTプロセスへ変化してきました。
なぜこのような変化が起きてきたのでしょうか? それは、コンピューティングリソースとストレージが分離した料金体系のデータウェアハウスが出現してきたためです。これが分離することで、データウェアハウス内にデータレイク層を設けることができるようになってきたことが大きな要因の一つです。
ストレージとコンピューティングリソースが分離していない料金体系の場合、データ量が増えただけでもコスト増加が著しいので、不要なデータを削除したりして、必要十分なデータのみをデータウェアハウスに格納することが合理的です。そのため、「格納」の前に「変換」を行っていました。しかし、これには課題がありました。それは、例えば、そのときには不要だったが、後々使いたいデータが発見されたときに変換プロセスを組み直す必要があることです。これには、変換プロセスとともにデータウェアハウス側の変更もあり、迅速に対応することが難しい状況となります。
ストレージとコンピューティングリソースの料金体系が分離したデータウェアハウスの場合はどうでしょうか。ストレージの料金のみの場合、データ量を格納することに対するコストパフォーマンスが高いため、データウェアハウス内にソースデータをそのまま格納しても、後々の変更発生時のコストなどを考慮すると、データソースをそのまま格納してしまって自在にデータウェアハウス内で変換を行えるようにするほうが合理的な選択になりえます。また、ここでの変換はアナリストやデータベースエンジニアにとって慣れているSQLを使って行えることも利点となります。そのため、現在ではELTプロセスが主流となってきました。
ELTからELTPへ
ETLPとは
そしてこれからの時代では、ELTがさらに進化し、ELTPが重要になってくるのではないかと我々は考えています。Pとはなにか、これはPublishの頭文字で、データウェアハウスから別のデスティネーションへデータを配信することを指しています。
これは、いわゆるreverseETLと同様の概念となります。reverseETLは、一度データウェアハウスに格納して変換等したデータを、データソース側のアプリケーションに戻すことを指します。
![](https://assets.st-note.com/img/1700204563634-quA9lgoutm.png?width=1200)
reverseETLの重要性
なぜreverseETLが重要となるのでしょう。それは、データソースとなるアプリケーション以外のデータを使った情報をデータソースのアプリケーションに戻すことができると、従来よりもそのアプリケーションの価値を高めることができるからです。
例えば、Salesforceを例に取ってみましょう。Salesforce内でも既存顧客に対するロイヤリティの分類などは行えると思います。しかし、Salesforce内に、自社が提供するサービス(SaaSアプリケーションと仮定しましょう)のデータは入っていないので、実際にどのくらい使っているのかという情報を顧客のロイヤリティ分類の変数として使うことは通常できません。しかし、reverseETLができると、そのアプリケーションデータとSalesforceデータをデータウェアハウス内で統合した情報をSalesforceに戻すことができるので、実際の使用状況をもとにロイヤリティ分類などを行うことができます。このように、SaaSアプリケーションの価値を引き出すためには、reverseETLが必要となるのです。
ETLPプロセスへの進化
では、ELTP = revereseETLなのでしょうか。これは少し違います。ELTPの概念はreversETLを包含しますが、reverseETLよりも広い概念となります。ELTPのPublish先は、SaaSアプリケーションに限らず、パートナーのSFTPサイトや外部データベースなど多岐にわたります。例えば、今後より一層重要になるAI活用の文脈では、配信先は別のベクターデータストアになることも多いと思います。
このように、今後ますますデータの価値は重要になりますが、それを十二分に引き出していくためにはELTPプロセスの構築が重要となってくるのです。
弊社では、データ管理をAll-in‐oneで行うツール「Morph」を開発しています。もし今回の記事にあるようなデータ活用に興味・関心がある方、自社でのデータ活用について相談したい方は、ぜひ弊社にご相談ください。
この記事が気に入ったらサポートをしてみませんか?