---
title: "Mehrere Eingabedateien in einer einzigen Datenzuordnung verarbeiten"
date: "2013-01-29"
categories: 
  - "applications"
  - "data-integration"
tags: 
  - "data-mapping"
  - "mapforce"
description: Entdecken Sie, wie Sie mit Altova MapForce mehrere Eingabedateien effizient für die Datenzuordnung verarbeiten können. Dieser Leitfaden behandelt Wildcards, Funktionen zur Pfadmanipulation und Filtertechniken.
---
Status: #blog

Tags:  #data-mapping #mapforce

Categories: [ETL](/blog/de/category/etl.md) | [data-integration](/blog/de/category/data-integration.md)
# Mehrere Eingabedateien in einer einzigen Datenzuordnung verarbeiten

Typische Aufgaben der Datenkonvertierung erfordern die Verarbeitung einer großen Anzahl von Eingabedateien, die in Batches eingehen. [Altova MapForce](https://www.altova.com/de/mapforce.html) bietet Funktionen, mit denen Sie Gruppen von Dateien mit minimalem Aufwand verarbeiten können. Beispielsweise haben wir kürzlich eine Reihe von Dateien von der Speicherkarte einer digitalen Kamera mit GPS-Funktion kopiert. Jede .LOG-Datei ist eine CSV-Datei, die GPS-Koordinaten für eine einzelne Route enthält.

![Verzeichnis der Quelldateien für die Datenkonvertierung](https://lh4.ggpht.com/-Y_WZhryIjkY/UPl5wriQH7I/AAAAAAAAA9Q/EsluCIUq068/clip_image001%25255B3%25255D.png?imgmax=800 "Directory list of source files for data conversion")

Wir haben schnell eine Methode entwickelt, um die CSV-Daten in das XML-basierte .gpx-Format zu konvertieren, und alle drei Dateien verarbeitet, um in einem einzigen Durchlauf drei Ausgabedateien zu erstellen:

![Liste der automatisch generierten Ausgabedateien](https://lh3.ggpht.com/-_QzOFmBto78/UPl5xBjlsjI/AAAAAAAAA9Y/DIJBSZ6AdMw/clip_image002%25255B3%25255D.png?imgmax=800 "List of automatically generated output files")

<!--more-->

Zunächst haben wir ein Platzhalterzeichen im Dateinamen der Eingabedatei im Eigenschaften-Dialog für das Eingabeelement der Zuordnung verwendet. Dies weist MapForce an, jede Datei im Arbeitsverzeichnis, die mit dem Platzhalter übereinstimmt, einzeln zu verarbeiten.

![Die Verwendung eines Platzhalters für die Eingabedatei der Zuordnung](https://lh3.ggpht.com/-iqz0XDhHvLQ/UPl5xo-viaI/AAAAAAAAA9g/TO9klug7KLc/clip_image003%25255B3%25255D.png?imgmax=800 "Using a wildcard for the mapping input file")

Wenn Sie eine komplexe Konvertierung durchführen oder wenn die Eingabedateien sehr groß sind, können Sie einen einzelnen, eindeutigen Dateinamen verwenden, um die Zuordnung zu erstellen. Sobald Sie mit dem Ergebnis der Zuordnung zufrieden sind, können Sie zu einem Platzhalter wechseln.

**Funktionen für Dateipfade**

Die integrierte Funktionsbibliothek von MapForce enthält Funktionen zur Verwaltung von Dateipfaden, die wir nutzen können, um Ausgabedateinamen zu verwalten. Wenn wir eine einzelne Ausgabedatei definieren, werden neue Daten an diese Datei angehängt, wenn wir jeweils eine neue Eingabedatei verarbeiten.

![Funktionen zur Pfadmanipulation in der MapForce-Funktionsbibliothek](https://lh5.ggpht.com/-JxIKHZXrzEo/UPl5xzHgSnI/AAAAAAAAA9o/6APxltAkffU/clip_image004%25255B3%25255D.png?imgmax=800 "File path functions in the MapForce function library")

Sie können Dateipfadfunktionen mit anderen String-Funktionen kombinieren, um die Ausgabedateinamen und -orte vollständig zu steuern. Wir haben uns entschieden, die Ausgabedateien im selben Verzeichnis wie die Eingabedateien zu speichern, aber gleichzeitig aussagekräftigere Dateinamen zu verwenden und die Dateiendung ".gpx" zu nutzen.

Der unten gezeigte Ausschnitt der Konfiguration verwendet die Funktion zur Zeichenkettenverkettung in Kombination mit Funktionen zur Pfadmanipulation, um die Ausgabedatei "1211190converted.gpx" aus der Datei "1211190.LOG" zu erstellen, und so weiter.

![Die Verwendung von Pfadfunktionen in Kombination mit einer String-Funktion](https://lh4.ggpht.com/-l6ypssdA9Mg/UPl5ydkZBjI/AAAAAAAAA9w/2IfnpeT0TDY/clip_image005%25255B3%25255D.png?imgmax=800 "Using path functions with a string function")

Sie können auch Funktionen für Dateipfade verwenden, um Zeichenketten zu generieren und diese als Ausgabe einzufügen. Das XML-Schema für .gpx-Dateien enthält ein Metadaten-Beschreibungsfeld. Wir haben uns entschieden, den Namen der Eingabedatei in die Metadaten einzufügen, um die Verbindung zwischen der Ausgabedatei und den ursprünglichen Daten explizit herzustellen. Diese Strategie macht die Ausgabedatei selbsterklärend und kann bei der Fehlersuche helfen, falls Sie unerwartete Ausgaben auf die ursprüngliche Quelle zurückverfolgen müssen.

Der im Folgenden dargestellte Abschnitt der Zuordnung fügt den Namen der Quelldatei in eine Zeichenkette ein und ordnet diese Zeichenkette den Metadaten zu `<desc>` Element:

![Die Dateinamen als Ausgabedaten darstellen](https://lh4.ggpht.com/-_NjzoK77594/UPl5zLiSFyI/AAAAAAAAA94/3E_Qvk6srt8/clip_image006%25255B3%25255D.png?imgmax=800 "Mapping the file name as output data")

Die resultierende Beschreibung befindet sich in Zeile 4 der Vorschau der [Kartierungsergebnisse](https://www.altova.com/de/mapforce/mapping-output.html):

**![Vorschau der Ausgabedaten mit einem Dateinamen](https://lh3.ggpht.com/-EjC6gwHoeag/UPl5zSR4N0I/AAAAAAAAA-A/7qR6l5P2tTI/clip_image007%25255B3%25255D.png?imgmax=800 "Vorschau der Ausgabedaten mit einem Dateinamen")**

**Filterung von Eingabedaten**

Der Kern dieser Datenzuordnung erforderte eine Filterung der Eingabedatei. Die GPS-Protokolldateien der Kameras werden gemäß der Spezifikation der National Marine Electronics Association (NMEA) erfasst. Ein Ausschnitt einer der Eingabedateien ist unten dargestellt:

![Beispieldaten aus dem GPS-Protokoll der Kamera](https://lh6.ggpht.com/-My1iWbnP1Fs/UPl5z4xF7tI/AAAAAAAAA-I/dmH9bWwphCI/clip_image008%25255B3%25255D.png?imgmax=800 "Sample data from the camera GPS log")

Nach der ersten Zeile wird jeder aufgezeichnete Punkt durch zwei NMEA-Sätze beschrieben, wobei der Typ des Satzes im ersten Feld angegeben ist. Jeder GGA-Satz enthält die Zeit, die geografische Breite, die geografische Länge, die Höhe und zusätzliche Daten über die Genauigkeit der Positionsbestimmung. Jeder RMC-Satz enthält die Zeit, die geografische Breite, die geografische Länge und das Datum.

Ein RMC-Satz enthält die minimalen Daten, die wir benötigen, um eine .gpx-Datei zu erstellen `<trkpt>` Element, sodass wir einen Filter verwenden können, um nur die entsprechenden Zeilen aus der Eingabe auszuwählen, wie hier gezeigt:

![Die Eingabedaten filtern, um Zeilen auszuwählen](https://lh5.ggpht.com/-u3MGw07n5Jg/UPl50MRDs2I/AAAAAAAAA-M/Jdm8sOiyLko/clip_image009%25255B3%25255D.png?imgmax=800 "Filtering the input data to extract rows")

Wenn der Nachrichtentyp im ersten Feld einer Zeile "$GPRMC" enthält, wird diese Zeile zur Verarbeitung weitergeleitet. Andernfalls wird die Zeile ignoriert.

Die eigentlichen Daten in der Eingabedatei mussten ebenfalls bearbeitet werden. Für jede geographische Breite und Länge mussten wir mehrere Felder aus der Quelldatei, die Grad, Minuten und Sekunden enthielten, zusammenführen und in Dezimalgrad umwandeln. Wir mussten die Felder für Zeit und Datum kombinieren und das Ergebnis im ISO 8601-Format speichern, wie es für .gpx-Dateien erforderlich ist, beispielsweise "2012-11-19T20:43:23Z". Wir haben jede dieser Umwandlungen als benutzerdefinierte Funktionen definiert, um ihre Komplexität zu verbergen und sie von der Hauptfunktionalität der Kartierung zu trennen.

Diese Zuordnung bietet außerdem die Möglichkeit, die Benutzerfunktion `getElevationUS`, die wir in einem früheren Beitrag definiert haben ([Unerwartetes erwarten – Altova MissionKit löst ein Zahlenformat-Problem](https://www.altova.com/blog/2013/01/expect-unexpected-altova-missionkit.html)), wiederzuverwenden. Diesmal haben wir die Höhenangaben auf drei Dezimalstellen gerundet, was dem nächstgelegenen Millimeter entspricht.

Der Hauptteil der Datenzuordnung von Camerlog zu GPX mit benutzerdefinierten Funktionen sieht wie folgt aus:

![Kernstück der Datenzuordnung mit benutzerdefinierten Funktionen](https://lh6.ggpht.com/-2HVaK82dfyo/UPl50fC_aHI/AAAAAAAAA-Y/1rMavSy31hM/clip_image010%25255B3%25255D.png?imgmax=800 "Core of the data mapping with user functions")

Und hier ist eine der Ausgabedateien, die ein `<trk>`, ein `<trkseg>` sowie mehrere `<trkpt>`-Elemente enthält.

![Beispielhafte Ausgabedaten](https://lh6.ggpht.com/-HQudomQ_V9o/UPl51JbUgXI/AAAAAAAAA-g/OH2DiYSvrZU/clip_image011%25255B3%25255D.png?imgmax=800 "Sample output data")

Das Menü "Ausgabe" in MapForce bietet eine Auswahl, mit der wir die Ausgabedateien anhand des XML-Schemas für .gpx validieren können:

![Validierungsergebnisse](https://lh6.ggpht.com/-9PvYWtWIYh0/UPl51dQrWfI/AAAAAAAAA-o/1NI8SHJzfLg/clip_image012%25255B3%25255D.png?imgmax=800 "Validation results")

**Wenn Sie dies verwenden möchten** [**Altova MapForce**](https://www.altova.com/de/download-trial.html) **um Ihre eigenen Datenzuordnungen zu verwenden und Eingabedateien in Batches zu verarbeiten** [Klicken Sie hier, um eine kostenlose Testversion herunterzuladen](https://www.altova.com/de/download-trial.html)**.**
