Halli hallo,
Ich bin gerade daran eine Reporting Engine für eine internet Logistik Applikation zu konzepieren.
Die Reports, meistens nur ein Report, wird aus mehreren Tabellen erstellt die jeweils bis zu 6Mio
Records haben.
Diese Daten wiederum haben aber immer ein "Last Updated"-Feld womit nicht immer die ganzen
Daten eingelesen werden müssen.
Welcher Ansatz wäre von euch her interessant und um das Problem zu lösen.
Ich habe mir da einige Gedanken zu einem ReportManger gemacht, der mehrere Threads aufmacht
und dann die SQL Statements absetzt. Es werden nicht einfach Felder ausgelesen sondern die Applikation
muss eine gewisse Bussiness Logic einbringen...z.B
Um zu berechnen ob eine Fracht angekommen ist, werden gewisse Status-Nachrichten auf ihre Abhängigkeiten
überprüft und dann als "Noch offen" oder "Am Ziel-Ort" angekommen markiert.
Der Schlüssel für diese Berechnungen sind immer die Fracht ID's die jeweils eine Sendung representieren.
Um zu verhindern, dass die Report Engine mit mehreren Threads die gleiche Sendung verarbeitet werden
in der Reporting Tabelle gewisse Felder mit einem Boolean auf gelockt gesetzt und erst wieder de-lockt wenn
alle Sendungen durch sind.
Habt ihr Vorschläge wie ich die Aufgabe besser lösen kann?
Ich bin gerade daran eine Reporting Engine für eine internet Logistik Applikation zu konzepieren.
Die Reports, meistens nur ein Report, wird aus mehreren Tabellen erstellt die jeweils bis zu 6Mio
Records haben.
Diese Daten wiederum haben aber immer ein "Last Updated"-Feld womit nicht immer die ganzen
Daten eingelesen werden müssen.
Welcher Ansatz wäre von euch her interessant und um das Problem zu lösen.
Ich habe mir da einige Gedanken zu einem ReportManger gemacht, der mehrere Threads aufmacht
und dann die SQL Statements absetzt. Es werden nicht einfach Felder ausgelesen sondern die Applikation
muss eine gewisse Bussiness Logic einbringen...z.B
Um zu berechnen ob eine Fracht angekommen ist, werden gewisse Status-Nachrichten auf ihre Abhängigkeiten
überprüft und dann als "Noch offen" oder "Am Ziel-Ort" angekommen markiert.
Der Schlüssel für diese Berechnungen sind immer die Fracht ID's die jeweils eine Sendung representieren.
Um zu verhindern, dass die Report Engine mit mehreren Threads die gleiche Sendung verarbeitet werden
in der Reporting Tabelle gewisse Felder mit einem Boolean auf gelockt gesetzt und erst wieder de-lockt wenn
alle Sendungen durch sind.
Habt ihr Vorschläge wie ich die Aufgabe besser lösen kann?