Python

ETL(Extract/Transform/Load)とは何か?

はじめに

今回は、ETLを見ていきます。ETLとは、Extract/Transform/Loadの頭文字で、蓄積されたデータから必要なものを抽出(Extract)し、目的に応じて変換あるいは加工(Transform)し、変換後のデータを必要とするシステムに格納(Load)する機能です。
最近は、様々なETLツールが出回っていますので、ETLツールもいくつか紹介したいと思います。

ETLの詳細

ETLの概要を図で表すと、図1のようになります。

図1からわかるようにETLとは、外部のデータベースなどの雑多なデータソースから必要なデータを取り出して、必要な形式に整えて使いやすいように加工し、データウェアハウスに格納する機能を指します。このようなELT処理を行うETLツールが整備されており、ETLは我々の身近なものになっています。

では、ETLの各ステップを少し詳しく見ていきましょう。

1) Extract(抽出)

各会社は、経理、営業、生産、販売など様々な機能を持っていることが多いですが、各機能が共通のデータベースに情報を蓄積していることはあまりなく、機能あるいは部門ごとに持っている基幹システムやデータベースにデータを蓄積していることが多いです。

複数の機能からデータを集めて意思決定をするには、それぞれのデータベースに保管されているデータから、必要な情報を抽出(Extract)する必要があります。

ここで、情報を取り出すにあたっては、当然、ある使用目的があるわけですから、その後のプロセスを考えて、適切な情報を適切な形で取り出す必要があります。

ある程度システムがこなれてくれば、元データとしてどんなデータをどんな形式で保管し、そこからどの部分をどうやって抽出するかを、ルーチン化することも可能になります。

2) Transform(変換)

意思決定に必要なデータを抽出したら、次はその抽出したデータを加工して、DWHに保管可能な形に変換(Transform)します。

外部データベースを自ら設計できるのであれば、DWHへの保管を見据えてデータベースの設計することで、この変換のプロセスを飛ばし、外部データから抽出したらそのままDWHに保管できるようにすることも可能です。

しかし、第三者のデータベースからデータを抽出する場合、当然自社のDWHへの保管は考慮されていませんので、抽出したデータをDWHに保管できるように変換する必要があります。もし、外部のデータベースを構築する会社と、事前にデータベースの内容をすり合わせできれば、変換プロセスの工数や費用を削減できる可能性があります。

3) Load(格納)

外部からデータを抽出して適切に変換したデータを、最後にDWHに格納(Load)します。一般的なDWHはデータを取り込む機能を持っているので、DWH側で変換したデータを取り込むようにできますが、最近はETLツールを使ってETL側がDWHにデータを格納することが多くなっています。

ELTツールの紹介

ここでは、ETL処理を行えるツールをいくつか紹介します。様々なETLツールが出ていますが、ネットで活用事例を見つけやすいツールを主に紹介していきたいと思います。

1) Talend Open Studio

Talend Open Studioの大きな特徴は、無償のオープンソースソフトウェアであることです。まずは、試しにETLツールを使いたいという方は、このソフトで体験する方が多いようです。

無償ソフトではありますが、GUIが充実しているためアイコンの配置だけで開発できてしまいます。アイコンの配置だけではできない複雑な処理を行いたい場合は、Javaでコードを書くことで実現可能となります。

ETL行うための簡単なバッチ処理を、一人でスタンドアロンで開発するのであれば、無償版で十分対応可能ですが、チームで開発する場合、無償版では各PCの同期ができないため、有償版を導入する必要があります。有償版であれば、履歴管理やアクセス権の管理なども可能となるだけでなく、処理速度も向上するため、大規模な開発を行う時は、有償版を導入するとよいでしょう。また、無償ということもあり、サポート体制は不十分と考えてください。

いずれにしろ、無償版でもETLのバッチ処理を開発することは可能ですので、まずは無償版で色々試し、プロジェクトなど複数人での開発が必要となったときに、有償版の導入を検討するのがよいと思います。

2) ASTERIA Warp

国産のETLツールの一つです。

8,000社以上の企業で導入実績があり、日本でのシェアNo1でデファクトスタンダードと言えるソフトです。様々な処理をアイコンを配置するだけの、ノンコーディングで行うことができるため、ソフトウェアの開発者以外の人も、比較的容易に使うことができ、システム構築期間の短縮につなげられます。

本ソフトは豊富なアダプターが標準で用意されているため、様々なデータソースに対応でき、既存のデータを有効に活用できます。また、処理後のデータはTableauやExcelに出力できるため、データの利用者が利用しやすいという強みもあります。ASTERIA Warpは開発規模の大きい順に、Enterprise、Standard、Coreの3種類のラインナップがあります。最も規模の小さいCoreであれば、初期費用0円、月額3万円から始めることができますので、お試しで使ってみるにはよいかもしれません。

3) Waha! Transformer

こちらも、国産のETLツールの一つです。

本ツールは1999年にリリースされており、20年以上の運用実績があります。デンソーや旭化成など大企業での採用実績もあり、信頼性の高いツールと言えます。

高速処理性能が本ツールの強みでもあり、大量のデータでもストレスなく処理してくれます。また、他のETLツールと同様にプログラミングは不要で、複数のテンプレートからドラッグ&ドロップで組み合わせることで処理を設定できるので、プログラミングの経験がない方でも簡単に構築することができます。そして、サポート体制も充実しており、営業時間外であっても、24時間365日対応の緊急コールセンターが準備されているので、安心して使うことができます。

価格は決して安くはありませんが、性能やサポート体制を考えると、妥当ではないかと思います。30日間の無料体験が可能ですので、導入を検討されている方は、まずはそちらで触ってみるとよいでしょう。

おわりに

今回は、ETLの概要とETLツールをいくつか紹介しました。今後も、データに基づく意思決定の重要性は変わらないでしょうから、いかに効率よくデータを自分たちの使いたいように加工して、意思決定につなげるかが重要となります。

一から自前でETLのシステムを構築する選択肢もありますが、意思決定に自社のリソースを投入するためには、外部の使えるリソースは積極的に活用していくのがよいと思います。

参考サイト

ETL  【 Extract/Transform/Load 】  ELT

http://e-words.jp/w/ETL.html

ETL – Extract, Transform, Load

https://www.webopedia.com/TERM/E/ETL.html

ETLとは?データを使って企業の生産性を劇的に向上!【図説付】

https://boxil.jp/mag/a2415/

ABOUT ME
北爪 聖也
ダメ営業マンからデータサイエンティストへキャリアチェンジ。 技術とビジネスサイドの橋渡しが出来るため、ダメ営業マンの経験も役に立ちました。 広告代理店ADKにて3年勤務→データ分析受託の会社DATUM STUDIOにて1.2年勤務後、独立。
データサイエンスの仕事に興味がある方!

株式会社piponではデータサイエンティストの方々へお仕事をご紹介しております。

もし、仕事にご興味ある方がいらっしゃいましたらこちらのフォームよりご連絡頂けると嬉しいです。

また、「未経験から転職して1年で身につけたスキルで月収25万円の副業を得るまで」という記事を有料noteとして出していますので、興味ある方は購入いただけると嬉しいです!