« ^ »
[WIP]

ETL

所要時間: 約 2分

データ処理の統合時に必要となるプロセスで、データウェアハウスやデータレイクにデータをロードする前のプロセスのことをETLと言うことがある。収集したデータを必要に応じて変換・加工し、データウェアハウスやデータレイクに貯める。このデータはレポートやデータマイニグなどの分析に利用される。

Extract
抽出
Transform
変換
Load
格納(データベース内にロードするという意味)

各種データはシステムコンポーネント間を次のように流れる。

Data Source  | ETL                      | Data Ware House
-------------|--------------------------|-----------------
CRM          | Spring Batch             | Amazon Redshift
ERP          | Talend Open Studio       | BigQuery
App          | Stitch                   | CloudBase
             | Pentaho Data Integration |
             | Apache NiFi              |
データの流れ

ETLを用いた構成の特徴

更新の遅延

特徴の一つとして、データソースのデータが更新されたとしても、ETLでの処理が実行されなければ、データウェアハウスのデータは更新されない。そのため、このような構成では必ずデータの更新には遅延が発生する。

処理の変更が煩雑になる

通常ETLで実行される処理は処理を記述したコードを何かしらのリポジトリによって管理することが多い。そのため処理の変更にはリポジトリへのチェックインが必要となる。リポジトリへのチェックインの前には動作の確認やレビューが実施されることもあり、処理の変更作業が煩雑になる。これ自体は悪いことだけではないが、そういった副次的な作用があることに注意する必要がある。