---
title: "Trasformazione e conversione di dati in formato Protobuf"
date: "2022-02-10"
categories: 
  - "data-integration"
  - "database"
  - "json"
  - "protocol-buffers"
  - "xml"
tags: 
  - "data-integration"
  - "data-mapping"
  - "flowforce-server"
  - "mapforce"
  - "mapforce-server"
description: Scoprite come mappare e trasformare in modo efficiente i Protocol Buffers (Protobuf) con Altova MapForce, integrandoli con XML, JSON e database per una gestione dei dati ottimizzata.
---
Status: #blog

Tags:  #data-integration #data-mapping #flowforce-server #mapforce #mapforce-server

Categories: [data-integration](/blog/it/category/data-integration.md) | [database + sql](/blog/it/category/database-sql.md) | [json](/blog/it/category/json.md) | [data-integration](/blog/it/category/data-integration.md) | [xml](/blog/it/category/xml.md)
# Trasformazione e conversione di dati in formato Protobuf

MapForce supporta la conversione dei protocol buffer (Protobuf) verso e da altri formati di dati strutturati, utilizzandoli come [fonti o destinazioni](https://www.altova.com/it/mapforce) di mappatura. Nella continua ricerca di metodi più efficienti per trasferire, manipolare e gestire grandi set di dati strutturati, Google ha creato un formato di dati indipendente da linguaggio e piattaforma, simile a XML, ma più piccolo, più veloce e più semplice anche rispetto ai dati JSON. Sono disponibili strumenti per generare e utilizzare i Protobuf con Java, Python, C++, C#, Ruby e altri linguaggi di programmazione.

La struttura di qualsiasi messaggio Protobuf è definita in un file .proto, che specifica il nome e il tipo di dati di ciascun campo. Altova MapForce consente agli utenti di importare questi file .proto in una mappatura dati, utilizzandoli come sorgente o destinazione, insieme a qualsiasi altro tipo di dati, tra cui XML, JSON, database relazionali, Excel, file di testo, servizi web REST e SOAP, e altri. Sono supportate le versioni 2 e 3 dei file .proto.

MapForce consente di creare una mappatura dei dati che garantisce la compatibilità tra formati di dati esistenti, come XML, JSON, database o formati legacy, e nuove applicazioni che sfruttano l'efficienza di Protobuf.

[![](/blog/images/shutterstock_59314045.jpg)](shutterstock_59314045.jpg)

<!--more-->

Per iniziare a convertire e trasformare i dati in formato Protobuf, è sufficiente utilizzare il menu "Inserisci" oppure il pulsante della barra degli strumenti rapida per inserire un file .proto nella mappatura.

[![Protocolli di mappatura dei dati in formato Protocol Buffers in Altova MapForce](/blog/images/insert-new.png)](insert-new.png)

MapForce include un esempio di mappatura dati Protobuf, che viene mostrato qui di seguito:

[![Esempio di protocolli di mappatura dei dati utilizzando i protocolli buffer in MapForce](/blog/images/protocol-buffers-data-mapping.png)](protocol-buffers-data-mapping.png)

Il file .proto utilizzato come destinazione dell'output corrisponde all'esempio descritto nella documentazione online per l'elenco di contatti "Persons". I dati di origine sono un file XML che contiene molti elementi aggiuntivi non necessari per questo flusso Protobuf. Durante l'esecuzione della mappatura dei dati, gli elementi necessari vengono estratti dal file XML per creare il flusso di output.

Si prega di notare che il tipo di file per l'output Protobuf è BLOB, ovvero Binary Large Object. MapForce consente agli sviluppatori di creare flussi di dati Protobuf, oppure di leggere dati di input Protobuf, senza generare codice sorgente in Java, C++ o qualsiasi altro linguaggio, evitando così la compilazione ed esecuzione del codice per ogni file binario Protobuf, basandosi su un nuovo file .proto.

### Visualizza i dati convertiti 

Cliccando sul pulsante "Output" nella parte inferiore della finestra principale di mappatura dati di MapForce, viene eseguita la mappatura, utilizzando il file Altova\_Hierarchical.xml come fonte dati. Il flusso di dati risultante viene visualizzato nella finestra di anteprima dell'output, in una rappresentazione simile a JSON:

[![Anteprima dell'output del protocollo di mappatura dei dati](/blog/images/output-preview.png)](output-preview.png)

Per esigenze specifiche e non ricorrenti, gli utenti di MapForce possono salvare il file binario tramite un'opzione presente nel menu "Output":

[![Salvare l'output binario generato dal protocollo di mappatura dei dati](/blog/images/data-mapping-save-output.png)](data-mapping-save-output.png)

Ecco una rappresentazione parziale dei dati binari generati, come visualizzati in un tipico strumento di visualizzazione esadecimale:

[![Visualizzazione dell'output binario generato a partire dai protocolli di mappatura dei dati](/blog/images/protocol-buffers-binary-view.png)](protocol-buffers-binary-view.png)

L'efficienza del flusso Protobuf è evidente nei dati binari. Tutti gli elementi superflui, come i nomi degli elementi XML o JSON, vengono eliminati, insieme a spazi, tabulazioni, parentesi e altri caratteri che normalmente vengono inclusi per facilitare la lettura da parte degli esseri umani.

### Mappare e trasformare i dati in formato Protobuf 

Se ricevete un flusso di dati in formato Protobuf, potete mapparli al formato dei dati interno della vostra azienda. L'immagine sottostante mostra un esempio di mappatura verso un database:

[![Una mappatura dei dati in formato Protocol Buffer, in cui il formato Protocol Buffer è la sorgente e la destinazione è una tabella di un database.](/blog/images/protobuf-source-mapping.png)](protobuf-source-mapping.png)

La mappatura utilizza diverse funzioni di conversione per l'elaborazione dei dati, al fine di manipolare i dati binari in ingresso e adattarli alla struttura della tabella del database esistente. MapForce supporta la mappatura dei dati verso o da tutti i principali database relazionali e i database NoSQL. Clicca qui per [visualizzare l'elenco completo](https://www.altova.com/it/mapforce#db_mapping).

L'output di questa mappatura è uno script SQL che consente di inserire i dati da un file binario in un database

[![Uno script SQL come risultato della mappatura da un file protobuf a un database.](/blog/images/db-insert-script.png)](db-insert-script.png)

Una volta eseguito lo script, è possibile verificare il contenuto del database utilizzando DatabaseSpy, il software di Altova [Editor SQL](https://www.altova.com/it/databasespy):

[![Contenuto delle tabelle dopo l'esecuzione della mappatura da protobuf al database.](/blog/images/table-contents.png)](table-contents.png)

### Esecuzione automatica

I flussi di lavoro di produzione potrebbero richiedere [Esecuzione ripetuta delle mappature dei dati](https://www.altova.com/it/mapforce-server) per generare nuovi flussi di dati basati sulla stessa definizione .proto, ma utilizzando dati di origine diversi. Nel primo esempio sopra, si potrebbe fornire un documento XML diverso. Potrebbe essere necessario eseguire periodicamente una mappatura dei dati da un database o da un servizio web REST a Protobuf, al fine di includere i dati di origine aggiornati.

Nei casi in cui sia necessaria l'esecuzione ripetuta, gli utenti di MapForce possono salvare la mappatura dei dati come file di esecuzione di [MapForce Server](https://www.altova.com/it/mapforce-server) tramite una semplice selezione dal menu:

[![File di esecuzione di MapForce Server per i protocolli di mappatura dei dati](/blog/images/MapForce-Server-execution-file.png)](MapForce-Server-execution-file.png)

Il file di esecuzione definisce gli input, gli output e tutte le fasi di elaborazione intermedie che devono essere applicate ai dati (inclusi l'ordinamento, il filtraggio, le funzioni personalizzate o altre operazioni), in una forma ottimizzata per l'esecuzione in un ambiente server. MapForce Server automatizza l'esecuzione di queste trasformazioni dei dati, compilate, tramite un'interfaccia a riga di comando o un'API.

MapForce Server può essere configurato anche insieme a FlowForce Server, RaptorXML Server o StyleVision Server, a seconda delle esigenze dell'azienda. Quando MapForce Server opera sotto la gestione di FlowForce Server, le trasformazioni dei dati vengono eseguite come passaggi di lavoro di FlowForce Server, che possono essere attivati in un momento specifico o a intervalli regolari, oppure in base a un evento, come l'arrivo di un nuovo file in una cartella monitorata.

Per le mappature dei dati Protobuf in cui la sorgente è una query di database o una richiesta REST, la query viene eseguita come parte della mappatura. Quando l'input è un file, come un documento JSON o XML, il nuovo file viene specificato come parametro del job FlowForce al momento dell'esecuzione.

Potete provare tutto questo ora con un [Prova gratuita di MapForce, completamente funzionante](https://www.altova.com/it/mapforce/download).
