Puzzleteil zur Visualisierung von Integration

Einlesen großer Dateien mit Camel

Wissensbeitrag

Wenden wir uns einmal der Situation zu, dass eine relativ große Datei über eine simple Java Anwendung zerlegt und die so gewonnen Daten in eine Datenbank geschrieben werden sollen. Dazu gibt es verschiedene Ansätze, die sowohl Vor- als auch Nachteile aufweisen.

Möglichkeit 1: plain Java

Java bietet hierzu eine relativ simple Möglichkeit: Den FileReader. Mit diesem FileReader wird die Datei in das Java Programm eingelesen, in welchem dann verschiedene Bearbeitungsschritte vorgenommen werden können. Zum Schluss wird die Datei in die Datenbank geschrieben. Einen Haken hat diese einfache Prozedur allerdings: Der FileReader lädt die gesamte Datei in den Puffer. Dadurch entstehen – je nach Dateigrößen – immens große Laufzeiten. Im Worst-Case führt dieses Verfahren sogar zu einem Programmabsturz und wird damit vollständig unbrauchbar.

Tippen auf Tastatur

Ein Workaround für dieses Problem besteht darin, jeweils nur einzelne Zeilen mit Hilfe des Java-Integrierten Scanner Tools auszulesen und zu bearbeiten. So wird ein geringerer Anteil an Speicher auf einmal benötigt. Nun ergibt sich jedoch das Problem, dass diese Anwendung nachträgliche Anpassungen oder Erweiterungen deutlich schwierig gestaltet. Ein weiterer Nachteil besteht darin, dass erst immer eine komplette Zeile bearbeitet werden muss bevor die nächste Zeile eingelesen wird:

Zeile auslesen -> Bearbeitung und Daten herausfiltern -> Datenbank füllen

Der gesamte Vorgang muss außerdem an einem Stück passieren, da zwischendurch nicht einfach pausiert werden kann.

Plain Java eignet sich somit eher dafür, kleinere Dateien zu verarbeiten. Für größere Dateien empfehle ich andere Varianten – wie zum Beispiel über ActiveMQ und Camel, Open Source-Techniken.

Möglichkeit 2: Open Source (Apache ActiveMQ & Camel)

Rechner mit Programmiercode

Mit Apache Camel besteht in Verbindung mit ActiveMQ die Möglichkeit, oben angesprochene Thematik in zwei „Routen“ zu teilen und diese gleichzeitig laufen zu lassen. „Routen“ sind dabei Handlungsstränge in Camel, welche zum Beispiel eine Datei von A nach B schieben und zwischendurch noch andere Bearbeitungsschritte durchführen:

– Route 1 liest die Zeilen einzeln aus und schreibt diese auf eine Queue

– Route 2 nimmt sich die Messages aus der Queue und schreibt die gewollten Daten in die Datenbank

Ein Vorteil hierbei ist, dass die Routen simultan bearbeitet werden. Das bedeutet, dass Route 2 dauerhaft auf die Queue achtet. Sobald von Route 1 eine Message auf die Queue geschrieben wird, wird diese dadurch von Route 2 bearbeitet. Die fertig bearbeiteten Daten wandern im Anschluss direkt in die Datenbank.

Ein zweiter Vorteil dieser Variante: Asynchronität. Sollte Route 2 zum Beispiel einmal nicht auf die Queue lauschen, kann Route 1 trotzdem noch Messages in die Queue einreihen. Sobald Route 2 wieder verfügbar ist, holt sie sich die bereits vorhandenen Messages einfach ab. Letztlich kann diese Lösung noch durch Transaktionssicherheit ergänzt werden (ein weiterer Vorteil, den Camel von Haus aus bietet), sodass bei einem Ausfall die Daten trotzdem erhalten bleiben.

Ebenso ermöglicht diese Variante eine deutlich einfachere, nachträgliche Anpassung bzw. Erweiterung um zum Beispiel weitere Anbindungen, wie: Die Daten nicht nur in eine Datenbank schreiben, sondern verschiedene Daten zusätzlich noch an andere Stellen weiterzuleiten um beispielsweise eine Stückzahl einer Bestellung ans Lager weiterzugeben.

Welche Varianten nutzen Sie zum Einschreiben von Dateien in Datenbanken? Ich freue mich auf Ihre Erfahrungen, Meinungen und – selbstverständlich – auch Fragen zu diesem Thema.

Webinar on demand

Provisionierung in großen Entwicklungsumgebungen

In dem Webinar on demand wird ein zentrales Administrationssystem für Entwicklungsergebnisse auf Basis von Jira Service Management vorgestellt.

Blog 29.03.22

Interview mit Dagmar Groß-Böker

