Data Engineering képzés
A modern Data Engineering munka ma már jóval többet jelent Python kód és SQL lekérdezések írásánál. Egy adatfeldolgozó megoldást verziókezelni, reprodukálható módon futtatni, ütemezni, monitorozni és csapatban fejleszteni is tudni kell. A képzés ezért nemcsak az egyes technológiák használatára, hanem azok összehangolt, projektalapú alkalmazására is fókuszál.
A Data Engineer szerepe kiemelten fontos a modern adatplatformok, Machine Learning és AI rendszerek kialakításában is. Az AI megoldások mögött működő adatbetöltések, feldolgozási folyamatok és automatizált pipeline-ok jelentős része Data Engineering feladat, és a Data Engineer gyakran az AI rendszert kiszolgáló technikai komponensek kialakításában is részt vesz.
A 3 hónapos képzés során a résztvevők egy közepes méretű Data Engineering projektet építenek fel és fejlesztenek tovább, miközben gyakorlatban sajátítják el a Git, Docker és Apache Airflow használatát. A cél, hogy a résztvevők ne csak külön-külön ismerjék meg ezeket az eszközöket, hanem azt is megtanulják, hogyan használhatók együtt egy valósághű adatfeldolgozási folyamatban.
A képzés nem tér ki részletesen a Python, Pandas, SQL és PostgreSQL alapjaira, mivel ezek előzetes ismerete elvárt. Ezeket az eszközöket a résztvevők a projekt megvalósítása során aktívan használják, így a meglévő tudásukat egy összetettebb, Data Engineering szemléletű projektben alkalmazhatják.
A projekt során egy több lépésből álló adatpipeline készül, amely adatokat olvas be, feldolgozza és transzformálja azokat, majd PostgreSQL adatbázisba tölti az eredményt. A fejlesztés Git alapú munkafolyamatban történik, az alkalmazás és a kapcsolódó komponensek Docker konténerekben futnak, az adatpipeline végrehajtását pedig Apache Airflow vezérli.
A gyakorlati feladatokon keresztül a résztvevők megtapasztalják, hogyan épül fel egy strukturált, automatizálható és reprodukálható adatfeldolgozási folyamat. A képzés végére egy olyan összefüggő projektet készítenek el, amely jól szemlélteti a modern Data Engineering munkafolyamat fontosabb lépéseit és eszközeit.
1. modul – Data Engineering projekt és fejlesztői környezet
A projekt felépítése
A képzés során elkészülő Data Engineering rendszer bemutatása
Adatforrások és célrendszerek
Pipeline lépések
Extract, Transform és Load folyamat
Python alkalmazás és adatpipeline kapcsolata
PostgreSQL szerepe a projektben
Projektkomponensek szétválasztása
Lokális fejlesztői környezet kialakítása
Fejlesztői projektstruktúra
Python projekt felépítése
Forráskód strukturálása
Konfigurációs fájlok
Dependency-k kezelése
Környezeti változók
Forráskód és konfiguráció szétválasztása
Logok és ideiglenes fájlok kezelése
Projektfeladat: a képzés során használt Data Engineering projekt alapstruktúrájának létrehozása.
2. modul – Git alapok és verziókezelés
Verziókezelési alapfogalmak
Miért használunk verziókezelést?
Git működésének alapjai
Local és remote repository
Working directory
Staging area
Commit history
Git alapműveletek
Repository létrehozása
Clone
Add
Commit
Push
Pull
Fetch
Git status
Git log
Git diff
Git projektkörnyezetben
.gitignore
Virtuális környezetek kizárása
Lokális konfigurációk kizárása
Secret adatok kezelése
README
Commit message-ek
Projektfeladat: a Data Engineering projekt Git repository-ba szervezése és verziókezelésének kialakítása.
3. modul – Git branch-ek és csapatmunka
Branch alapú fejlesztés
Branch-ek szerepe
Branch létrehozása
Branch váltás
Feature branch-ek
Main branch
Development branch
Branch-ek összehasonlítása
Merge folyamat
Merge
Fast-forward merge
Merge commit
Merge conflict
Konfliktusok feloldása
Csapatmunka Git segítségével
Több fejlesztő egy repository-ban
Feature alapú fejlesztés
Pull Request / Merge Request fogalma
Code review alapjai
Branch naming convention
Commit history karbantartása
Egyszerű Git workflow kialakítása
Projektfeladat: külön pipeline funkciók fejlesztése feature branch-eken, majd azok visszaintegrálása a projektbe.
4. modul – Data Engineering alkalmazás fejlesztése projektkörnyezetben
Pipeline komponensek kialakítása
Extract komponens
Transform komponens
Load komponens
Komponensek közötti interfészek
Újrahasznosítható kódrészek
Konfiguráció alapú működés
Megbízható alkalmazásfejlesztés
Exception handling
Saját hibák kezelése
Logging
Log szintek
Paraméterezhető pipeline-ok
Környezeti változók használata
Adatbázis-kapcsolatok konfigurálása
Projektfeladat
A résztvevők elkezdik kialakítani a projekt tényleges adatfeldolgozó folyamatait. Az adatok tisztítása, transzformációja és PostgreSQL-be történő betöltése a projekt részeként valósul meg.
Projektfeladat: működő Python alapú adatpipeline létrehozása.
5. modul – Docker és konténerizáció alapjai
Konténerizáció
Miért használunk konténereket?
Virtual Machine és container közötti különbség
Docker architektúra
Docker image
Docker container
Docker registry
Container lifecycle
Docker használata
Image letöltése
Container indítása
Container leállítása
Container törlése
Container logok
Port mapping
Environment variable-ök
Volume-ok
Docker Data Engineering környezetben
Reprodukálható futtatási környezet
Dependency-k kezelése
Lokális és container környezet közötti különbségek
Stateless alkalmazások
Persistent adatok kezelése
Projektfeladat: PostgreSQL futtatása Docker containerben.
6. modul – Dockerfile és Python alkalmazások konténerizálása
Dockerfile készítése
Dockerfile szerepe
FROM
WORKDIR
COPY
RUN
ENV
CMD
ENTRYPOINT
.dockerignore
Python alkalmazás dockerizálása
Python base image-ek
Dependency-k telepítése
requirements.txt
Alkalmazáskód másolása
Container indítási parancs
Environment konfiguráció
Image build
Docker image-ek kezelése
Image tag
Verziózás
Image újraépítése
Layer-ek
Docker build cache alapjai
Projektfeladat: a korábban elkészített Data Engineering alkalmazás Docker image-be csomagolása.
7. modul – Docker Compose és többkomponensű alkalmazások
Docker Compose
Több containerből álló rendszer kezelése
Compose file
Service-ek
Build és image
Port mapping
Environment variable-ök
Volume-ok
Service dependency-k
Docker networking
Docker network
Service discovery
Container hostname-ok
Container-to-container kommunikáció
Python alkalmazás és PostgreSQL összekapcsolása
Persistent storage
Docker volume
PostgreSQL adatok megőrzése
Host és container filesystem
Adatfájlok kezelése
Projektfeladat: olyan Docker Compose környezet létrehozása, amelyben a Python adatpipeline és a PostgreSQL adatbázis külön containerben fut.
8. modul – Apache Airflow és workflow orchestration
Workflow orchestration
Mi az orchestration?
Miért nem elegendő egy Python script?
Pipeline scheduling
Task dependency
Workflow állapotok
Hibás futások kezelése
Apache Airflow architektúra
Airflow komponensei
DAG
Task
Operator
Scheduler
Worker
Webserver
Metadata database
Airflow használata
Airflow UI
DAG-ok megtekintése
Pipeline indítása
Task státuszok
Logok
Sikertelen task újraindítása
Projektfeladat: Apache Airflow környezet hozzáadása a projekt Docker Compose rendszeréhez.
9. modul – Airflow DAG fejlesztés
DAG-ok felépítése
DAG definíció
Taskok létrehozása
Task dependency
TaskFlow API
Python taskok
Több taskból álló workflow-k
Scheduling
Schedule
Cron kifejezések
Start date
Catchup
Manual trigger
Retry
Retry delay
Pipeline orchestration
Extract task
Transform task
Load task
Taskok egymásra építése
Párhuzamos taskok
Sikertelen taskok kezelése
Projektfeladat: a Python alapú ETL folyamat átalakítása Airflow által vezérelt többtaskos workflow-vá.
10. modul – Airflow konfiguráció és production-szerű pipeline-ok
Airflow konfiguráció
Airflow Connections
Connection ID
PostgreSQL connection
Airflow Variables
Environment variable-ök
Konfigurációk elkülönítése a forráskódtól
Credentialök kezelése
Taskok közötti adatátadás
XCom fogalma
XCom használata
XCom korlátai
Miért nem adunk át nagy DataFrame-eket XCom-ban?
Adatok külső tárolása
Taskok közötti állapotkezelés
Megbízható workflow-k
Retry
Idempotencia
Újrafuttatható taskok
Sikertelen pipeline-ok kezelése
Task logok
Pipeline állapotának követése
Projektfeladat: a projekt Airflow DAG-jának stabilizálása, konfigurálása és újrafuttathatóvá tétele.
11. modul – End-to-end Data Engineering projekt
A teljes rendszer integrációja
Git repository
Python alkalmazás
Pandas alapú feldolgozás
PostgreSQL
Docker image-ek
Docker Compose
Apache Airflow
Teljes pipeline kialakítása
Adatok beolvasása
Adattisztítás
Adattranszformáció
Adatvalidáció
PostgreSQL betöltés
Pipeline ütemezése
Hibakezelés
Logging
Fejlesztési workflow
Feature branch létrehozása
Fejlesztés
Commit
Merge Request / Pull Request
Code review
Merge
Docker image újraépítése
Pipeline futtatása
Projektfeladat: a teljes Data Engineering rendszer elkészítése és működő end-to-end pipeline kialakítása.
12. modul – Production szemlélet, projektzárás és továbbfejlesztési lehetőségek
Production Data Engineering szemlélet
Development és production környezet
Környezeti konfigurációk
Secret management alapjai
Dependency verziózás
Docker image verziózás
Release-ek
Reprodukálható deployment
Fejlesztési folyamatok
Git workflow vállalati környezetben
Code review
CI/CD alapfogalmak
Automatikus build
Automatikus tesztelés
Docker registry használata
Deployment folyamat áttekintése
Záró projekt: a résztvevők bemutatják a képzés során felépített, Gitben verziókezelt, Dockerben futó és Apache Airflow-val orchestrált Data Engineering rendszerüket.
Kinek szól
A Data Engineering képzés azoknak szól, akik már rendelkeznek stabil Python, SQL és PostgreSQL alapismeretekkel, és szeretnék tudásukat a modern adatfeldolgozási és adatpipeline-megoldások irányába továbbfejleszteni.
A képzés különösen hasznos lehet Python fejlesztőknek, SQL-lel dolgozó szakembereknek, junior Data Engineer irányba készülőknek, Data Analysteknek, valamint azoknak, akik Machine Learning vagy AI projektek technikai hátterével szeretnének mélyebben megismerkedni.
Ajánljuk azoknak is, akik nemcsak egy-egy technológiát szeretnének megtanulni, hanem meg akarják érteni, hogyan épül fel egy összetettebb, automatizált adatfeldolgozási folyamat. A projektalapú megközelítésnek köszönhetően a résztvevők a Git, Docker és Apache Airflow használatát egy valósághű Data Engineering projekt keretében sajátítják el.
A képzés akkor ideális választás, ha a célod, hogy a meglévő programozási és adatbázis-ismereteidre építve magabiztosabban dolgozz adatpipeline-okkal, automatizált adatfeldolgozással és modern fejlesztési környezetben.