Data Engineering

Data Engineering

DATA

Percorso completo in Data Engineering che copre l'intera catena di produzione dei dati. Dalla configurazione dell'ambiente con Docker e GCP all'orchestrazione delle pipeline con Airflow e dbt, passando per la creazione di Data Warehouse con BigQuery e PostgreSQL. Impara a gestire il data streaming con PySpark, Pub/Sub e Apache Beam, e a distribuire in produzione con Kubernetes e Terraform. Padroneggia le best practice di CI/CD, monitoraggio e architetture dati moderne.

Cosa imparerai

Ambienti di sviluppo: Linux, Git, GitHub, VS Code, Python avanzato

CI/CD e qualità del codice: Ruff, Pylint, Poetry, GitHub Actions

Containerizzazione con Docker e Docker Compose

API con FastAPI: progettazione, distribuzione, documentazione

Data Lake: ingestione, storage, organizzazione dati grezzi

Data Warehouse con BigQuery: schemi, partizionamento, ottimizzazione

PostgreSQL: installazione, amministrazione, confronto con soluzioni managed

Ingestione dati con Fivetran e Airbyte

Trasformazione con dbt: modelli, test, documentazione, modularità

Orchestrazione con Apache Airflow: DAG, scheduling, monitoraggio

Big Data con PySpark: trasformazioni su larga scala

Data streaming: Google Pub/Sub, Apache Beam, Dataflow

Kubernetes: distribuzione container, scaling, cluster di produzione

Infrastructure as Code con Terraform

Database avanzati: GraphDB, Document DB, Wide Column DB

Logging, monitoraggio e osservabilità delle pipeline

Argomenti chiave da padroneggiare

I concetti più importanti per comprendere questa tecnologia e superare i colloqui

1

Linux e Shell: comandi essenziali, script bash, permessi, cron job

2

Git e GitHub: branching, merge, rebase, pull request, workflow CI/CD

3

Python avanzato: OOP, decorator, generator, context manager, typing, async/await

4

CI/CD: linting (Ruff, Pylint), packaging (Poetry), test, GitHub Actions, pipeline

5

Docker: Dockerfile, immagini, container, volumi, reti, multi-stage build

6

Docker Compose: servizi multi-container, dipendenze, healthcheck, orchestrazione locale

7

FastAPI: route, modelli Pydantic, dipendenze, middleware, distribuzione

8

SQL avanzato: window function, CTE, query analitiche, ottimizzazione, indicizzazione

9

BigQuery: architettura serverless, partizionamento, clustering, costi, UDF, query federate

10

PostgreSQL: configurazione, replica, indicizzazione (B-tree, GIN, GiST), VACUUM, EXPLAIN ANALYZE

11

Modellazione dati: schema a stella, tabelle fact/dimension, normalizzazione, SCD, data vault

12

ELT vs ETL vs ETLT: pattern, trade-off, scelte architetturali

13

Fivetran e Airbyte: connettori, modalità di sincronizzazione, CDC, evoluzione schema

14

dbt: modelli, source, ref, test, snapshot, modelli incrementali, macro Jinja

15

Apache Airflow: DAG, operatori, sensori, XCom, connessioni, pool, dipendenze dei task

16

PySpark: RDD vs DataFrame, trasformazioni, azioni, partizionamento, variabili broadcast

17

Streaming: Pub/Sub (topic, subscription), Apache Beam (PCollection, trasformazioni, windowing), Dataflow

18

Kubernetes: pod, deployment, service, ingress, ConfigMap, Secret, Helm, scaling

19

Terraform: provider, risorse, state, moduli, plan/apply, infrastructure as code

20

IAM e sicurezza: principio del privilegio minimo, account di servizio, ruoli GCP

21

Database NoSQL: GraphDB (Neo4j), Document DB (MongoDB, Firestore), Wide Column (Cassandra, Bigtable)

22

Architettura dati: Data Lake vs Data Warehouse vs Data Lakehouse, Data Mesh, Data Contract

23

Monitoraggio e osservabilità: logging, metriche, alerting, SLA/SLO/SLI, controlli qualità dati