0
votes

I have a transformation in Pentaho Data Integration that stores data in several tables from a database.

But this database has constraints, meaning I can't put things in a table before the related data is put in another table.

Sometimes it works, sometimes it doesn't, depends on concurrency luck.

So I need to assure that Table Output 1 gets entirely run before Table Output 2 starts.

How can I do this?

2

2 Answers

1
votes

For that, you can use job instead of transformation. because in transformation all the steps run parallelly. so use a job in that add the first transformation in which table output1 will be executed first and in second transformation table output2 will be performed

1
votes

You can use a step named "Block this step until steps finish".

You place it before the step that needs to wait. And inside the block you define which steps are to be waited for.


Below, suppose, Table Output 2 contains a foreign key to a field in table 1, but the rows you're going to reference in table 2 still don't exist in table 1. This means Table Output 2 needs to wait until Table Output finishes.

Place the "block" connected before Table Output 2:

Place the block

Then enter the properties of the "block" step. Inside, add Table Output in the list (and any other steps you want to wait for):

Tell it what to wait for