Textdateien parallel auslesen u. verarbeiten

Getting started ... Alles für einen gelungenen Start.
3 Beiträge • Seite 1 von 1
3 Beiträge Seite 1 von 1

Textdateien parallel auslesen u. verarbeiten

Beitrag von kbit100 (Specialist / 130 / 42 / 0 ) »
Hallo,

ich muss mehrere sehr große Textdateien auslesen (teilweise ca. 1,5 Mio. Datensätze) und in Z-Tabellen schreiben, nachdem die eingelesenen Daten diverse Prüfungen durchlaufen haben. Ich würde das sehr gerne parallelisieren. Mir ist nur noch nicht ganz klar, wie ich das in ABAP bewerkstelligen kann.

Mir fällt die Möglichkeit ein, jede dieser Riesentextdateien jeweils in eine interne Tabelle einzulesen und diese Tabelle wiederum in mehrere kleinere Textdateien aufzuteilen, wegzuschreiben und diese Dateien mit einem Programm über mehrere Hintergrundjobs zu verarbeiten. Oder ist es möglich große Tabellen mittels EXPORT TO MEMORY an ein Programm zu übergeben? Welche Beschränkungen gibt es da?

Kann man die Zeilen aus den Textdateien über SELECT-OPTIONS an den empfangenen Report abgeben? Da gibt es aber doch bestimmt auch eine Größenbeschränkung (Datensatzlänge, -menge).

Fällt jemanden von den "alten" Hasen evtl. eine elegantere Möglichkeit ein?

Vielen Dank für eure Tipps!

Gruß

K.

P.S.: Ich habe mit einem kleinen Proggi mal eine SELECT-OPTIONS-Tabelle mit einem Feld von 1024 Byte Länge definiert und da mal 1,5 Mio. Datensätze reingejagt. Grenze ist der Arbeitsspeicher, sagt jedenfalls der Kurzdump. Bei meinem Vorhaben brauche ich nie 1,5 Mio. Zeilen an das empfangene Programm abzugeben. Von daher könnte das funktionieren. Aber elegant ist das nicht. Vielleicht habt ihr ja eine bessere Idee für mich. Das würde mich freuen.

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: Textdateien parallel auslesen u. verarbeiten

Beitrag von Haubi (Expert / 625 / 20 / 30 ) »
Tach.

Stichwort dazu ist "Processing between Tasks". Beruht darauf, dass ein RFC-fähiger Funktionsbaustein mehrfach (mit CALL FUNCTION ... STARTING NEW TASK) parallel aufgerufen wird und die Ergebnisse seiner Berechnungen an das weiterlaufende (bzw. wartende) Hauptprogramm zurück schickt.
  • Das Hauptprogramm benutzt das WAIT-Statement um auf die Prozesse zu warten
  • Die zurückkehrenden Prozesse rufen das beim Start angegebene Unterprogramm bzw. eine entsprechende Methode des Hauptprogramms auf und liefern so Ergebnisse zurück
Du solltest dabei nur darauf achten, dass nicht zu viele Prozesse gleichzeitig laufen - sonst steigt Dir die Basis bzw. die Anwender auf's Dach... ;-)

Schau Dir dazu mal die SAP-Hilfe an: http://help.sap.com/saphelp_nw70/helpda ... ontent.htm
Außerdem empfehle ich die F1-Hilfe zu:
  • CALL FUNCTION (Variante s.o.)
  • WAIT UNTIL
  • RECEIVE RESULTS
Es hat sich übrigens bewährt, die Parallelisierungs-Logik in einer Klasse zu kapseln und die Ergebnisse in ihren Attributen abzulegen. Prinzipiell kannst Du das aber auch in einem "plain old report" machen.
Vielleicht reicht Dir das ja schon als Anstoß, ansonsten frag ruhig nochmal nach.

Grüße,
Haubi
Das ABAP Kochbuch ab sofort bei Amazon...

I'd rather write code that writes code than write code...

Re: Textdateien parallel auslesen u. verarbeiten

Beitrag von black_adept (Top Expert / 4089 / 127 / 940 ) »
Hallo K.

andere Alternative:
Gib deinem Programm einen Parameter mit, welche Zeilen der Datei verarbeitet werden sollen.
Dann baust du dir ein Vorschaltprogramm, welches nur zählt wie viele Zeilen deine Riesendatei hat, und diese startet dann einfach dein Originalprogramm ein paar mal als Job und gibt mit welche Zeilen verarbeitet werden sollen.

Beispiel: Riesendatei = 1.000.000 Zeilen, du willst nur 10.000 davon gleichzeitig verarbeiten.
Dann ruft dein Vorschaltprogramm halt 100 Jobs.
1. Job: Zeilen 1-10.000
2. Job: Zeilen 10.001 - 20.000
3. Job: Zeilen 20.001 - 30.000.
,...
100. Job: Zeilen 990.001 - 1.000.000
Haubi hat geschrieben:Du solltest dabei nur darauf achten, dass nicht zu viele Prozesse gleichzeitig laufen - sonst steigt Dir die Basis bzw. die Anwender auf's Dach... ;-)
Das gilt auch in diesem Fall
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Seite 1 von 1

Vergleichbare Themen

5
Antw.
3146
Views
Verkettete Liste auslesen/verarbeiten
von JetGum » 21.12.2007 09:19 • Verfasst in ABAP® Core
1
Antw.
3353
Views
ABAP Dump auslesen und weiter verarbeiten
von thosch » 08.08.2007 10:01 • Verfasst in ABAP® Core
14
Antw.
9765
Views
Parallel Prozzessen Starten
von autohandel7 » 10.08.2018 14:49 • Verfasst in ABAP® für Anfänger
2
Antw.
1520
Views
Dateien wie Excel, Word, Textdateien anzeigen
von tom1986 » 05.03.2009 11:14 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Aktuelle Forenbeiträge

Daten an Tabelle binden
vor 45 Minuten von Lukas Sanders 2 / 785
Dialog-Container mit Toolbar/Status
vor 14 Stunden von black_adept gelöst 21 / 2614

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Aktuelle Forenbeiträge

Daten an Tabelle binden
vor 45 Minuten von Lukas Sanders 2 / 785
Dialog-Container mit Toolbar/Status
vor 14 Stunden von black_adept gelöst 21 / 2614

Unbeantwortete Forenbeiträge

aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 2401
Hilfe bei SWEC/SWE2
September 2024 von retsch 1 / 8985