---
title: "Elaborare più file di input in un'unica mappatura dei dati"
date: "2013-01-29"
categories: 
  - "applications"
  - "data-integration"
tags: 
  - "data-mapping"
  - "mapforce"
description: Scoprite come elaborare in modo efficiente più file di input per la mappatura dei dati utilizzando Altova MapForce. Questa guida illustra l'utilizzo di caratteri jolly, funzioni per i percorsi dei file e tecniche di filtraggio.
---
Status: #blog

Tags:  #data-mapping #mapforce

Categories: [ETL](/blog/it/category/etl.md) | [data-integration](/blog/it/category/data-integration.md)
# Elaborare più file di input in un'unica mappatura dei dati

Le attività tipiche di conversione dati richiedono l'elaborazione di numerosi file di input che arrivano in batch. [Altova MapForce](https://www.altova.com/it/mapforce.html) include funzionalità che consentono di gestire gruppi di file con un intervento minimo. Ad esempio, di recente abbiamo copiato un insieme di file dalla scheda di memoria di una fotocamera digitale con supporto GPS. Ogni file .LOG è un file CSV che contiene le coordinate GPS per un singolo percorso.

![Elenco dei file sorgente per la conversione dei dati](https://lh4.ggpht.com/-Y_WZhryIjkY/UPl5wriQH7I/AAAAAAAAA9Q/EsluCIUq068/clip_image001%25255B3%25255D.png?imgmax=800 "Directory list of source files for data conversion")

Abbiamo rapidamente sviluppato un sistema di conversione per trasformare i dati in formato CSV in formato .gpx basato su XML, e abbiamo elaborato tutti e tre i file per generare tre file di output in un'unica operazione

![Elenco dei file di output generati automaticamente](https://lh3.ggpht.com/-_QzOFmBto78/UPl5xBjlsjI/AAAAAAAAA9Y/DIJBSZ6AdMw/clip_image002%25255B3%25255D.png?imgmax=800 "List of automatically generated output files")

<!--more-->

Innanzitutto, abbiamo utilizzato un carattere jolly nel nome del file di input, nella finestra di dialogo delle proprietà, per il componente di input della mappatura. Questo indica a MapForce di elaborare individualmente ogni file nella directory di lavoro che corrisponde al carattere jolly.

![Utilizzare un carattere jolly per il file di input della mappatura](https://lh3.ggpht.com/-iqz0XDhHvLQ/UPl5xo-viaI/AAAAAAAAA9g/TO9klug7KLc/clip_image003%25255B3%25255D.png?imgmax=800 "Using a wildcard for the mapping input file")

Se state progettando una conversione complessa, oppure se i file di input sono molto grandi, potete utilizzare un singolo nome file univoco per definire la mappatura, e successivamente passare a un carattere jolly quando siete soddisfatti del risultato della mappatura.

**Funzioni per la gestione dei percorsi dei file**

La libreria di funzioni MapForce integrata include funzioni per la gestione dei percorsi dei file, che possiamo utilizzare per gestire i nomi dei file di output. Se definiamo un singolo file di output, questo verrà aggiornato con nuovi dati ogni volta che elaboriamo un nuovo input.

![Funzioni per la gestione dei percorsi dei file nella libreria di funzioni MapForce](https://lh5.ggpht.com/-JxIKHZXrzEo/UPl5xzHgSnI/AAAAAAAAA9o/6APxltAkffU/clip_image004%25255B3%25255D.png?imgmax=800 "File path functions in the MapForce function library")

È possibile combinare le funzioni per la gestione dei percorsi dei file con altre funzioni di manipolazione di stringhe, per avere un controllo completo sui nomi e le posizioni dei file di output. Abbiamo deciso di salvare i file di output nella stessa directory dei file di input, ma di utilizzare nomi di file più descrittivi e l'estensione .gpx.

La sezione del processo di mappatura mostrata di seguito utilizza la funzione di concatenazione di stringhe insieme a funzioni per la gestione dei percorsi dei file, al fine di generare il file di output "1211190converted.gpx" a partire dal file "1211190.LOG", e così via.

![Utilizzo di funzioni di percorso con una funzione stringa](https://lh4.ggpht.com/-l6ypssdA9Mg/UPl5ydkZBjI/AAAAAAAAA9w/2IfnpeT0TDY/clip_image005%25255B3%25255D.png?imgmax=800 "Using path functions with a string function")

È possibile utilizzare anche le funzioni relative ai percorsi dei file per generare stringhe e inserirle come output. Lo schema XML per i file .gpx contiene un elemento di descrizione dei metadati. Abbiamo deciso di inserire il nome del file di input nei metadati per collegare esplicitamente il file di output ai dati originali. Questa strategia rende il file di output auto-documentato e può essere utile per il debug, nel caso in cui sia necessario risalire a una fonte originale per un output inatteso.

La sezione del codice mostrata di seguito inserisce il nome del file di origine in una stringa e associa questa stringa ai metadati `<desc>` elemento:

![Assegnare il nome del file come dato di output](https://lh4.ggpht.com/-_NjzoK77594/UPl5zLiSFyI/AAAAAAAAA94/3E_Qvk6srt8/clip_image006%25255B3%25255D.png?imgmax=800 "Mapping the file name as output data")

La descrizione risultante si trova alla riga 4 del [Anteprima dell'output della mappatura](https://www.altova.com/it/mapforce/mapping-output.html):

**[Immagine di anteprima dei dati di output con un nome file]**

**Filtrare i dati di input**

Il cuore di questa mappatura dei dati richiedeva un filtro applicato al file di input. I file di log GPS delle telecamere sono registrati secondo le specifiche dell'associazione National Marine Electronics Association (NMEA). Una parte di uno dei file di input è mostrata di seguito:

![Dati di esempio provenienti dal registro GPS della fotocamera](https://lh6.ggpht.com/-My1iWbnP1Fs/UPl5z4xF7tI/AAAAAAAAA-I/dmH9bWwphCI/clip_image008%25255B3%25255D.png?imgmax=800 "Sample data from the camera GPS log")

Dopo la prima riga, ogni punto registrato è descritto da due frasi NMEA, in cui il tipo di frase è identificato nel primo campo. Ogni frase GGA include l'ora, la latitudine, la longitudine, l'altitudine e dati aggiuntivi sulla qualità della misurazione. Ogni frase RMC contiene l'ora, la latitudine, la longitudine e la data.

Una frase RMC contiene i dati minimi necessari per generare un file .gpx `<trkpt>` elemento, quindi possiamo utilizzare un filtro per selezionare solo le righe desiderate dall'input, come mostrato qui:

![Filtrare i dati di input per estrarre le righe](https://lh5.ggpht.com/-u3MGw07n5Jg/UPl50MRDs2I/AAAAAAAAA-M/Jdm8sOiyLko/clip_image009%25255B3%25255D.png?imgmax=800 "Filtering the input data to extract rows")

Se il tipo di messaggio nel primo campo di una riga contiene la stringa "$GPRMC", questa viene elaborata. In caso contrario, la riga viene ignorata.

I dati effettivi presenti nel file di input richiedevano anch'essi alcune elaborazioni. Per ogni latitudine e longitudine, era necessario combinare diversi campi presenti nella sorgente che definivano gradi, minuti e secondi, e convertirli in gradi decimali. Era inoltre necessario combinare i campi relativi a data e ora e registrare il risultato nel formato ISO 8601, come richiesto dal formato .gpx, ad esempio 2012-11-19T20:43:23Z. Abbiamo definito ciascuna di queste conversioni come funzioni utente, al fine di incapsulare la loro complessità e separarle dalla logica principale del programma.

Questa mappatura offre anche l'opportunità di riutilizzare la funzione utente `getElevationUS` che abbiamo definito nel post precedente, intitolato "[Aspettatevi l'inaspettato: Altova MissionKit risolve un mistero sui formati numerici](https://www.altova.com/blog/2013/01/expect-unexpected-altova-missionkit.html)". Questa volta, abbiamo arrotondato i dati di altitudine a tre cifre decimali, rappresentando il millimetro più vicino.

La sezione principale della mappatura dei dati CamerlogToGPX, che include le funzioni utente, è strutturata in questo modo:

![Il cuore del processo di mappatura dei dati risiede nell'utilizzo di funzioni personalizzate](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")

Ecco uno dei file di output che mostra un elemento `<trk>`, un elemento `<trkseg>` e diversi elementi `<trkpt>`.

![Dati di esempio di output](https://lh6.ggpht.com/-HQudomQ_V9o/UPl51JbUgXI/AAAAAAAAA-g/OH2DiYSvrZU/clip_image011%25255B3%25255D.png?imgmax=800 "Sample output data")

Il menu "Output" di MapForce offre una serie di opzioni che consentono di validare i file di output rispetto allo schema XML .gpx:

![Risultati della validazione](https://lh6.ggpht.com/-9PvYWtWIYh0/UPl51dQrWfI/AAAAAAAAA-o/1NI8SHJzfLg/clip_image012%25255B3%25255D.png?imgmax=800 "Validation results")

**Se desiderate utilizzare** [**Altova MapForce**](https://www.altova.com/it/download-trial.html) **per elaborare i file di input in gruppi, definendo le proprie mappature dei dati** [Clicca qui per scaricare una versione di prova gratuita](https://www.altova.com/it/download-trial.html)**.**
