具体的にどんな場面で使う?
例えば「営業DB、顧客管理DB、Webアクセスログを統合して経営ダッシュボードを作りたい」場合。各データソースからデータを抽出し、日付形式の統一や重複排除などの変換をして、BigQueryやRedshiftに格納する。分析に使えるきれいなデータを準備するプロセスがETLだよ
ELTとの違いは?
ETLは格納前にデータを変換する。ELTは生データをまず格納して、データウェアハウスの計算能力で変換する。BigQueryやSnowflakeのような高性能DWHが登場して、DWH内でSQLで変換した方が効率的になった。dbtはELTのTransform部分をSQLで記述する人気ツール。最近はELTが主流になりつつあるよ
ETLツールは何がある?
①Apache Airflow(Pythonでパイプラインを定義、デファクトスタンダード)、②Fivetran(SaaS型、コネクタが豊富で設定だけでETL)、③dbt(SQLベースのTransform特化ツール)、④Airbyte(OSSのELツール)、⑤AWS Glue(AWSマネージドETL)。Fivetran+dbt+Snowflakeがモダンデータスタックとして人気だよ
ETLが失敗するとどうなる?
ダッシュボードのデータが古いまま、分析結果が不正確、ビジネス判断を誤る…と影響が大きい。対策は①冪等性(同じETLを再実行しても結果が同じ)を確保、②データ品質チェック(Great Expectations等)をパイプラインに組み込む、③障害時のアラートと自動リトライ、④データリネージ(どのデータがどこから来たか)を追跡可能にすることだよ