ETLは企業内にある様々なシステムの「システム間データ連携」を効率的に構築するためのツールです。
近年、多くの企業にITシステムが浸透し、システムに蓄積された様々なデータを加工・集計し様々な経営活動に活用することが当たり前となりました。日々めまぐるしくビジネス環境が変化する現代では、ビジネス側から求められるデータ提供要件も日々変わります。このようなビジネスの変化に素早く対応するために多くの企業でETLが活用されています。
この記事では、ETLの概要からメリット、主な機能、導入する前に知っておくべき注意点などを、実際にETLを活用していたSEの視点からどこよりも詳しく解説します。ETLはシステム間データ連携を構築する非常に便利なツールです。この記事を読んでETL導入をぜひ導入して下さい。
1.ETLとは
ETLとは、企業内にある様々なシステムの「システム間データ連携」を効率的に構築するためのツールで、主に販売管理システムや在庫管理システムなどの基幹系システムとデータウェアハウスの連携に多く使われています。「ETLツール」と呼ばれることもあります。
また、ETLとはExtract(抽出)、Transform(変換)、Load(書き込み)の略で、主に「データ抽出機能」「データ変換機能」「データ書き込み機能」という3つの機能を備えています。ほとんどのETLでこれらの機能は「GUI」として提供されているため、ユーザーはノンプログラミングでシステム間データ連携を構築することができます。(※必要に応じてETL内でロジックをコーディングすることもできます)
主に以下の用途に使われています。
- システム間データ連携の開発
- 新システムへのデータ移行
- 分析用Excelのアウトプットなど
様々なデータを分析し経営活動に活用することが当たり前となった現代では、ビジネス側から求められるデータ提供要件も日々変わります。ビジネス要件の変化に素早く対応するためにETLをぜひ活用して下さい。
ETLの概要図
2.ETLを導入する3つのメリット
2.1.開発工数の削減、生産性アップ
ETLを活用する最も大きなメリットは、開発工数の削減と生産性のアップです。ETLはシステム間データ連携を構築するための様々な部品が予め用意されており、下図のようにそれらの部品を組み合わせることで、その企業独自のシステム間連携を構築することができます。そのため、1からプログラミングして構築する時と比べて、開発工数が削減でき大幅に生産性をアップすることができます。
2.2.開発品質の向上
ETLはシステム間データ連携を構築するための、品質が担保された様々な部品が予め用意されています。例えば、Oracleデータベースからデータを抽出したい場合、Oracle接続用の部品を使い接続先情報をフォーマットに従って設定するだけで簡単にOracleデータベースからデータを抽出できるようになります。このように、品質が担保された部品を使って構築するため、開発初心者でも品質の高いシステム間データ連携を構築することができます。
2.3.プログラムのメンテナンス性の向上
ETLを活用することで、プログラムのメンテナンス性を向上させることができます。
例えば、1からプログラミングして開発したシステム間データ連携は、開発した担当者がいなくなると可読性の問題からメンテナンス性が一気に悪化します。一方ETLは、ノンプログラミングで視覚的に分かりやすくできているため、次の担当者も簡単に仕様を把握しメンテナンスすることができます。
3.ETLの主な機能
3.1.データの読み込み(Extract)
ETLはデータベースをはじめ、Excelデータやテキストデータ、XMLなど様々なタイプのデータを読み込むことができます。読み込みの際に条件判定し、条件に一致したデータのみ次の処理に渡すといった処理も可能です。
- データベースからの読み込み
データベースに接続してデータを抽出するための機能です。
下図のように接続条件やデータ抽出条件を指定するだけで簡単にデータ抽出することができます。SQLを書くことで複雑な抽出を行うこともできます。ほとんどのETL製品がOracleやSQL Server、MySQLなど代表的なデータベース製品に接続することができます。
- 様々なファイルからのデータ読み込み
Excelやテキストファイル、XMLなど様々なファイルからデータを読み込む機能です。階層や繰り返し構造となっているデータも簡単に読み込むことができます。
3.2.データの加工(Transform)
読み込んだデータを加工する機能です。抽出したデータの結合や集約、不要カラムの削除や条件に一致したデータのみ加工するなどシステム間連携時に行う一般的な処理を行うことができます。
- マッピング
抽出したデータ同士をマッピングし結合させる機能です。キー項目などをマウス操作で簡単に結合させることができます。主に様々なデータをもとにデータベース書き込み用のデータを作る際に使います。不要なカラムをこの時削除することもできます。
- 集約
抽出したデータを集約(Group by)することができます。
- 置換
抽出したデータを条件に従って置換することができます。
3.3.データの書き込み(Load)
ETLは、データベースへの書き込みをはじめ、Excelやテキストファイル、XMLへの書き込み(出力)など、加工したデータを簡単に外部データに書き込み(出力)することができます。
- データベースへの書き込み
抽出・加工したデータをデータベースへ書き込む機能です。データベースへの接続方法を指定するだけで簡単に書き込みを行うことができます。この際Insertするのか、UpdateInsertするのかなど書き込み方法を指定することもできます。また、コミットタイミングの指定など細かい指定もでき大変便利な仕組みになっています。
- 様々なファイルタイプへの出力
ETLは、ExcelをはじめテキストファイルやXMLなど様々なファイル形式にデータを出力することができます。
複数のExcelをETLを使って加工・集計し1つのファイルにまとめて出力するなどお手のものです。Excelファイルの集計はどの企業のシステム部門でも要件が多く対応せざるを得ないケースが多いでしょう。VBAなどでも対応できますが、ETLを使った方が簡単に加工することができます。
3.4.その他様々な機能
ETLのメイン機能は、Extract(抽出)、Transform(変換)、Load(書き込み)ですが、その他にも便利な機能(部品)が多く用意されています。
- フォルダ処理
フォルダを作成や削除、フォルダ内のファイルをリスト化して取得するなど行うことができます。
- エラーハンドリング
実行結果ごとに処理を分岐させることができます。エラー時の戻り値の出力も可能なため、ジョブスケジューラー側で正常に処理が終わったのか、エラー終了したのか取得することもできます。
また、ログ出力も可能です。
- メール送信
ETLからメールを送信する機能です。加工したデータをExcel化し、メールに添付して配布するといった処理も可能です。
- 独自部品の開発(プログラミング)
ETLには予め様々な部品が用意されていますが、自社要件に応じた複雑な処理などに対応できない場合があります。そのような場合、ETL上でプログラミングして独自の部品を作ることが可能です。
- 条件分岐
条件を設定し、様々な条件分岐を作ることができます。
- 繰り返し処理(ループ)
条件を設定し、繰り返し処理を作ることができます。例えば、あるフォルダ内のファイルを一覧で取得し、順番に処理をしていったり、取得したデータを1行ずつ加工したりすることができます。
この章では、ETLの主な機能について解説してきました。非常に便利な機能を備えていることをご理解頂けたのではないでしょうか?次の章ではETLの製品タイプについて解説します。
4.ETLの製品タイプ
ETLは、サーバーかクライアント端末にインストールして使うオンプレミスタイプがほとんどです。無料から使えるオープンソースと有料のパッケージの2種類があります。それぞれメリット・デメリットがありますのでしっかり押えましょう。
4.1.オープンソース
メリット
- 無料から使うことができる
- 製品によっては有料のパッケージ版と同等の機能を使うことができる
デメリット
- 英語製品が多いため、英語で使い方を調べなければならない
- 障害時のサポートサービスがない
価格
- 無料~
向いている企業
- 試しにETLを使ってみたい企業
- 自社にIT知識豊富な社員がおり、メーカーによるサポートが不要な企業
- 障害が発生しても、事業へのインパクトが少ない部分でETLを使う企業
4.2.有料パッケージ
メリット
- メーカーによる研修やテキストがあり、比較的容易に使い方をマスターできる
- メーカーによるサポートが豊富で障害時や開発時に問合せることができる
- メーカーにETLを使った構築を発注することができる
デメリット
- 導入費用が高い。ETLのライセンス料 + サーバー費用が必要
価格
- 100万~1,000万以上
向いている企業
- メーカーによるサポートが必要な企業
- 基幹系など、止めてはならないシステム周辺でETLを使う企業
- 大規模システムのデータ連携を構築する企業
ETLの導入を検討している企業は、無料で使えるオープンソースを導入し、まずはETLがどのようなものか使ってみましょう。そして、活用する範囲によってオープンソースを使い続けるのか、有料パッケージを導入するのか検討して下さい。基幹系まわりなどでETLを使う場合は、サポートが豊富な有料パッケージを使うと良いでしょう。
5.ETLを導入する前に知っておくべき3つの注意点
この章ではETLを導入する前に知っておくべき注意点について解説します。ETLを導入することで多くのメリットを得る事ができますが、事前に知っておくべき注意点もあります。この章を読んで注意点についても理解を深めて下さい。
5.1.ETLでもITの専門知識は必要
「専門知識を持っていなくてもETLで開発を行うことができる」と書かれているサイトが多くありますが、実際にETLで開発を行ってきた筆者の意見は異なります。開発経験のまったくない人間が1人でETLの開発を行うことはまず無理でしょう。高度なプログラミング技術は不要ですが、以下のような開発に関連する様々な基礎的な知識が必要です。
- データベースの基礎知識
データベースに接続して様々な処理を行うことになります。そのためデータベースの基礎知識が必要です。 - SQLの基礎知識
SQLを書かなくてもデータの抽出は可能ですが、抽出時の結合方法などの指定は必要です。結合の種類(Left JoinやInner Joinなど)などSQLの基礎知識がないと正しくデータ抽出することは難しいでしょう。 - 設計スキル
システム間データ連携は、様々なデータを抽出、組合せて加工することも少なくないため、複雑な構造になることも多くあります。設計が悪いとパフォーマンスが悪くなってしまうこともあるため、基礎的な設計スキルが必要になります。
5.2.ETLの使い方を覚えるのに時間が掛かる
ETLは便利なツールですが、多くの機能があるため使い方を覚えるのに時間が掛かります。有料の数日間の研修を提供しているETLもあるぐらいですので、使い方をマスターするにもある程度時間が必要です。
5.3.導入に100万単位の費用が掛かる
とても便利なETLですが、有料パッケージでは導入に100万単位の費用が必要です。大きい金額になりますので良く検討してから導入しましょう。
6.主なETL製品
6.1.Talend Open Studio
概要
無料で使えるオープンソースのETLです。
え?無料でここまでできるの!?というくらい豊富な機能を無料で使えます。筆者もTalendを愛用していました。無料ながら有料パッケージと同等の機能を持っています。
まずETLを無料で試すならTalend Open Studioを使ってみて下さい。
ただ、大抵のシステム間データ連携は構築できてしまいますが、外国製品のため日本語の情報が少ないのが難点です。
おすすめポイント
- 有料パッケージと同等の豊富な機能
- 無料で使える
注意点
- 他製品に比べて使い方がやや難しい
- 外国製品のため日本語の情報が少ない
6.2.Rapid miner
概要
Talendと並んで世界中で利用されているオープンソースのETLです。世界40カ国以上で使われています。グラフでの出力などビジュアル機能もあり使い勝手の良いETLです。
おすすめポイント
- 他製品に比べて操作が比較的簡単
- 無料から使い始めることが可能
注意点
- 無料版だと機能やデータベースの制限がある
- 外国製品のため日本語の情報が少ない
6.3.IBM InfoSphere DataStage
概要
IBMが提供するETLで日本国内シェアNo.1のETLです。日立や伊藤忠テクノソリューションズなど多くの大手ベンダが販売しています。大企業向けの製品で、有料になります。
おすすめポイント
- 日本国内シェアNo.1
- 大企業を中心に多くの導入実績が多数
- 大企業の要件にも耐えられる豊富な機能
注意点
- 導入費用が高い(1,000万以上)
6.4.Informatica PowerCenter
概要
日本国内シェアNo.2のETL製品です。大企業を中心に多くの企業に導入実績があります。IBMと並ぶ大企業向けの有料製品になります。
おすすめポイント
- 日本国内シェアNo.2
- 大企業を中心に多くの導入実績が多数
- 大企業の要件にも耐えられる豊富な機能
- 様々なアドオンパッケージ
注意点
- 導入費用が高い(1,000万以上)
6.5.Waha!Transformer
概要
株式会社ユニリタが提供する純国産の有料ETLです。ユーザー研修やマニュアルもしっかりそろっており、比較的容易に使い方を覚えることができます。NECなど大手ITベンダも販売しており、大手ITベンダにも認められているETLです。中小企業~大企業まで幅広く導入されています。
おすすめポイント
- ユーザー研修やマニュアル、メーカーによるサポートが丁寧で初めてETLを導入する企業に向いている
- 操作性が高い(簡単に使うことができる)
- 価格が他の有料パッケージに比べて安い(200万円程度~)
- ミズノやデンソーなど日本の大企業への導入実績
注意点
- BMやinformaticaに比べると費用が安い分、機能面で劣る
7.まとめ
この記事ではETLの概要やメリット、導入の注意点まで詳しく解説してきました。ETLを活用することでシステム間データ連携を効率的に開発することができます。有料のパッケージは導入費用が1,000万以上掛かるものもあり、なかなか簡単には導入できません。試しにETLを使ってみるのであれば、無料で使えるオープンソースがおすすめです。次は、無料で使えるオープンソースのETLを導入して下さい。