I fear this is a rudimentary question, but we have spent quite a bit of time investigating to no avail:
We have an flat input of (x) columns. In that input stream, several of the columns represent header information, and the rest are detail information. We want to transform this into the target RDBMS parent / child tables, each of which has an internal primary key.
I *think* we can do this in two steps in Kettle; 1) Use "Unique Rows" to generate a stream of the header data, and write that to the parent table, 2) process all detail rows into the child table with a lookup to go find the PK of the parent table. This feels clunky and not reusable.
Are we missing something? Is there a simple way to split the original stream into parent / child, and have the PK from the RDBMs injected into the stream? Is there a way to use metadata injection to create and "teach" a GENERIC transformation what columns are header and what columns are detail? Has anyone created a 3rd party transformation to address this?
I feel like this is a very common activity for ETL/Dx, which makes me worry we have missing something simple...
All help is appreciated!
We have an flat input of (x) columns. In that input stream, several of the columns represent header information, and the rest are detail information. We want to transform this into the target RDBMS parent / child tables, each of which has an internal primary key.
I *think* we can do this in two steps in Kettle; 1) Use "Unique Rows" to generate a stream of the header data, and write that to the parent table, 2) process all detail rows into the child table with a lookup to go find the PK of the parent table. This feels clunky and not reusable.
Are we missing something? Is there a simple way to split the original stream into parent / child, and have the PK from the RDBMs injected into the stream? Is there a way to use metadata injection to create and "teach" a GENERIC transformation what columns are header and what columns are detail? Has anyone created a 3rd party transformation to address this?
I feel like this is a very common activity for ETL/Dx, which makes me worry we have missing something simple...
All help is appreciated!