În Data Engineering, ciclul de viață al datelor descrie parcursul complet al informației, de la generare și colectare până la arhivare sau ștergere. Înțelegerea acestui ciclu este crucială pentru a construi pipeline-uri robuste, scalabile și conforme cu reglementările GDPR. Fără o gestionare corectă a fiecărei etape, riscați pierderea datelor critice, costuri cloud excesive sau probleme de calitate în analizele finale. Practic, acest concept vă ghidează deciziile arhitecturale, asigurând că datele sunt accesibile, sigure și utile pe tot parcursul existenței lor.
Concepte cheie
- Ingestia (Collecting): Procesul de capturare a datelor din surse diverse (baze de date, API-uri, fișiere log) și încărcarea lor într-un sistem centralizat, cum ar fi un data lake.
- Stocarea: Alegerea formatului și locației potrivite pentru date (ex: S3, HDFS), ținând cont de structura (structurat/nestructurat) și de frecvența accesului.
- Procesarea (Transformation): Curățarea, validarea și transformarea datelor brute în format utilizabil, adesea prin job-uri batch sau streaming.
- Calitatea datelor: Verificarea acurateței, consistenței și completitudinii datelor pentru a preveni erorile în rapoartele de business.
- Securitatea și Guvernanța: Aplicarea controlului accesului, criptării și monitorizării provenienței datelor (data lineage) pentru conformitate legală.
- Arhivarea și Ștergerea: Mutarea datelor vechi pe stocare ieftină sau eliminarea lor definitivă după expirarea perioadei de retenție impusă de politicile companiei.
Exemplu practic
Să presupunem că aveți un fișier CSV zilnic cu vânzări. Un pipeline modern ar face următoarele:
- Ingestie: Un script Python sau Apache NiFi preia fișierul și îl pune în
s3://raw-sales-data/. - Procesare: Apache Spark citește CSV-ul, convertește coloanele de date în tipuri corecte, elimină rândurile goale și scrie rezultatul într-un tabel Parquet optimizat în
s3://curated-sales-data/. - Guvernanță: Se adaugă metadate în AWS Glue Catalog pentru ca tool-urile de BI (ex: Tableau) să poată găsi datele ușor.
Acest flux asigură că datele brute sunt păstrate intacte (audit trail), iar datele curate sunt gata de analiză instantaneu.
Greșeli frecvente
- Ignorarea calității la sursă: Presupunerea că datele intrate sunt întotdeauna corecte duce la „garbage in, garbage out”.
- Stocarea tuturor datelor la fel: Păstrarea datelor calde (des accesate) și reci (rareori accesate) pe același storage scump reduce profitabilitatea proiectului.
- Lipsa documentației: Fără data lineage, este imposibil de urmărit de unde provine o valoare suspectă într-un raport final.
Întrebări de interviu
1. Cum gestionezi datele duplicate într-un pipeline?
Răspuns: Utilizez funcții de deduplicare bazate pe chei unice (ex: row_number() over(partition by id order by timestamp desc) în SQL) sau sisteme de identificare unică la nivel de entitate în etapa de curățare.
2. Ce faci când o sursă de date devine indisponibilă? Răspuns: Implementez mecanisme de retry cu backoff exponențial și alerte. De asemenea, păstrez o copie cache a ultimelor date valide pentru a permite continuarea operațiunilor critice în timp ce problema este remediată.
3. De ce este importantă separarea dintre raw și curated data? Răspuns: Permite reproducerea proceselor de transformare. Dacă logica de business se schimbă, poți re-rula transformarea asupra datelor brute originale fără a pierde istoricul inițial.
Exercițiu
Alocă 45 de minute pentru a simula o parte a ciclului de viață. Creează un fișier sales.csv cu 100 de rânduri (colone: id, date, amount, status). Scrie un script Python simplu care:
- Citește fișierul.
- Identifică și marchează rândurile cu
amount < 0ca „invalid”. - Salvează datele valide într-un nou fișier
valid_sales.csv. - Salvează statisticile (nr. total, nr. invalide) într-un fișier
log.txt.
Această sarcină te ajută să înțelegi fluxul de bază: ingestie -> validare -> stocare segmentată -> logging.