Spaces:
Sleeping
Sleeping
File size: 4,526 Bytes
5fa8558 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 |
# Technova ML API – Documentation SQL & Base de Données
## Objectif
Ce document décrit en détail l’architecture de la base de données PostgreSQL utilisée par **Technova ML API**.
La base est organisée selon une approche analytique en couches : **RAW → STAGING → MART → AUDIT**.
---
### Initialisation de la base de données
Les scripts SQL doivent être exécutés dans l’ordre suivant afin de garantir
la cohérence des données et des dépendances entre les schémas :
1. `schema.sql` : création des schémas PostgreSQL (raw, staging, mart, audit)
2. `raw.sql` : création des tables de données brutes
3. `load_raw.sql` : chargement des données sources
4. `staging.sql` : nettoyage, normalisation et jointure des données
5. `mart.sql` : création du dataset final pour le modèle ML
6. `audit.sql` : création des tables de traçabilité des prédictions
Cet ordre permet d’assurer l’intégrité des données et la reproductibilité
du pipeline de traitement.
Les scripts sont conçus pour être idempotents
(`DROP TABLE IF EXISTS`, `TRUNCATE`) afin de permettre
une réexécution sans effet de bord.
## Vue d’ensemble du pipeline de données
```text
RAW
├─ extrait_sirh
├─ extrait_eval
└─ extrait_sondage
│
▼
STAGING
└─ employee_base
│
▼
MART
└─ employee_features
│
├─ utilisé par le modèle de Machine Learning
▼
AUDIT
├─ prediction_requests
└─ prediction_responses
```
---
## Diagramme UML – Modèle de données (ERD)
```mermaid
erDiagram
RAW_EXTRAIT_SIRH {
INT id_employee
INT age
TEXT genre
INT revenu_mensuel
TEXT statut_marital
TEXT departement
TEXT poste
INT nombre_experiences_precedentes
INT annee_experience_totale
INT annees_dans_l_entreprise
INT annees_dans_le_poste_actuel
}
RAW_EXTRAIT_EVAL {
TEXT eval_number
INT satisfaction_employee_environnement
INT note_evaluation_precedente
INT niveau_hierarchique_poste
INT satisfaction_employee_nature_travail
INT satisfaction_employee_equipe
INT satisfaction_employee_equilibre_pro_perso
INT note_evaluation_actuelle
TEXT heure_supplementaires
TEXT augementation_salaire_precedente
}
RAW_EXTRAIT_SONDAGE {
INT code_sondage
TEXT a_quitte_l_entreprise
INT nombre_participation_pee
INT nb_formations_suivies
INT distance_domicile_travail
INT niveau_education
TEXT domaine_etude
TEXT frequence_deplacement
INT annees_depuis_la_derniere_promotion
INT annes_sous_responsable_actuel
}
STAGING_EMPLOYEE_BASE {
INT id_employee
INT age
TEXT genre
INT revenu_mensuel
TEXT statut_marital
TEXT departement
TEXT poste
BOOLEAN heure_supplementaires
BOOLEAN a_quitte_l_entreprise
}
MART_EMPLOYEE_FEATURES {
INT id_employee
FLOAT ratio_manager_anciennete
FLOAT mobilite_relative
INT evolution_performance
FLOAT pression_stagnation
BOOLEAN a_quitte_l_entreprise
}
AUDIT_PREDICTION_REQUESTS {
BIGINT request_id PK
TIMESTAMPTZ created_at
INT id_employee
JSONB payload
}
AUDIT_PREDICTION_RESPONSES {
BIGINT response_id PK
BIGINT request_id FK
FLOAT proba
INT prediction
FLOAT threshold
}
RAW_EXTRAIT_SIRH }o--|| STAGING_EMPLOYEE_BASE : clean
RAW_EXTRAIT_EVAL }o--|| STAGING_EMPLOYEE_BASE : clean
RAW_EXTRAIT_SONDAGE }o--|| STAGING_EMPLOYEE_BASE : clean
STAGING_EMPLOYEE_BASE ||--|| MART_EMPLOYEE_FEATURES : feature_engineering
AUDIT_PREDICTION_REQUESTS ||--o{ AUDIT_PREDICTION_RESPONSES : logs
```
---
## Description des couches
### RAW
- Données brutes issues de différentes sources RH.
- Aucune transformation.
- Chargement via scripts SQL (`COPY`).
### STAGING
- Nettoyage des valeurs.
- Normalisation des types.
- Jointure des sources autour de `id_employee`.
### MART
- Dataset final utilisé par le modèle de Machine Learning.
- Features calculées (ratios, évolutions, indicateurs).
- Contient la cible `a_quitte_l_entreprise`.
### AUDIT
- Journalisation des appels API.
- Séparation claire entre requêtes et réponses.
- Garantit la traçabilité et l’auditabilité des prédictions.
---
|