Topladığın xəzinə çox vaxt “xam” vəziyyətdə olur: natamam, səhvli, təkrarlı, fərqli formatlarda… İndi isə onu incə zərgərlik kimi təmizləmək, formaya salmaq və istifadəyə hazır hala gətirmək lazımdır. Bu mərhələyə ETL (Extract – Transform – Load) və ya müasir variantı ELT (Extract – Load – Transform) deyilir.
Data Processing & Transformation mərhələsi mənim üçün ən çox “a-ha!” anı verən hissədir. Çünki burada çirkli, qarışıq məlumatı götürüb parlaq, dəyərli bir şeyə çevirirsən. Bu, detektivlik və rəssamlığın qarışığı kimidir – həm araşdırırsan, həm də yaradırsan.
Niyə bu qədər vacibdir?
“Garbage In, Garbage Out” (Zibil daxilə, zibil çıxışa) prinsipi burada ən çox keçərlidir. Ən yaxşı model və ya dashboard belə, pis emal olunmuş datadan heç nə çıxarmaz. Müasir şirkətlərdə data mühəndislərinin 70-80%-i vaxtını məhz bu mərhələyə sərf edir. Düzgün transformasiya etmək biznesə real dəyər yaradır: daha dəqiq hesabatlar, daha yaxşı proqnozlar və daha az səhv qərarlar.
Əsas alətlər və texnologiyalar
1. Orkestrasiya alətləri (prosesləri idarə edənlər)
- Apache Airflow — Ən populyar “dirijor”. Bütün ETL/ELT proseslərini qraf kimi qurur, schedule edir, monitor edir və xətaları idarə edir.
- Prefect və Dagster — Airflow-un müasir, daha sadə və developer-friendly alternativləri (2026-cı ildə çox yüksəlirlər).
2. Transformasiya üçün ən gclü alət – dbt (data build tool) Son illərin ən böyük ulduzu. SQL ilə transformasiya yazırsan, testlər qurursan, dokumentasiya avtomatik yaranır. Analytics Engineering-in əsas silahıdır. Nümunə (dbt model): Sadə SQL faylı ilə clean_customers.sql:
SQL
SELECT
customer_id,
UPPER(name) as customer_name,
TRIM(email) as email,
DATE_TRUNC('month', created_at) as signup_month
FROM raw.customers
WHERE email IS NOT NULL
3. Böyük verilənlər emalı
- Apache Spark — Petabyte səviyyəsində data ilə işləmək üçün kral. DataFrame və Spark SQL ilə çox rahatdır.
- Databricks — Spark-ı buludda daha asan və güclü şəkildə işlətmək üçün platforma.
4. Python dünyası (kiçik və orta ölçü üçün əvəzolunmaz)
- Pandas — Klassik, hər kəsin sevdiyi.
- Polars — 2026-cı ildə mənim favoritlərimdən. Çox daha sürətli (Rust ilə yazılır), lazy evaluation və daha az yaddaş işlədir.
- Dask — Pandas-ı böyük data üçün genişləndirir.
Sadə polars nümunəsi:
Python
import polars as pl
df = pl.read_parquet("raw_data.parquet")
clean_df = (df
.filter(pl.col("age") > 0)
.with_columns([
pl.col("name").str.to_uppercase().alias("name_upper"),
pl.col("created_at").dt.truncate("1mo").alias("month")
]))
clean_df.write_parquet("clean_data.parquet")
| Alət | Ölçü (data həcmi) | Çətinlik | Sürət | Ən yaxşı olduğu yer | Qiymət |
|---|---|---|---|---|---|
| Pandas | Kiçik – Orta | Asan | Orta | Tez analiz və prototiplər | Pulsuz |
| Polars | Kiçik – Böyük | Asan | Çox yüksək | Sürətli təmizləmə | Pulsuz |
| dbt | Orta – Böyük | Orta | Yüksək | SQL transformasiyası | Pulsuz / Ödənişli |
| Airflow | Hər hansı | Orta | Yüksək | Orkestrasiya | Pulsuz |
| Spark | Çox Böyük | Çətin | Çox yüksək | Big Data emalı | Pulsuz |
Praktiki məsləhətlər və ən yaxşı təcrübələr
- Data Quality-ni unutmamaq — Great Expectations və ya dbt testləri ilə yoxla (null dəyərlər, unikal açarlar, aralıqlar).
- Idempotency — Eyni prosesi təkrar işə salanda eyni nəticə çıxsın.
- Version Control — Bütün transformasiya kodlarını Git-də saxla.
- Incremental processing — Hər dəfə bütün datanı emal etmə, yalnız yeni və dəyişənləri.
- Schema evolution — Məlumat strukturu dəyişəndə sistemi sındırmamaq.
- Monitoring və Logging — Airflow-da xətalar dərhal bildiriş göndərsin.
Mənim şəxsi hissim: İlk dəfə bir neçə mənbədən gələn çirkli satış datalarını təmizləyib, vahid bir “golden record” yaradanda inanılmaz dərəcədə məmnun olmuşdum. Sanki dağınıq puzzle parçalarını birləşdirib gözəl şəkil çıxartmışdım. Bu mərhələ səbr və diqqət tələb edir, amma nəticədə sonrakı bütün işlər asanlaşır. Bəzən saatlarla debug edirsən, amma o “təmiz data”nı gördükdə bütün yorğunluq yox olur.
Başlanğıc üçün tövsiyə:
- Pandas və ya Polars ilə kiçik CSV fayllarını təmizləməklə başla.
- SQL-də JOIN, CTE, Window functions öyrən.
- dbt-i quraşdırıb sadə model yaz.
- Kiçik layihə: Məsələn, Kaggle-dan bir dataset götür, təmizlə və analiz et.
- Sonra Airflow və ya Prefect ilə avtomatlaşdır.
Şərhlər bağlıdır, lakin trackbacks və pingbacks açıqdır.