Modèle de données & cache
Structure du DataModel Heva One, exécution orchestrée et politique de cache Redis.
Concepts clés
Section titled “Concepts clés”Le DataModel est un graphe orienté composé de trois types de nœuds :
- Query : extraction depuis une source (SQL, GraphQL, API custom).
- Transform : traitement JSONata ou fonction custom, combinant éventuellement plusieurs nœuds.
- DataView : projection finalisée consommée par l’UI.
Chaque nœud déclare explicitement ses entrées, sorties et filtres associés, garantissant la cohérence du graphe et facilitant les tests automatisés.
Définition
Section titled “Définition”- Format : YAML ou JSON, modélisable dans une interface React Flow au sein du Studio.
- Contrats : schémas Zod générés à partir de la configuration (objectif cible).
- Datasource binding : effectué au runtime pour permettre le re-binding (ex. changer l’année de référence sans modifier la définition).
- Transformations : possibilité d’agréger plusieurs sources, de pivoters les données ou d’appliquer des calculs statistiques.
Orchestration
Section titled “Orchestration”- Service central stateless : pilote l’exécution du graphe, s’appuie sur un pool de connexions multi-tenant.
- API type :
GET /api/app/{appId}/datamodel/{modelId}/query/{queryId}?filters=year:2024,country:USA. - Validation : contrôle du
data shapepour chaque nœud avant diffusion au runtime UI. - Pre-aggregations : piste exploratoire pour réduire les temps de réponse sur des cas lourds.
Usages par produit
Section titled “Usages par produit”- Heva Insights : exploite les DataViews pour alimenter les panels et chartes, avec une forte dépendance aux filtres temps/région.
- Heva Impact (prévu) : réutilisera le DataModel pour injecter les paramètres de simulation et restituer les résultats calculés par le moteur Impact.
En construction : stratégie d’auto-génération des schémas Zod et toolkit de tests unitaires des nœuds.
Politique de cache
Section titled “Politique de cache”- Backend : Redis partagé, clés composées de
tenant:app:version:node:filtres. - Portée : nœuds intermédiaires (Transforms) et DataViews finales.
- TTL : ajusté selon la criticité du nœud (ex. DataViews courtes, agrégations longues).
- Invalidation : basée sur le TTL ; mécanismes événementiels à affiner.
- Sensibilité : options de chiffrement en transit/au repos et de namespaces dédiés.
Gouvernance du DataModel
Section titled “Gouvernance du DataModel”- Versionnage : chaque nœud suit son historique, permettant de comparer deux versions.
- Revue : validation conjointe Data/Engineering avant publication.
- Tests : datasets de référence pour rejouer les queries et vérifier les transformations.
En construction : guide de migration des DataModels et support des évolutions incrémentales (diffs, merge assisté).