2017-02-02 5 views
1

Lassen Sie mich Ihre Hilfe für das Verständnis der Hauptlogik der Datenflussaufgabe fragen. Ich verwende ETL, um Daten in das Data Warehouse zu laden (auch Staging- und DWH-Teil). Jetzt habe ich eine Aufgabe Daten mit den bestehenden Feldern zu berechnen, sondern von Inventardaten berechnen haben ...ETL Datenflusstask - bleiben Berechnung

Ich würde die richtige Menge von remain_qty, Assigned_qty und in_progress_qty benötigen. (wie im Bild). aber momentan sehe ich dieses Ergebnis nicht. Es wäre großartig, es zu bekommen. Ich habe den Berechnungsprozess nach der Suche die Liste der Inventardaten erhalten.

dann überprüfen Sie die aktuellen Temperaturdaten einen anderen Nachschlag. Wenn es nicht auf Temp nach Element existiert, dann füge den Datensatz ein, sonst nur ein einfaches Update .. Mit dieser Methode würde ich den Berechnungsprozess machen .. Ich denke, auf dem nächsten Datensatz-System sollte die temporäre Tabelle erneut abfragen und abfragen aktuelle Daten .. ich meine mit der Menge reduziert. Aufzeichnung für Aufzeichnung. Aber jetzt sieht es nach diesen zwei Nachschlagen aus, ich habe das gleiche Ergebnis für jede Zeile. das bedeutet für mich, dass die temporäre Tabelle den Datenfluss nicht erneut abfragt. Soll ich einen anderen Datenfluss zur Berechnung verwenden? Oder kann ich die temporäre Tabelle innerhalb dieses Datenflusses verwenden, die möglicherweise durch Datensätze aktualisiert wird? Weil ich die tatsächliche Lagerbestandsmenge durch Aufzeichnungen zurückfragen würde.
..Danks for reading!

+0

Bitte formatieren Sie Ihre Frage neu, um besser zu erklären, einschließlich Screenshots, was Sie versuchen zu erreichen, was Sie bisher versucht haben und warum es nicht funktioniert.Es ist momentan unmöglich zu verstehen, was Sie hier fragen wollen ... – iamdave

+0

Entschuldigung, Sie haben Recht. Ich habe meine Fragen aktualisiert. Danke für Ihre Unterstützung! – Messersmith

Antwort

0

Click here for picture! Hallo Jungs, ich habe eine Lösung gefunden und Änderungen auf dem ETL-Prozess .. Ich habe die Datenflußtask getrennt und verwendete Verfahren gespeicherten Daten auf temporäre Tabelle neu berechnen . Dann kann der nächste Datenstrom die aktualisierten Daten von temp abfragen und die Faktentabelle mit korrekter Menge und Preis füllen. Damals habe ich die Kontrollfluss- und Datenflussprozesse gelernt. Jetzt ist es klar für mich und die App funktioniert gut. Danke für die Unterstützung!

0

Ich wurde verwirrt, aber von dem, was ich verstanden habe, wollen Sie mit der Lookup-Transformation neu abfragen, ist das korrekt? Wenn dies der Fall ist, gibt es im Lookup Transformation Editor auf der Registerkarte "Allgemein" die Option Cache-Modus, die standardmäßig als Full Cache markiert ist.

  1. Voll Cache bedeutet, dass vor irgendetwas in der Datenfluß Aufgabe zu tun, die Datenbank einmal und im Speicher gespeichert abgefragt wird. Wenn Sie also versuchen, die Transformation für die Suche in der Datenflusstask zu verwenden, werden nur die im Speicher gespeicherten Daten verwendet.
  2. Die zweite Option ist Teil Cache, fragt einige Daten vor eine Transformation zu tun, und wenn sie nicht in dort zu finden, fragt die Datenbank wieder zu finden.
  3. Endlich gibt es die No Cache-Modus, in dem Sie die Datenbank eine Zeile jedes Mal abfragen
  4. verarbeitet wird

Sie können detailliertere Informationen in this link finden.

Hoffe, es hilft

+0

danke für Ihre Lösung. Ich habe es versucht, aber löst mein Problem nicht. Könnten Sie bitte einen Blick auf den Teil meines Projekts werfen, der das Problem des Datenflusses haben könnte? Siehe Bild 3 oben. – Messersmith

+0

so, ich habe den folgenden Artikel gefunden: [Link] (http://dbadiaries.com/t-sql-determine-the-difference-in-values-between-columns-in-differency-rows) Was denkst du? , ist es die einzige Möglichkeit, die Restmenge zu berechnen? mit CTE? :) vielleicht könnte ich wenn möglich variable Arrays verwenden. Ich meine mehr Artikel mit seiner tatsächlichen Menge. – Messersmith

+0

Ich sehe kein Problem mit der Logik, die Sie im Bild haben. Obwohl ich kein Experte für SSIS bin, scheint es mir gut zu gehen. Vielleicht verwenden Sie eine bestimmte Paketvariable, speichern und verwenden den neuen Wert in der Datenflusstask? Die Variablen werden bis zum Ende der Datenflusstask nicht aktualisiert. Das könnte ein Grund sein. Sie können sie auch in 2 Datenflüsse wie Sie gesagt trennen und herausfinden, was das Problem auf diese Weise ist – Mokz