„Hybride Arbeitsmodelle haben wir Corona zu verdanken“ Corona hat eine Vielzahl von Unternehmen stark gebeutelt, sowohl aus Sicht der Mitarbeiter, als auch aus der Perspektive der Organisationsleitung. Doch die Pandemie habe auch ihre gute Seite, sagt die HR-Expertin Dagmar Groß-Böker. Im Gespräch mit Joubin Rahimi, Geschäftsführer der synaigy GmbH, erzählt sie, welchen Nutzen ihrer Meinung nach Corona für die Zukunft der Arbeit gebracht hat und woran es Führungskräften in unsicheren Zeiten oft noch mangelt.

Presse 14.10.22

Fachbeitrag: Ereignisgesteuerte Architekturen - Großes Event

Mit Ereignisgesteuerte Architekturen lassen sich Daten asynchron und in Echtzeit verarbeiten. Mehr dazu in unserem Fachbeitrag im IT-Administrator.

Wissen

Message Broker: Kleines Fixpack mit großer Wirkung

Anfang Oktober 2012 wurde Fixpack 1 für WebSphere Message Broker Version 8 veröffentlicht. Der folgende Blogeintrag beschäftigt sich mit einigen der Neuerungen, die andeuten könnten, wohin sich der Message Broker in Zukunft entwickelt.

Software & Application
Service

Software & Application

Agilität, Application Modernization, Fullstack Development und Requirement Engineering sind wichtige Aspekte der Business Application Development.

Standort

Stuttgart

Finden Sie u.a. catworkx GmbH und novaCapta GmbH in Stuttgart; Friedrichstr. 9; 70174 Stuttgart; Tel: +49 711 77940 0; Fax: +49 711 77940 19: Mail: info.stuttgart@novacapta.de

Standort

Wien

Finden Sie u.a. die catworkx GmbH, CLOUDPILOTS Software & Consulting GmbH, IPG Information Process Group Austria GmbH und TIMETOACT GROUP Österreich GmbH in Wien

Standort

Zürich

Finden Sie u.a. novaCapta Schweiz AG und TIMETOACT GROUP Schweiz GmbH in Zürich: Technoparkstraße 1, 8005 Zürich

Standort

Hannover

Finden Sie u.a. novaCapta GmbH und PKS Software GmbH in Hannover: Heiligerstraße 7, 30159 Hannover

Unternehmen

Anfahrt zur TIMETOACT GROUP in Köln

Egal ob mit dem Auto, mit dem Zug oder mit dem Flugzeug: Wir zeigen Ihnen, wie Sie am besten zu ins in den Mediaparkt nach Köln kommen.

Standort

Köln

Finden Sie u.a. catworkx, CLOUDPILOTS, IPG, novaCapta, synaigy, TIMETOACT, X-INTEGRATE vor Ort: Im Mediapark 5; 50670 Köln

Referenz

Beratung zur ivv Kollaborationsstrategie

Die zukünftige Kollaboration der ivv ist geprägt durch moderne Kommunikations- und Kollaboration-Werkzeuge und für das organisationsübergreifende Arbeiten im Verbund und mit Externen definiert.

Logo RedHat
Technologie 02.07.20

RedHat

Wir sind RedHat Advanced Partner. Mit RedHat als dem Marktführer in Open-Source-IT-Lösungen unterstützen wir unsere Kunden ihre Cloud Journey aktiv zu gestalten und umzusetzen.

Commerce & Customer Experience, CRM
Service

Commerce & Customer Experience, CRM

Im Handel ist eine positive Kundenerfahrung (CX) von zentraler Bedeutung für den weiteren Erfolg eines Unternehmens.

Standort

München

Finden Sie u.a. vor Ort in München: ARS Computer und Consulting GmbH; catworkx GmbH, novaCapta GmbH; TIMETOACT Software & Consulting GmbH

Standort

Hamburg

Finden Sie u.a. catworkx GmbH, novaCapta GmbH & TIMETOACT Software & Consulting GmbH in Hamburg.

Standort

Augsburg

Finden Sie u.a. die novaCapta GmbH in Augsburg: Schertlinstraße 19, 86159 Augsburg, +49 821 789 887 90, info.augsburg@novacapta.de

Standort

Dortmund

Finden Sie u.a. die synaigy GmbH in Dortmund: Am Rombergpark 31a, 44225 Dortmund, +49 221 97343 0, Mail: info@synaigy.com

Standort

Nürnberg

Finden Sie u.a. novaCapta GmbH in Nürnberg: Isaak-Loewi-Straße 11-17; 90763 Fürth, info@novacapta.de

Standort

Seligenstadt

Finden Sie u.a. novaCapta GmbH und TIMETOACT Software & Consulting GmbH in Seligenstadt: Dr.-Hermann-Neubauer-Ring 40; 63500 Seligenstadt

Bleiben Sie mit dem TIMETOACT GROUP Newsletter auf dem Laufenden!