イー‐ティー‐エル【ETL】
Extract/Transform/Load
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/12/24 06:36 UTC 版)
Extract/Transform/Load(略称:ETL)とは、以下のようなデータフローを指す。
- Extract - 情報源からデータを抽出
- Transform - 抽出したデータをビジネスでの必要に応じて変換・加工
- Load - 変換・加工済みのデータをターゲットシステムやファイルとしてロード
ETLという用語はデータウェアハウスでのデータのロードだけでなく、任意のデータベースでのロード工程を指すこともある。ETLはレガシーシステムとモダンシステムのデータ統合にも使われる。通常のETL実装は、処理についての監査証跡を記録する。
抽出 (Extract)
ETL工程の第1の部分は、情報源となるシステムからデータを抽出することである。たいていのデータウェアハウス構築では、複数の情報源からデータを集積する。個々の情報源はデータの構成やフォーマットが他とは異なる可能性がある。典型的な情報源のデータフォーマットとしては関係データベースやフラットファイルがあるが、IMSのような非関係データベース構造や、VSAM や ISAM といった他のデータ構造もある。抽出においては、次の変換・加工工程に適したフォーマットに変換する。
抽出の本質は、抽出したデータの構文解析であり、それによってデータが期待したパターンや構造に適合しているかどうかを調べる。適合していない場合、データは抽出対象から除外することもできる。
変換・加工 (Transform)
変換・加工工程では、情報源から抽出したデータに一連の規則や関数を適用し、ターゲットにロードできるデータにする。データによってはほとんど変換・加工を必要としないこともある。それ以外の場合、以下のような変換を1つ以上加えることで、最終ターゲットが必要とする形にする。
- 特定のカラム(列)だけを選択する(ロードしない場合はNullカラムを選択)。
- 符号値の変換(例えば、ある情報源で男性を"1"、女性を"2"としていて、データウェアハウスでは男性を"M"、女性を"F"としている場合など)を自動データクレンジングと呼ぶ。ETLにおいては、手動でのクレンジングは発生しない。
- 個人情報の秘匿 (例えば住所・氏名・電話番号など "*" などに変換する)
- 自由形式の値を符号化(例えば、"男性" を "1" に、"Mr" を "M" にマッピングするなど)
- 新たに計算した値を導出(例えば、「売上高 = 販売数 * 単価」といった計算)
- 複数の情報源のデータの統合(マージなど)
- 複数行のデータの集約(例えば、販売店ごとの総売り上げ、地域ごとの総売り上げなど)
- 代替キー値生成
- 転置または回転(行と列の入れ替え)
- カラムを複数のカラムに分割する(例えば、CSV形式で1つのカラムに複数の要素がある場合、それを分割して複数のカラムにする)。
- 単純または複合データの妥当性検証を任意の形式で適用する。規則設計と例外処理によって、そのデータを次のステップに渡すかどうかを決定する。上述の変換・加工の多くは、例外処理の一部として実行される(例えば、ある位置のデータが期待した符号で解釈できない場合など)。
ロード (Load)
ロード工程は、データをデータウェアハウス (DWH) )などの最終ターゲットにロードする。その組織の設定した条件によって、この工程は大きく変化する。累積データを週単位で上書きするDWHもあれば、履歴構造のあるデータに新たなデータを時間単位で書き加えるDWHもある(1つのDWHでこれらが混在する場合もある)。上書きと追記のタイミングや範囲は設計戦略の一部であり、時間とビジネスでの必要性に依存する。より複雑なシステムでは、全てのデータロード時の変更について履歴と監査証跡を保持する。
ロード工程ではデータベースとやり取りするため、データロードで起動したトリガーだけでなく、データベーススキーマで定義された制約(例えば、唯一性、参照の完全性、義務的フィールドなど)が適用される。それらはまた、ETL工程全体のデータ品質向上に寄与する。
課題
ETLは非常に複雑であり、不適切に設計されたETLシステムでは運用上の大きな問題が発生しうる。
設計者が検証・変換規則を指定した時点では想定していなかったデータ値の範囲や品質が運用時に見つかることがある。分析工程で情報源のデータプロファイリングを行い、データの状況を把握することで、変換規則を指定するのに役立てるのが望ましい。
DWは一般に、複数の用途の異なる情報源から非同期にデータを供給される。ETLは異質で非同期の情報源から同質の環境を抽出するための鍵となる工程である。
ETLシステムのスケーラビリティは分析時点で考慮しておく必要がある。これには、サービス水準合意 (SLA) の範囲内で処理すべきデータの量を把握しておくことも含まれる。情報源からのデータ抽出にかけられる時間は運用していく中で変化する可能性があり、時間が短くなっていく可能性がある。ETLシステムによっては、数十テラバイトのデータウェアハウスの更新のためにテラバイトレベルのデータを処理する必要があるものもある。処理すべきデータ量が増大すれば、日々のバッチ処理では追いつかなくなり、一日に何度もバッチ処理する「マイクロバッチ」に移行したり、さらにはメッセージキューと統合したり、リアルタイムのデータ変更把握が必要となる可能性もある。
並列処理
ETLソフトウェアでの最近の開発は主に並列処理の実装である。並列処理によって大量データを扱うETL工程の性能が全体として向上する。
ETLアプリケーションの並列性は以下の3種類に分類される。
- データ
- 単一の逐次ファイルを複数のデータファイルに分割することで、並列アクセスが可能になる。
- パイプライン
- 複数のコンポーネントを直列接続して、同時に実行する。
これらの並列性は単一のジョブとして実施されることが多い。
さらなる困難さは、ロードされるデータの相対的一貫性の保証にある。情報源となるデータベースはそれぞれ固有の更新周期があるため(数分で更新されるものもあれば、日単位や週単位で更新されるものもある)、ETLシステムは全情報源が同期するまでデータを保持しておく必要がある。同様にデータウェアハウスは情報源システムや帳簿と一致させる必要があるため、同期の確立が必要となる。
ツール
ETLシステムはほとんどどんなプログラミング言語でも作成できるが、一から作るのは非常に大変である。このためETLツールを購入する企業が増えている。
確立されたETLフレームワークを使うことで、コネクティビティとスケーラビリティが向上する。よいETLツールは様々な関係データベースを扱え、様々なファイルフォーマットを扱える。ETLツールは、企業アプリケーション統合やエンタープライズ・サービス・バスに統合され始めており、システムは全体として Extract/Transform/Load 以上の機能をカバーするようになりつつある。ETL製品は、データプロファイリング、データ品質、メタデータ機能などを含むようになっている。
製品リスト
- ASTERIA WARP
- Talend Data Integration
- DataCoordinator
- JasperReports ETL
- DataSpider Servista
- Syncsort DMExpress
- DataStage
- PowerCenter
- Waha! Transformer
- Simple Data Integrator
オープンソースのETLフレームワーク
- Talend Open Studio
- JasperReports ETL
- Clover.ETL
- Enhydra Octopus (Java Web Start によりウェブブラウザから起動)
- Pentaho Data Integration
参考文献
![]() | 出典は列挙するだけでなく、脚注などを用いてどの記述の情報源であるかを明記してください。 |
- Kimball, Ralph; Joe Caserta (2004年). The Data Warehouse ETL Toolkit. Wiley. ISBN 0-7645-6757-8
- Kimball, Ralph; Margy Ross (2002年). The Data Warehouse Toolkit: The Complete Guide to Dimensional Modeling (2nd edition ed.). Wiley. pp. 358-362. ISBN 0-471-20024-7
- Kimball, Ralph; et al. (1998年). The Data Warehouse Lifecycle Toolkit. Wiley. ISBN 0-471-25547-5
関連項目
外部リンク
- ETL Benchmarks v1.1 (PDF, 2.1 MiB)
Extract, Transform, Load
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/03/21 23:21 UTC 版)
ナビゲーションに移動 検索に移動
コンピューティングにおいて、Extract, Transform, Load(ETL)とは、1つまたは複数のソースから、ソースとは異なるデータ、またはソースとは異なるコンテキストでデータを表現する宛先システムにデータをコピーする一般的な手順である。ETLプロセスは、1970年代に一般的な概念となり、データウェアハウスでよく使用される[2]。
データ抽出では、同種または異種のソースからデータを抽出し、データ変換では、データクリーニングを行い、クエリや分析を目的とした適切な保存形式/構造に変換することでデータを処理し、最後にデータロードでは、運用データストア、データマート、データレイク、データウェアハウスなどの最終ターゲットデータベースへのデータの挿入について説明する[3] [4]。
適切に設計されたETLシステムは、ソースシステムからデータを抽出し、データの品質と一貫性の基準を適用し、別々のソースを一緒に使用できるようにデータを適合させ、最終的にアプリケーション開発者がアプリケーションを構築し、エンドユーザーが意思決定できるように、プレゼンテーションに適したフォーマットでデータを提供する[5]。
データの抽出には時間がかかるため、3つのフェーズをパイプラインで実行するのが一般的である。データを抽出している間に、別の変換プロセスが実行され、すでに受け取ったデータを処理してロードの準備をしている間に、前のフェーズの完了を待たずにデータのロードが開始される。
ETLシステムは、複数のアプリケーション(システム)からのデータを統合するのが一般的で、通常は異なるベンダーが開発・サポートしたり、別々のコンピュータ・ハードウェアでホストされている。元のデータを含む別々のシステムは、しばしば異なる従業員によって管理・運営されている。例えば、原価計算システムでは、給与、販売、購買などのデータを統合することができる。
抽出 (Extract)
ETL工程の第1の部分は、情報源となるシステムからデータを抽出することである。たいていのデータウェアハウス構築では、複数の情報源からデータを集積する。個々の情報源はデータの構成やフォーマットが他とは異なる可能性がある。典型的な情報源のデータフォーマットとしては関係データベースやフラットファイルがあるが、IMSのような非関係データベース構造や、VSAM や ISAM といった他のデータ構造もある。抽出においては、次の変換・加工工程に適したフォーマットに変換する。
抽出の本質は、抽出したデータの構文解析であり、それによってデータが期待したパターンや構造に適合しているかどうかを調べる。適合していない場合、データは抽出対象から除外することもできる。
変換・加工 (Transform)
変換・加工工程では、情報源から抽出したデータに一連の規則や関数を適用し、ターゲットにロードできるデータにする。データによってはほとんど変換・加工を必要としないこともある。それ以外の場合、以下のような変換を1つ以上加えることで、最終ターゲットが必要とする形にする。
- 特定のカラム(列)だけを選択する(ロードしない場合はNullカラムを選択)。
- 符号値の変換(例えば、ある情報源で男性を"1"、女性を"2"としていて、データウェアハウスでは男性を"M"、女性を"F"としている場合など)を自動データクレンジングと呼ぶ。ETLにおいては、手動でのクレンジングは発生しない。
- 個人情報の秘匿 (例えば住所・氏名・電話番号など "*" などに変換する)
- 自由形式の値を符号化(例えば、"男性" を "1" に、"Mr" を "M" にマッピングするなど)
- 新たに計算した値を導出(例えば、「売上高 = 販売数 * 単価」といった計算)
- 複数の情報源のデータの統合(マージなど)
- 複数行のデータの集約(例えば、販売店ごとの総売り上げ、地域ごとの総売り上げなど)
- 代替キー値生成
- 転置または回転(行と列の入れ替え)
- カラムを複数のカラムに分割する(例えば、CSV形式で1つのカラムに複数の要素がある場合、それを分割して複数のカラムにする)。
- 単純または複合データの妥当性検証を任意の形式で適用する。規則設計と例外処理によって、そのデータを次のステップに渡すかどうかを決定する。上述の変換・加工の多くは、例外処理の一部として実行される(例えば、ある位置のデータが期待した符号で解釈できない場合など)。
ロード (Load)
ロード工程は、データをデータウェアハウス (DWH) )などの最終ターゲットにロードする。その組織の設定した条件によって、この工程は大きく変化する。累積データを週単位で上書きするDWHもあれば、履歴構造のあるデータに新たなデータを時間単位で書き加えるDWHもある(1つのDWHでこれらが混在する場合もある)。上書きと追記のタイミングや範囲は設計戦略の一部であり、時間とビジネスでの必要性に依存する。より複雑なシステムでは、全てのデータロード時の変更について履歴と監査証跡を保持する。
ロード工程ではデータベースとやり取りするため、データロードで起動したトリガーだけでなく、データベーススキーマで定義された制約(例えば、唯一性、参照の完全性、義務的フィールドなど)が適用される。それらはまた、ETL工程全体のデータ品質向上に寄与する。
課題
ETLは非常に複雑であり、不適切に設計されたETLシステムでは運用上の大きな問題が発生しうる。
設計者が検証・変換規則を指定した時点では想定していなかったデータ値の範囲や品質が運用時に見つかることがある。分析工程で情報源のデータプロファイリングを行い、データの状況を把握することで、変換規則を指定するのに役立てるのが望ましい。
DWは一般に、複数の用途の異なる情報源から非同期にデータを供給される。ETLは異質で非同期の情報源から同質の環境を抽出するための鍵となる工程である。
ETLシステムのスケーラビリティは分析時点で考慮しておく必要がある。これには、サービス水準合意 (SLA) の範囲内で処理すべきデータの量を把握しておくことも含まれる。情報源からのデータ抽出にかけられる時間は運用していく中で変化する可能性があり、時間が短くなっていく可能性がある。ETLシステムによっては、数十テラバイトのデータウェアハウスの更新のためにテラバイトレベルのデータを処理する必要があるものもある。処理すべきデータ量が増大すれば、日々のバッチ処理では追いつかなくなり、一日に何度もバッチ処理する「マイクロバッチ」に移行したり、さらにはメッセージキューと統合したり、リアルタイムのデータ変更把握が必要となる可能性もある。
並列処理
ETLソフトウェアでの最近の開発は主に並列処理の実装である。並列処理によって大量データを扱うETL工程の性能が全体として向上する。
ETLアプリケーションの並列性は以下の3種類に分類される。
- データ
- 単一の逐次ファイルを複数のデータファイルに分割することで、並列アクセスが可能になる。
- パイプライン
- 複数のコンポーネントを直列接続して、同時に実行する。
これらの並列性は単一のジョブとして実施されることが多い。
さらなる困難さは、ロードされるデータの相対的一貫性の保証にある。情報源となるデータベースはそれぞれ固有の更新周期があるため(数分で更新されるものもあれば、日単位や週単位で更新されるものもある)、ETLシステムは全情報源が同期するまでデータを保持しておく必要がある。同様にデータウェアハウスは情報源システムや帳簿と一致させる必要があるため、同期の確立が必要となる。
ツール
ETLシステムはほとんどどんなプログラミング言語でも作成できるが、一から作るのは非常に大変である。このためETLツールを購入する企業が増えている。
確立されたETLフレームワークを使うことで、コネクティビティとスケーラビリティが向上する。よいETLツールは様々な関係データベースを扱え、様々なファイルフォーマットを扱える。ETLツールは、企業アプリケーション統合やエンタープライズ・サービス・バスに統合され始めており、システムは全体として Extract/Transform/Load 以上の機能をカバーするようになりつつある。ETL製品は、データプロファイリング、データ品質、メタデータ機能などを含むようになっている。
製品
- ASTERIA WARP
- Talend Data Integration
- DataCoordinator
- JasperReports ETL
- DataSpider Servista
- Syncsort DMExpress
- DataStage
- PowerCenter
- Waha! Transformer
オープンソースソフトウェア
- Talend Open Studio
- JasperReports ETL
- Clover.ETL
- Enhydra Octopus (Java Web Start によりウェブブラウザから起動)
- Pentaho Data Integration
参考文献
- Kimball, Ralph; Joe Caserta (2004年). The Data Warehouse ETL Toolkit. Wiley. ISBN 0-7645-6757-8
- Kimball, Ralph; Margy Ross (2002年). The Data Warehouse Toolkit: The Complete Guide to Dimensional Modeling (2nd edition ed.). Wiley. pp. 358-362. ISBN 0-471-20024-7
- Kimball, Ralph; et al. (1998年). The Data Warehouse Lifecycle Toolkit. Wiley. ISBN 0-471-25547-5
関連項目
脚注
- ^ Ralph., Kimball (2004). The data warehouse ETL toolkit : practical techniques for extracting, cleaning, conforming, and delivering data. Caserta, Joe, 1965-. Indianapolis, IN: Wiley. ISBN 978-0764579233. OCLC 57301227
- ^ Denney, MJ (2016). “Validating the extract, transform, load process used to populate a large clinical research database”. International Journal of Medical Informatics 94: 271–4. doi:10.1016/j.ijmedinf.2016.07.009. PMC: 5556907. PMID 27506144 .
- ^ Zhao (2017年10月20日). “What is ETL? (Extract, Transform, Load) | Experian” (英語). Experian Data Quality. 2018年12月12日閲覧。
- ^ tweet_btn(). “Extract, transform, load? More like extremely tough to load, amirite?” (英語). www.theregister.co.uk. 2018年12月12日閲覧。
- ^ Ralph., Kimball (2004). The data warehouse ETL toolkit : practical techniques for extracting, cleaning, conforming, and delivering data. Caserta, Joe, 1965-. Indianapolis, IN: Wiley. ISBN 978-0764579233. OCLC 57301227
外部リンク
- ETL Benchmarks v1.1 (PDF, 2.1 MiB)
固有名詞の分類
ビジネスソフト |
MAPICS IMindMap Extract/Transform/Load Founder Pack# ラショナル |
- Extract/Transform/Loadのページへのリンク