0

J'ai une table result_slalom où les données sont remplies via les Jobs ETL de Pentaho. Lorsque ETL s'exécute pour la première fois, il crée la version 1.Comment devrais-je contrôler la duplication de la version de calcul en utilisant Pentaho?

Maintenant, si les données sont modifiées après de nouveaux calculs, elles deviennent la version 2.

Je n'ai besoin de faire des changements que dans la version de calcul -2 et pas plus de 2 versions devraient être présentes dans la table result_slalom. (Version-1 et la version 2)

Ainsi, la logique est la suivante: Vérifiez si des données existe dans le tableau

o

When data exists and existing version is 1, then set the version of new data=2 
--> Insert new dataset 
o When data exists and existing version is 2, then set the version of new data=2 
--> Update existing dataset 
o When no data exists, then set version = 1 
--> Insert new dataset 

Comment puis-je faire ma formule Pentaho pour cette logique?

il est actuellement:

if([VersionInDB]=1;[Calculationversion];[VersionInDB]+1) 

Répondre

0

Le dimension lookup/update est une étape qui fait exactement cela.

En outre, il a des dates de validité: au moment de la création de la version 2, la version 1 reçoit une date de fin de maintenant et la version 2 reçoit une date de début de maintenant. Il est facile de récupérer des informations historiques avec un où date between start-date and end-date. De plus, vous avez un seul bouton qui écrit les create/alter table et create index pour vous.

L'autre solution intéressante consiste à mettre un déclencheur sur les tables. Oubliez de réinventer la roue dans cette direction. Bien que j'aime habituellement inventer la roue, c'est un cas sur lequel le redéveloppement de la logique vous mènera dans un nombre infini de tests et de bugs.