Extract/Transform/Load
ロード工程は、データをデータウェアハウス (DWH) )などの最終ターゲットにロードする。その組織の設定した条件によって、この工程は大きく変化する。累積データを週単位で上書きするDWHもあれば、履歴構造のあるデータに新たなデータを時間単位で書き加えるDWHもある(1つのDWHでこれらが混在する場合もある)。上書きと追記のタイミングや範囲は設計戦略の一部であり、時間とビジネスでの必要性に依存する。より複雑なシステムでは、全てのデータロード時の変更について履歴と監査証跡を保持する。
ロード工程ではデータベースとやり取りするため、データロードで起動したトリガーだけでなく、データベーススキーマで定義された制約(例えば、唯一性、参照の完全性、義務的フィールドなど)が適用される。それらはまた、ETL工程全体のデータ品質向上に寄与する。
変換・加工工程では、情報源から抽出したデータに一連の規則や関数を適用し、ターゲットにロードできるデータにする。データによってはほとんど変換・加工を必要としないこともある。それ以外の場合、以下のような変換を1つ以上加えることで、最終ターゲットが必要とする形にする。
特定のカラム(列)だけを選択する(ロードしない場合はNullカラムを選択)。
符号値の変換(例えば、ある情報源で男性を"1"、女性を"2"としていて、データウェアハウスでは男性を"M"、女性を"F"としている場合など)を自動データクレンジングと呼ぶ。ETLにおいては、手動でのクレンジングは発生しない。
個人情報の秘匿 (例えば住所・氏名・電話番号など "*" などに変換する)
自由形式の値を符号化(例えば、"男性" を "1" に、"Mr" を "M" にマッピングするなど)
新たに計算した値を導出(例えば、「売上高 = 販売数 * 単価」といった計算)
複数の情報源のデータの統合(マージなど)
複数行のデータの集約(例えば、販売店ごとの総売り上げ、地域ごとの総売り上げなど)
代替キー値生成
転置または回転(行と列の入れ替え)
カラムを複数のカラムに分割する(例えば、CSV形式で1つのカラムに複数の要素がある場合、それを分割して複数のカラムにする)。
単純または複合データの妥当性検証を任意の形式で適用する。規則設計と例外処理によって、そのデータを次のステップに渡すかどうかを決定する。上述の変換・加工の多くは、例外処理の一部として実行される(例えば、ある位置のデータが期待した符号で解釈できない場合など)。