ETL a ELT jsou dva základní přístupy k přesunu a transformaci dat. Zatímco tradiční ETL transformuje data před načtením, moderní ELT využívá výpočetní sílu cloudových warehouse.
Co je ETL a ELT¶
ETL (Extract, Transform, Load) extrahuje data ze zdrojů, transformuje v dedikovaném prostředí a načte do cíle. ELT obrací pořadí — data se načtou surová a transformují v cílovém systému.
Kdy zvolit ETL¶
- GDPR a compliance — maskování dat před uložením
- Omezený výkon cíle — on-premise DB bez elastického compute
- Komplexní business logika — specializované transformační nástroje
Kdy zvolit ELT¶
- Cloudové warehouse — Snowflake, BigQuery, Redshift
- Flexibilita — surová data pro různé transformace
- Iterativní vývoj — transformace se mění bez re-extrakce
# ETL pipeline v Pythonu
import pandas as pd
from sqlalchemy import create_engine
# EXTRACT
raw = pd.read_sql('SELECT * FROM orders', source_engine)
# TRANSFORM
df = raw.copy()
df['total_czk'] = df['total_eur'] * 25.2
df = df[df['status'] != 'cancelled']
# LOAD
df.to_sql('dim_orders', target_engine, if_exists='append')
Moderní hybridní přístup¶
V praxi se kombinují oba přístupy. Citlivá data procházejí ETL, ostatní přes ELT. Nástroj dbt zajišťuje transformace v cílovém warehouse.
Shrnutí¶
ETL pro regulovaná prostředí, ELT pro moderní cloud. Většina organizací kombinuje oba přístupy podle povahy dat.