Aller au contenu principal

Erreurs fréquentes dans Apache Hop

Dimension Date

Problématique

La dimension date ne peut pas utiliser de nœud Dimension Lookup car celle-ci contient trop d'éléments. Le chargement de cette dimension dans le cache provoquerait une surcharge mémoire et ferait crasher le cluster Kubernetes.

Solution recommandée

Il est nécessaire d'utiliser une conversion de la date directement dans la clause SELECT de l'étape Table Input.

Format des clés : YYYYMMDD

Exemple de conversion SQL :

TO_CHAR(t."createdAt", 'YYYYMMDD')::int AS date_created_key,

Dimension Temps

Alternative possible

Pour cette table, il est également possible de passer par une conversion SQL, même si celle-ci n'est pas strictement nécessaire contrairement à la dimension date.

Format des clés : HHmmSS

Exemple de conversion SQL :

(TO_CHAR(t."createdAt", 'HH24MI') || '00')::int AS time_ouverture_key

Note : La concaténation avec '00' permet d'obtenir une précision à la seconde en fixant les secondes à 00.

Dimension représentant un énuméré

Problématique

Les colonnes de type énumération contiennent des valeurs string qu'il faut transformer en clés entières pour les dimensions.

Solution recommandée

Utiliser un nœud Value Mapper pour faire le lien entre la valeur string et la clé int, puis un nœud Select Values pour modifier les métadonnées de la colonne (type → Integer).

Exemple de mappage :

"TODO" -> 1
"IN PROGRESS" -> 2
"DONE" -> 3

Note : L'utilisation d'une dimension dédiée pour un enum n'est pas obligatoire — il est possible d'agréger directement dans le SQL (GROUP BY) sur la colonne string si cela convient au cas d'usage.