Questo progetto presenta una soluzione end-to-end di Data Warehousing e Analytics, implementando un'architettura Medallion per trasformare dati grezzi di vendita (ERP + CRM) in insight strategici. Include:
- β Data Warehouse moderno a 3 layer (Bronze β Silver β Gold)
- β Star Schema ottimizzato per reporting e BI
- β 11 query analitiche (5 exploration + 6 advanced patterns)
Sviluppato seguendo le best practice del settore per data engineering, modellazione dati, e analytics.
- Obiettivi
- Architettura Medallion
- Analytics & Analisi
- Tech Stack
- Quick Start
- Project Structure
- Naming Conventions
- Documentazione
- Roadmap
Sviluppare un Data Warehouse moderno utilizzando PostgreSQL per consolidare i dati di vendita, permettendo una reportistica avanzata e decisioni basate sui dati.
- Sorgenti Dati: Integrazione di dati da due sistemi distinti (ERP e CRM) forniti in formato CSV.
- QualitΓ del Dato: Pulizia e standardizzazione dei dati (Data Cleansing) per risolvere anomalie prima dell'analisi.
- Integrazione: Unione delle sorgenti in un unico modello dati (Star Schema) ottimizzato per le query analitiche.
- Documentation: Creazione di un Data Catalog e diagrammi di flusso per supportare stakeholder e team analytics.
Fornire insight dettagliati su:
- Comportamento dei Clienti (Customer Behavior)
- Performance dei Prodotti (Product Performance)
- Trend delle Vendite (Sales Trends)
Oltre al Data Warehouse, il progetto include 11 query analitiche organizzate in due categorie:
Query introduttive per scoprire e validare i dati:
- Metadati strutturali e oggetti del DWH
- Distribuzione e qualitΓ delle dimensioni
- Metriche quantitative e loro distribuzione
- CardinalitΓ e scale dei dati
- Ranking e concentrazione
π Ideale per: Onboarding, validazione post-load, audit di qualitΓ
Pattern analitici complessi per rispondere a domande strategiche:
- Time Series & Trends (evoluzione temporale)
- Cumulative Analysis (Running totals, YTD metrics)
- Performance Comparative (benchmarking tra periodi)
- Part-to-Whole Analysis (contribuzione, mix prodotti)
- Data Segmentation (cohort, customer profiling)
- Executive Dashboard Metrics (KPI aggregati)
π Ideale per: Reportistica, Strategic insights, Decision support
π Per i dettagli su tutte le analisi, vedi ANALYTICS.md
Il progetto Γ¨ suddiviso in tre layer logici per garantire tracciabilitΓ e qualitΓ :
- π₯ Bronze Layer: Dati grezzi importati "as-is" dai sistemi sorgente (ERP/CRM). Obiettivo: TracciabilitΓ e Debugging.
- π₯ Silver Layer: Dati puliti, standardizzati e normalizzati. In questa fase vengono gestite le colonne derivate e l'arricchimento dei dati.
- π₯ Gold Layer: Dati "Business-Ready" pronti per il consumo. Utilizzo di Star Schema (Fact e Dimension tables) e viste aggregate.
- Database: PostgreSQL (gestito tramite DataGrip)
- Linguaggio: SQL (PL/pgSQL per le Stored Procedure)
- Documentazione: Draw.io (Diagrammi di Flusso e ERD)
- Version Control: Git / GitHub
Per garantire la manutenibilitΓ , il progetto segue regole rigorose:
- Layer Bronze/Silver: Le tabelle mantengono il nome originale preceduto dal sistema sorgente (es.
crm_customer_info). - Layer Gold: Utilizzo di nomi parlanti con prefissi
dim_(Dimensioni),fact_(Fatti) eagg_(Aggregati). - Chiavi Surrogate: Tutte le tabelle dimensionali utilizzano chiavi primarie con suffisso
_key(es.customer_key). - Colonne Tecniche: Ogni record include metadati di sistema con prefisso
dwh_(es.dwh_load_date) per il monitoraggio del carico.
Il ciclo di vita di ogni layer segue questo flusso:
- Analysis: Analisi dei sistemi sorgente e degli oggetti di business.
- Coding: Sviluppo delle procedure di carico (
load_bronze,load_silver,load_gold). - Validation: Check di completezza, schema e correttezza dei dati.
- Versioning: Documentazione e commit del codice su repository Git.
- β PostgreSQL 12+ installato e in esecuzione
- β Client SQL: DataGrip, pgAdmin, psql, o DBeaver
- β 50 MB di spazio disco per i dati di esempio
Tempo stimato: 10-15 minuti
Per chi vuole: Esperienza end-to-end
# 1. Crea il database
psql -U postgres -f scripts/setup/01_creation_database_and_schemas.sql
# 2. Carica il Bronze Layer
psql -U postgres -d warehouse -f scripts/bronze/02_ddl_bronze.sql
psql -U postgres -d warehouse -f scripts/bronze/03_proc_load_bronze.sql
# 3. Carica il Silver Layer
psql -U postgres -d warehouse -f scripts/silver/04_ddl_silver.sql
psql -U postgres -d warehouse -f scripts/silver/05_check_bronze_before_silver_load.sql
psql -U postgres -d warehouse -f scripts/silver/06_proc_load_silver.sql
# 4. Carica il Gold Layer
psql -U postgres -d warehouse -f scripts/gold/08_ddl_gold.sql
# 5. Esplora le analisi
psql -U postgres -d warehouse -f analysis/exploration_data_analysis/01_exploration_meta.sqlTempo stimato: 5-10 minuti
Per chi vuole: Solo architettura DW
Esegui solo i passaggi 1-4 dell'Opzione 1
Tempo stimato: 1-2 minuti
Per chi vuole: Esplorare le 11 query analitiche
Esegui i file da analysis/exploration_data_analysis/*.sql e analysis/advanced_queries/*.sql
π Per dettagli completi ed esempi, vedi ANALYTICS.md
π SQL_Data_Warehouse_Project/
βββ π README.md β Questo file
βββ π ANALYTICS.md β Guida completa alle 11 query analitiche
βββ π LICENSE
βββ π docs/
β βββ data_catalog.md β Dizionario dati (Gold Layer)
β βββ naming_conventions.md β Regole di nomenclatura
βββ π scripts/ β SQL per costruire il DW
β βββ setup/01_creation_database_and_schemas.sql
β βββ bronze/ β Raw data as-is
β β βββ 02_ddl_bronze.sql
β β βββ 03_proc_load_bronze.sql
β βββ silver/ β Cleaned & standardized data
β β βββ 04_ddl_silver.sql
β β βββ 05_check_bronze_before_silver_load.sql
β β βββ 06_proc_load_silver.sql
β βββ gold/ β Business-ready analytics data
β βββ 07_gold_transformation_testing.sql
β βββ 08_ddl_gold.sql
βββ π analysis/ β 11 query analitiche
β βββ exploration_data_analysis/ β Discovery & validation (5 query)
β β βββ 01_exploration_meta.sql
β β βββ 02_exploration_dimensions.sql
β β βββ 03_exploration_measures.sql
β β βββ 04_exploration_magnitude_analysis.sql
β β βββ 05_exploration_ranking_analysis.sql
β βββ advanced_queries/ β Strategic analysis (6 query)
β βββ 01_change_over_time.sql
β βββ 02_cumulative_analysis.sql
β βββ 03_performance_analysis.sql
β βββ 04_part_to_whole.sql
β βββ 05_data_segmentation.sql
β βββ 06_reporting.sql
βββ π datasets/ β Sample data (ERP + CRM)
β βββ source_crm/
β β βββ cust_info.csv
β β βββ prd_info.csv
β β βββ sales_details.csv
β βββ source_erp/
β βββ CUST_AZ12.csv
β βββ LOC_A101.csv
β βββ PX_CAT_G1V2.csv
βββ π assets/ β Diagrammi (Draw.io)
β βββ architecture.drawio
β βββ data_layers_1.svg
β βββ data_layers_2.svg
β βββ data_integration_model.svg
β βββ data_flow.svg
β βββ star_schema.svg
βββ π README.md
| Cartella | Contenuto | Quando usare |
|---|---|---|
| scripts/setup | Creazione database e schema | 1ΒΊ step, una volta |
| scripts/bronze | DDL e Stored Procedure per Raw Data | 2ΒΊ step |
| scripts/silver | Trasformazioni e Data Cleansing | 3ΒΊ step |
| scripts/gold | Star Schema e viste per BI/Analytics | 4ΒΊ step |
| analysis/exploration_data_analysis | 5 query per scoprire i dati | Dopo caricamento, per validare |
| analysis/advanced_queries | 6 query pattern analitici | Per reporting e strategic insights |
| docs | Data Catalog e Naming Conventions | Sempre, come riferimento |
| datasets | Sample CSV da ERP e CRM | Per load iniziale |
| assets | Diagrammi di architettura | Per capire il design |
Questo progetto Γ¨ stato sviluppato in 4 fasi principali:
-
Phase 1: Data Engineering Fundamentals (Bronze + Silver)
- Ingestion da CSV (ERP + CRM)
- Data Cleansing e standardizzazione
- Validation checks
-
Phase 2: Dimensional Modeling (Gold Layer)
- Star Schema design
- Fact e Dimension tables
- Business-ready metrics
-
Phase 3: Exploratory Analysis (Exploration Data Analysis)
- Metadati e struttura
- Data quality checks
- Discovery queries
-
Phase 4: Strategic Analytics (Advanced Queries)
- Time series e trends
- Performance analysis
- Customer segmentation
- Executive reporting
- Incrementale load (CDC - Change Data Capture)
- Dati in tempo reale (Streaming)
- Predictive analytics e ML
- Dashboard interattivo (Tableau, Power BI, Looker)
- Data quality monitoring (Great Expectations, dbt tests)
- Multi-tenancy support
| Documento | Scopo |
|---|---|
| π ANALYTICS.md | Guida completa alle 11 query analitiche |
| π Data Catalog | Dizionario dati e metriche del Gold Layer |
| π Naming Conventions | Regole di nomenclatura per DB, tabelle, colonne |
| π¨ assets/architecture.drawio | Diagramma architettuale (modificabile) |
β
Architettura Medallion completa β 3 layer con tracciabilitΓ e audit trail
β
11 query analitiche β Exploration + Advanced patterns
β
Star Schema ottimizzato β Pronto per BI e reporting
β
Best practices β Naming conventions, documentation, version control
β
Fully documented β Data Catalog, flowchart, guide passo-passo
- Data Warehouse Architecture β Medallion pattern a 3 layer, tracciabilitΓ end-to-end, audit trail completo
- Dimensional Modeling β Star Schema design, Fact & Dimension tables, schema optimization
- SQL Avanzato β Window functions, CTEs, stored procedures, aggregazioni complesse, performance tuning
- ETL/ELT Orchestration β Data ingestion da CSV, cleansing, transformation pipeline, validation framework
- Data Quality & Governance β Data profiling, quality validation, lineage tracking, documentation rigorous
- Analytics & Reporting β Time series analysis, performance benchmarking, customer segmentation, KPI metrics
- Software Engineering β Version control, code organization, comprehensive documentation, naming conventions
- Database Design β Schema optimization, constraint design, indexing strategy, query optimization
Progetto realizzato da Lorenzo Barbato β Marzo 2026