ELTとは?Extract, Load, Transform の解説
ELTはExtract, Load, Transformの略です。生データをまずウェアハウスにロードし、その後ウェアハウスエンジンを使ってその場で変換します。
ELTは、クラシックなETLのステップを並べ替えて、モダンなクラウドウェアハウスに適合させたものです。ロードする前にデータを変換するのではなく、ELTは生データを強力なウェアハウスに直接ロードし、SQLやdbtのようなツールを使ってそこで変換を実行します。
ELTとは何か
ELTはソースからデータを抽出し、生のままウェアハウスにロードし、その後ウェアハウス内で変換します。変換ステップはスケーラブルなクラウドコンピューティングに対してSQLとして実行されるため、別個の処理層ではなくウェアハウスが重い処理を担います。
なぜ順序が変わったのか
クラウドウェアハウスによってコンピューティングが安価で伸縮自在になったため、すべてを生のままロードしてオンデマンドで変換することが現実的になりました。これにより、要件が変わった場合の再処理のために生データを利用可能な状態に保ちつつ、アナリストが別個のエンジンなしでSQLで変換を構築できるようになります。
dbtの役割
ELTはdbtのようなツールを普及させました。dbtは変換ステップを、ウェアハウス内で依存順にビルドされる、バージョン管理されテストされたSQLモデルとして管理します。extractとloadのステップは、多くの場合FivetranやAirbyteのようなコネクタツールが担当します。
CIにおけるELT
変換はバージョン管理下のSQLモデルであるため、CIはマージ前に一時的なスキーマに対してそれらをビルドおよびテストできます。
steps:
- run: dbt build --select state:modified+ --target ci
- run: dbt test --target ciLatchkeyに関する注記
ELTのCIジョブはコンピューティング依存ではなく、SQL中心でネットワーク依存です。Latchkeyでは、auto-retryにより長時間のdbtビルドがウェアハウス接続の一時的な不具合を乗り越えられ、ツールチェーンをキャッシュすることでこれらの頻繁なpull requestジョブが素早く起動し続けます。
重要なポイント
- ELTは生データをまずウェアハウスにロードし、その後ウェアハウスエンジンでその場で変換します。
- 安価で伸縮自在なクラウドコンピューティングにより、生データのロードとオンデマンドの変換が現実的になりました。
- 変換はバージョン管理されたSQLモデルとして存在し、マージ前にCIでビルドおよびテストされます。