SSIS: Doppelte Zeilen in einem Daten-Ziel ignorieren, neue aber einfügen

filestreamIn manchen Projekten ist es unumgänglich Daten in ein Data Warehouse in eine Fakten Tabelle zu laden, wo bereits Werte aus der Quelle im Ziel enthalten sind. Somit dürfen nur die neuen Werte eingefügt werden, die aber bereits vorhandenen sind. Da das Konzept Slowly Changing Dimensions hier nicht anwendbar ist, kann man hier das OLE DB Ziel für diese Aktion verwenden. Beim Laden darf aber nicht das schnelle Laden der Tabelle verwendet werden, da so eine große Transaktion fehlschlagen würde, sondern es muss das „einfache Laden“ verwendet werden:

 

Anschliessend können in der Fehlerausgabe die Fehler ignoriert werden:

 

Das ganze hat natürlich zum Nachteil, dass alle Transaktionen so immer einwandfrei funktionieren, obwohl vielleicht andere Fehler sich in den Daten befinden. Dafür sollte man ggf. mit Zählwerten validiieren um sicherzustellen, dass neue Daten geladen wurden. Insbesondere in einer Sales Tabelle sollten normalerweise immer neue Zeilen hinzukommen, ansonsten ist entweder der ETL Prozess fehlerhaft oder das Business und das Projekt sollte insgesamt umgehend fakturiert werden ;-)

Guten Rutsch ins neue Jahr!!