Jan Dietrich - 2012-03-30

JDeva

JDeva is a collection of java-classes and tools to process large amounts of data (mainly file base) using mappings to java classes using JPA-like annotations.

We will translate the doucumentation as fast as possible...

JDeva ist Open Source und unterliegt der GNU Lesser General Public License (http://www.gnu.org/licenses/).

Insbesondere bei Datenhaltung in verschiedenen Systemen oder bei der Migration auf neue Systeme entsteht oft die Schwierigkeit, semantisch gleiche Daten miteinander zu vergleichen, wenn diese in unterschiedlichen Formen oder Formaten vorliegen. JDeva stellt ein Gerüst zur Verfügung, das diese Daten auf einen gemeinsamen Nenner bringt und damit Analysen und Vergleiche der Daten möglich macht.

Zum einen bietet JDeva eine Sammlung von Klassen (API) mit der die Erstellung von spezialisierten Vergleichen in Java unterstützt wird. Zum anderen werden Tools für die allgemeine Verarbeitung großer Datenmengen (Sortierung, Merge, Transformation) bereitgestellt.

JDeva Programmierschnittstelle (API)

Für die Analyse und den Vergleich von Datensätzen ist es sinnvoll, diese in Java-Objekte zu überführen, deren Attribute dann fachlich betrachtet und verglichen werden können. JDeva unterstützt das Laden von Daten in Objekte durch spezeille Iteratoren, Umwandlungsfunktionen und die Verwendung von Daten-Definitionen.

Wo möglich, werden strukturierte Daten generisch betrachtet und allgemeingültige Transformationen angeboten. Damit kann sich der Benutzer des API weitgehend auf den fachlichen Teil konzentrieren.

Einer der Schwerpunkte ist die Verarbeitung von Datendateien, da Dateien eine der schnellsten ...

Typische Arbeiten beim Vergleich großer Datenmengen, die JDeva unterstützt sind:

  • Lesen von Datensätzen aus Dateien und Schreiben in Dateien.
  • Serialisierung und Deserialisierung von Daten in/aus Streams mit Zeichen-separierten Feldern oder Feldern fester Breite.
  • Gezielter Zugriff auf Felder innerhalb eines Datensatzes.
  • Sortieren und Gruppieren von Datensätzen anhand von Schlüsselfeldern.
  • Hilfsfunktionen zum Parsen und Kodieren, sowie Anonymisieren von Daten.

JDeva Tools für die Datenverarbeitung

Ein Großteil der Tools wirkt auf Daten in Dateien. Dateien bieten oft die schnellste Möglichkeit,
Massendaten zu lesen, zu verändern und wieder wegzuschreiben.

  1. Merge - Zusammenfassung mehrerer sortierter Dateien mit Datensätzen

Das Tool Merge liest mehrere Dateien mit Datensätzen des gleichen Typs ein und schreibt diese in eine gemeinsame Datei heraus. Die einzelnen Dateien müssen gemäß einem Schlüssel sortiert sein. Die zusammengefasste Datei ist ihrerseits nach dem Schlüssel sortiert.

1.a) CascadingMerge - Spezielle Form des Merge für die Zusammenfassung einer sehr großen Anzahl von Dateien

Der CascadingMerge führt die gleiche Aufgabe aus wie der reguläre Merge, verwendet hierzu allerdings ein spezielles Verfahren, das auch das sortierte Zusammenfassen von sehr vielen Dateien ermöglicht, die, wenn sie gleichzeitig geöffnet würden, die Systemressourcen sprengen würden.
Der CascadingMerge fasst Dateien gruppenweise zu gemeinsamen Dateien zusammen, die wiederum in einem weiteren Schritt zusammengefasst werden, u.s.w. bis letztendlich eine große gemeinsame Datei entsteht.

  1. Sort - Sortierung von Massendaten gemäß einem Schlüssel

Sortiert eine nahezu beliebig große Datei mit Datensätzen nach einem angegebenen Schlüssel.

  1. Anonymize - Anonymisierung von privaten oder sicherheitsrelevanten Daten

Die Anonymisierung ermöglicht es, mit Massendaten zu arbeiten, Analysen und Vergleiche auszuführen, ohne die Datensicherheit zu gefährden, da kritische Daten unkenntlich gemacht werden können.

  1. RecordClassGenerator - Generierung von Java-Daten-Klassen für Datensätze aus Daten-Definitionen

Der Klassengenerator für Datensatz-Klassen erzeugt aus Daten-Definitionsdateien Java-Klassen mit Getter- und Setter-Methoden für die Felder eines Datensatzes. Außerdem werden Hilfsfunktionen für das Serialisieren und Deserialisieren mit Zeichen-Separatoren oder mit Feldern fester Breite erzeugt.
Zusätzlich zu den Datenklassen können entsprechende Builder-Klassen erzeugt werden, die für die Verarbeitung der Daten als Datensätze in den meisten generischen Funktionen benötigt werden, so z. B. in Merge oder Sort.
Damit müssen die Daten- und Builder-Klassen nich manuell programmiert werden. Änderungen in den Daten-Definitionen lassen sich schnell und nicht so fehleranfällig in die Java-Klassen übertragen.

  1. BlacklistFilter - Herausfiltern von Datensätzen anhand einer Black-List

Datensätze einer Datendatei, deren Schlüssel in einer sog. Black-List enthalten ist, werden herausgefiltert. Die Black-List selbst ist eine weitere Datei, die eine Liste der Schlüssel enthält, die in der Datendatei ausgesiebt werden. Die Black-List-Datei kann ansonsten beliebige andere Felder enthalten.

 

Last edit: Marcus Schmitt 2012-08-23