2016-11-16 2 views
1

J'ai besoin de synchroniser certaines données d'une base de données à l'autre en utilisant la transformation en chaudière/cuillère. La logique est que j'ai besoin de sélectionner les dernières données de date qui existaient dans la destination db. Puis sélectionnez à partir de la source db de la dernière date. De quel élément de transformation ai-je besoin pour faire cela?Transformation de sauvegarde de Kettle Pentaho par les données les plus récentes

Merci.

+0

Avez-vous une colonne d'horodatage dans la table de destination et la table source? – Nikhil

Répondre

1

Il peut y avoir de nombreuses solutions:

  1. Si vous avez timestamp dans la source et les tables de destination, vous pouvez prendre deux étapes d'entrée de table. Dans la première, il suffit de sélectionner l'horodatage maxi mis à jour, de l'utiliser comme variable dans l'entrée de table suivante, en le prenant comme filtre pour les données source. Vous pouvez faire quelque chose comme ceci: enter image description here

  2. Si vous voulez juste les nouvelles données soient mises à jour dans le tableau de destination et vous ne se soucient pas beaucoup sur l'horodatage, je vous suggère d'utiliser l'étape d'insertion/mise à jour pour la sortie . Cela amènera toutes les données au flux et s'il trouve une correspondance, il n'insèrera rien. S'il ne trouve pas de correspondance, il insérera la nouvelle ligne. S'il trouve des modifications à la ligne existante dans la table de destination, il la mettra à jour en conséquence.

+0

J'utilise pdi version 6. Les données sont en croissance et j'ai besoin de le filtrer. Comment utiliser l'entrée de table comme variable pour une autre entrée de table? Je sais que nous pouvons utiliser la requête paramétrée en utilisant '?' mais je ne sais pas comment. Avez-vous un exemple dans le violon ou la capture d'écran? –

+0

Voir ma traduction modifiée – Nikhil