sql >> Databasteknik >  >> RDS >> Mysql

Med Pentaho Kettle, hur laddar jag flera bord från en enda tabell samtidigt som referensintegriteten bibehålls?

Jag satte ihop ett exempel på transformation(högerklicka och välj spara länk) baserat på vad du angett. Det enda steget jag känner mig lite osäker på är de sista tabellingångarna. Jag skriver i princip kopplingsdata till tabellen och låter den misslyckas om en specifik relation redan finns.

obs!

Den här lösningen uppfyller inte riktigt "Alla tillvägagångssätt bör inkludera en del från validering och en återställningsstrategi om en insättning misslyckas eller misslyckas med att upprätthålla referensintegritet." kriterier, även om det förmodligen inte kommer att misslyckas. Om du verkligen vill ställa in något komplext kan vi, men detta borde definitivt få dig att gå igång med dessa transformationer.

Dataflöde för steg

1. Vi börjar med att läsa in din fil. I mitt fall konverterade jag det till CSV men tab är också bra.

2. Nu ska vi infoga de anställdas namn i Employee-tabellen med en combination lookup/update .Efter infogningen lägger vi till anställd_id till vår dataström som id och ta bort EmployeeName från dataströmmen.

3. Här använder vi bara steget Välj värden för att byta namn på id fält till anställd_id

4. Infoga jobbtitlar precis som vi gjorde anställda och lägg till titel-id:t till vår dataström och radera även JobLevelHistory från dataströmmen.

5. Byt enkelt namn på titel-id till title_id (se steg 3)

6. Infoga kontor, hämta ID:n, ta bort OfficeHistory från strömmen.

7. Byt enkelt namn på office-id till office_id (se steg 3)

8. Kopiera data från det sista steget till två strömmar med värdena employee_id,office_id och employee_id,title_id respektive.

9. Använd en tabellinfogning för att infoga kopplingsdata. Jag har valt att ignorera infogningsfel eftersom det kan finnas dubbletter och PK-begränsningarna kommer att göra att vissa rader misslyckas.

Utdatatabeller




  1. Hur man aktiverar Change Data Capture (CDC) på en databas i SQL Server - SQL Server Tutorial

  2. MySQL Group By för att visa senaste resultatet

  3. Skriver ut värdet på en variabel i SQL Developer

  4. Hur kan jag ställa in en anslutningssträng för SQL Server?