# GSP ## Concepts Catégories d'acteurs : - Seeders (importent de la donnée depuis une autre source) - Transformers (dérivent de nouveaux datasets à partir de datasets existants) - Extractors (sortent des données de GSP pour les utiliser) Dataset : - Type de dataset = "nom de fonction" qui y correspond, e.g. "dump my_sap" - Paramètres (comment on a compute les données), e.g. "date=06/06/2022" - Données - version de la fonction (commit git ?) Dépendance : - Le dataset Y a une dépendance sur le dataset Y (Y est un transformer) - Quand X change, il déclenche le recalcul de Y - Un transformer doit pouvoir être enregistré pour matcher un pattern et se déclencher quand un élément qui matche le pattern change (création ou modification) ## Architecture Multi-services : - Le storage (serveur S3-compatible) - Un dispatcher pour trigger les transformers - Une API pour l'insertion / l'extraction des datasets GSP capable de relancer un compute (via Lambda, Docker, k8s, Nomad, ...) ? de schedule des crons ? Exemple de dépendance : - Seed : snapshot de my_sap - Transform : construire une frise chronologique des promos (qui va où, etc) Storage : - Dans un bucket MinIO - 1 fichier = 1 dataset - 1 dossier = 1 type de dataset # API tu ne peux pas push de data dans un dataset tant que tu l'a pas declare (nom du dataset / schema / dependance ?) declare s'assure que le dataset existe ou le crée/modifie si on essaie de modifier le nom de fonction d'un dataset -> erreur (securité pour s'assurer qu'un seul producteur owned la creation d'un dataset) Faire des alias de dataset en db ### Post dataset - POST /dataset ### Get Dataset - GET /dataset/{type} (get last) - GET /dataset/{type}/date/{date} (get by date) ### List Dataset versions/dates ? - GET /dataset/types (liste tout les types) - GET /dataset/{type}/versions (liste toute les version d'un type) ### Configure Dataset type - PUT /dataset/{type}/settings ? - PUT /dataset/{type}/configure ? # Metrics individual performance es Librairie + executable qui lit du jsonline sur l'entrée standard Il faut pouvoir regernerer des metrics et donc generer des batch id : (nom de la fonction + champ discriminant) ## indicateur - notes - git - presence - consultation intra/log timestamp = date : granularité minimal dans le cas ou une metrics est générer pour un range de date, celle-ci figure dans les valeurs du document