Aller au contenu

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