Probleme beim Verständnis von zeitweiligen Inkonsistenzen beim Laden von Daten mit SSIS-Paket

8

Das Problem

In den vergangenen Monaten hat das unten beschriebene Verfahren in den meisten Fällen ohne Probleme funktioniert (zu 2008 R2). Wir haben jedoch drei Instanzen von falsch verbundenen Daten. Die Frage ist, was verursacht das und wie behebe ich es?

%Vor%

Normalerweise ist das gerenderte Ergebnis, dass das Attribut korrekt mit Items_Main verbunden ist, aber manchmal (weniger als 1%) ist die Reihenfolge verwürfelt, so dass der Wert von col01 nicht mit demselben Items_Main verbunden ist wie der Wert des Rests Säulen.

Irgendwelche Einsichten darüber, was das verursacht, würden am meisten geschätzt werden.

Die Datenverschiebungsprozedur

Wir haben ein SSIS-Paket, das Daten von einer flachen Tabelle namens DATA_PreImp in eine Struktur überträgt, die aus drei verknüpften Tabellen besteht (attributbasiert).

  • Items_Main sollte eine Zeile für jede Zeile in DATA_PreImp
  • enthalten
  • Items_Featurevalues ​​enthält eine Zeile für jeden Spaltenwert einer Zeile in DATA_PreImp
  • Items_MainRel enthält die Verbindung zwischen Items_Main und Items_FeatureValues ​​

Der erste Schritt im SSIS-Paket fügt die Daten von DATA_PreImp in Items_Main ein und fügt den generierten Bezeichner in die Spalte TARGET_ID in der leeren Tabelle DATA_PreImpMappingTMP ein.

%Vor%

Der zweite Schritt im SSIS-Paket füllt die Items_MainRel-Tabelle mit TARGET_ID (ursprünglich Itemid) und einer Kennung für das Feature (in diesem Fall eine 5).

%Vor%

Im dritten Schritt füllen Sie die Spalte SOURCE_ID in der Tabelle DATA_PreImpMapping2TMP mit der SOURCE_ID von DATA_PreImp.

%Vor%

Der letzte Schritt besteht darin, die Items_FeatureValues-Tabelle mit Daten aus DATA_PreImpMapping2TMP und DATA_PreImp zu füllen.

%Vor%

Datentabellenstruktur

Hier ist, was benötigt wird, um das Szenario zu erstellen:

%Vor%     
ahdaniels 07.03.2013, 15:11
quelle

1 Antwort

2

Das Problem war die berechnete Spalte CUST_CD. Nach vielen Recherchen scheint es, dass der BULK INSERT keine komplexen berechneten Typen mag (siehe Verwenden von SQL Server-Spatial-Typen beim Laden von SSIS-Daten ). Die Lösung besteht darin, die berechnete Spalte zu entfernen und sie einfach zu einem varchar (20) NULL zu machen. Dann habe ich einen neuen Task "SQL ausführen" erstellt, der alle NULL-Zeilen mit dem berechneten Wert aktualisiert.

    
Kumar Ashish 07.06.2013, 19:00
quelle