Calcul des indicateurs
Les indicateurs sont la sortie d’Insitu. Ils permettent d’aggréger les données que l’on a défini dans l’alimentation à différentes mailles territoriales (communale, départementale, régionale, nationale) avec une seule expression SQL pour toutes les mailles.
Configuration
Il faut indiquer à Insitu où se trouvent les répertoires contenant les fichiers de configuration.
On fait ça grâce à la variable d’environnement INSITU_INDICATEURS_DIRS
qui attend une chaine au format JSON contenant un array
de string
.
Par exemple :
INSITU_INDICATEURS_DIRS='["/home/user/flux-de-donnees-anct", "/home/user/flux-de-donnees-incubateur-anct"]'
Insitu cherchera dans ces répertoires tous les fichiers finissant par indicateurs.yml
, il s’attend à ce que les fichiers aient ce schéma.
Définition
Un fichier de configuration est une liste d’objet correspondant à ce schéma.
Dans ce fichier on peut découper en deux les propriétés : les métadonnées, le calcul
Metadonnées
Ce sont propriétés qui vont nous permettre de qualifier les indicateurs et d’aider à leur exploration notamment dans le catalogue.
identifiant
Il doit être unique à tous les indicateurs présent dans insitu, c’est une chaine de caractères sans espace.
nom
Nom pour désigner l’indicateur dans les interfaces telles que les fiches et le catalogues.
description
Description de l’indicateur pour donner plus de contexte que le nom dans les fiches et le catalogue.
schema
JSON schema de l’indicateur.
catégorie
Un champ libre pour ajouter une catégorie à l’indicateur.
tags
Une série de clés et valeurs arbitraires pour catégoriser cet indicateur.
deprecated
Indique si un indicateur est déprécie, il ne sera plus montré dans le catalogue.
Calcul
Les champs sql
, expression
et ratio
sont exclusifs, vous ne pouvez en définir qu’un par indicateur.
sql
Une requête SQL telle que l’on définirait pour la maille nationale, insitu se chargera de la décliner aux différentes mailles.
Par exemple :
SELECT COUNT(valeur) FROM ma_table
expression
Une Expression SQL qui permet de faire des opérations sur d’autres indicateurs.
Par exemple :
indicateur1 + indicateur2
ratio
Expression SQL qui permet de faire un ratio entre deux indicateurs d’une même maille.
Par exemple :
ratio:
numerateur: indicateur1
denominateur: indicateur2
return_type
Le type retourné par l’indicateur, il dépendra de la définition du calcul.
auto
C’est la valeur par défaut si rien n’est renseigné, insitu va essayer de déterminer le type en fonction du champ renseigné, expression
et ratio
correspondront toujours à one_value
.
Pour les indicateurs ayant un champ sql
on essaiera d’inférer le type en fonction la requête.
list
Si on veut que l’indicateur renvoie une liste de valeur. Si on a un indicateur comme ça
SELECT val FROM ma_table
La requête renvoie une valeur par ligne de la table, c’est donc ce qu’on cherche.
row
Si on veut que l’indicateur renvoie un objet par territoire. Si on a un indicateur comme ça
SELECT
SUM(total)::INTEGER AS total,
SUM(nbr_elig_8)::INTEGER AS nbr_elig_8
FROM
suivi_fthd
on a un objet par territoire.
rows
Si l’on a pas d’aggrégat, mais que l’on renvoie quand même plusieurs colonne, on veut un type de retour rows
Exemple
SELECT
total
nbr_elig_8
FROM
suivi_fthd
one_value
Si l’on renvoie qu’une seule valeur par territoire
Exemple
SELECT
SUM(total)::INTEGER
FROM
suivi_fthd