---
title: "Het transformeren en converteren van Protobuf-bestanden"
date: "2022-02-10"
categories: 
  - "data-integration"
  - "database"
  - "json"
  - "protocol-buffers"
  - "xml"
tags: 
  - "data-integration"
  - "data-mapping"
  - "flowforce-server"
  - "mapforce"
  - "mapforce-server"
description: Ontdek hoe u Protocol Buffers (Protobuf) efficiënt kunt mappen en transformeren met Altova MapForce, en integreer dit met XML, JSON en databases voor een gestroomlijnd gegevensbeheer.
---
Status: #blog

Tags:  #data-integration #data-mapping #flowforce-server #mapforce #mapforce-server

Categories: [data-integration](/blog/nl/category/data-integration.md) | [database + sql](/blog/nl/category/database-sql.md) | [json](/blog/nl/category/json.md) | [data-integration](/blog/nl/category/data-integration.md) | [xml](/blog/nl/category/xml.md)
# Het transformeren en converteren van Protobuf-bestanden

MapForce ondersteunt het omzetten van Protocol Buffers (Protobuf) naar en vanuit andere gestructureerde dataformaten, zoals [het in kaart brengen van bronnen of doelwitten](https://www.altova.com/nl/mapforce). In de voortdurende zoektocht naar efficiëntere manieren om grote, gestructureerde datasets over te dragen, te bewerken en te beheren, heeft Google een dataformaat ontwikkeld dat onafhankelijk is van programmeertalen en platforms. Dit formaat is vergelijkbaar met XML, maar kleiner, sneller en eenvoudiger dan zelfs JSON-data. Er zijn tools beschikbaar om Protobuf te genereren en te gebruiken met behulp van Java, Python, C++, C#, Ruby en andere programmeertalen.

De structuur van elk Protobuf-bericht wordt gedefinieerd in een .proto-bestand, waarin elk veld en het bijbehorende gegevenstype wordt beschreven. Altova MapForce stelt gebruikers in staat om deze .proto-bestanden in een datamapping te gebruiken als bron of bestemming, samen met andere gegevens, waaronder XML, JSON, relationele databases, Excel-bestanden, platte bestanden, REST- en SOAP-webservices, en meer. Versies 2 en 3 van .proto-bestanden worden ondersteund.

Een MapForce datamapping zorgt voor compatibiliteit tussen bestaande XML-, JSON-, database- of verouderde dataformaten en nieuwe applicaties, door gebruik te maken van de efficiëntie van Protobuf.

[![](/blog/images/shutterstock_59314045.jpg)](shutterstock_59314045.jpg)

<!--more-->

Om te beginnen met het converteren en transformeren van Protobuf-bestanden, kunt u eenvoudig een .proto-bestand in de mapping invoegen via het menu "Invoegen" of via de knop in de sneltoegankingsbalk.

[![Data-mapping met Protocol Buffers in Altova MapForce](/blog/images/insert-new.png)](insert-new.png)

MapForce bevat een voorbeeld van een data-mapping met behulp van Protobuf, dat hieronder wordt weergegeven:

[![Voorbeeld van een datamappingsprotocol met Protocol Buffers in MapForce](/blog/images/protocol-buffers-data-mapping.png)](protocol-buffers-data-mapping.png)

Het .proto-bestand dat als uitvoerbestemming wordt gebruikt, komt overeen met het voorbeeld dat beschreven staat in de online documentatie voor de contactenlijst "Personen". De brongegevens zijn een XML-bestand met veel extra elementen die niet nodig zijn voor deze Protobuf-stream. Tijdens het uitvoeren van de datamapping worden de benodigde elementen uit het XML-bestand geëxtraheerd om de uitvoerstream te creëren.

Let op dat het bestandstype voor de Protobuf-uitvoer een BLOB is, oftewel een binair groot object. MapForce stelt ontwikkelaars in staat om protocol buffer-datastromen te creëren, of protocol buffer-invoergegevens te lezen, zonder broncode te genereren in Java, C++ of een andere programmeertaal. Vervolgens hoeft de code niet te worden gecompileerd en uitgevoerd voor elk Protobuf-bestand, op basis van een nieuw .proto-bestand.

### Bekijk de omgezet gegevens 

Door op de knop "Output" onderaan het hoofdvenster van MapForce te klikken, wordt de dataomzetting uitgevoerd, waarbij het bestand "Altova_Hierarchical.xml" als databron wordt gebruikt. De resulterende datastroom wordt geopend in het preview-venster voor de uitvoer, in een representatie die lijkt op JSON:

[![Voorbeeldweergave van de data-mapping voor protocolbuffers](/blog/images/output-preview.png)](output-preview.png)

Voor eenmalige behoeften kunnen gebruikers van MapForce het binaire bestand opslaan via een optie in het menu "Uitvoer":

[![Sla de binaire uitvoer op die is gegenereerd door het datamappingsprotocol](/blog/images/data-mapping-save-output.png)](data-mapping-save-output.png)

Hieronder een gedeeltelijke weergave van de daadwerkelijke binaire gegevens, zoals getoond in een veelgebruikte hexadecimale viewer:

[![Weergave van de binaire uitvoer die is gegenereerd op basis van het datamappingsprotocol](/blog/images/protocol-buffers-binary-view.png)](protocol-buffers-binary-view.png)

De efficiëntie van de Protobuf-stream is duidelijk zichtbaar in de binaire data. Alle extra informatie, zoals de namen van XML- of JSON-elementen, wordt verwijderd, evenals spaties, tabs, haakjes en andere tekens die normaal gesproken worden toegevoegd om de leesbaarheid voor mensen te verbeteren.

### Kaart en transformeer Protobuf 

Als u een Protobuf-stream ontvangt, kunt u deze koppelen aan uw interne bedrijfsgegevensformaat. De afbeelding hieronder laat een koppeling met een database zien:

[![Een protocol buffer datamapping waarbij de protobuf de bron is en de bestemming een database-tabel.](/blog/images/protobuf-source-mapping.png)](protobuf-source-mapping.png)

De mapping maakt gebruik van verschillende functies voor dataverwerking om de binnenkomende binaire data te bewerken en aan te passen aan de structuur van de bestaande database tabel. MapForce ondersteunt data-mapping naar of vanuit alle populaire relationele databases en NoSQL-databases. Klik hier om [de volledige lijst te bekijken](https://www.altova.com/nl/mapforce#db_mapping).

Het resultaat van deze mapping is een SQL-script dat data van het binaire bestand in een database invoegt

[![Een SQL-script als resultaat van een conversie van protobuf-gegevens naar een database.](/blog/images/db-insert-script.png)](db-insert-script.png)

Nadat het script is uitgevoerd, kunnen we de inhoud van de database controleren met behulp van DatabaseSpy, de [SQL-editor](https://www.altova.com/nl/databasespy) van Altova:

[![Inhoud van de tabel na de conversie van de protobuf-gegevens naar de database.](/blog/images/table-contents.png)](table-contents.png)

### Geautomatiseerde uitvoering

Productieworkflows kunnen vereisen dat [gegevensomzettingen herhaaldelijk worden uitgevoerd](https://www.altova.com/nl/mapforce-server) om nieuwe datastromen te genereren op basis van dezelfde .proto-definitie, maar met behulp van verschillende brongegevens. In het eerste voorbeeld hierboven kan een ander XML-document als invoer worden gebruikt. Een gegevensomzetting van een database of van een REST-webdienst naar Protobuf kan regelmatig moeten worden uitgevoerd om de bijgewerkte brongegevens te verwerken.

In die of andere gevallen waarin herhaalde uitvoering vereist is, kunnen MapForce-gebruikers de datamapping opslaan als een uitvoeringsbestand voor [MapForce Server](https://www.altova.com/nl/mapforce-server) via een eenvoudige menuoptie:

[![Uitvoerbaar bestand van MapForce Server voor datamapping met behulp van protocol buffers](/blog/images/MapForce-Server-execution-file.png)](MapForce-Server-execution-file.png)

Het uitvoerbestand definieert de invoer, uitvoer en eventuele tussenliggende verwerkingsstappen die op de data moeten worden toegepast (waaronder sorteren, filteren, aangepaste functies of andere bewerkingen), en dit in een vorm die geoptimaliseerd is voor uitvoering in een serveromgeving. MapForce Server automatiseert de uitvoering van deze gecompileerde datamappingen via een commandoregel of een API-interface.

MapForce Server kan ook worden geconfigureerd met FlowForce Server, RaptorXML Server of StyleVision Server, afhankelijk van de behoeften van het bedrijf. Wanneer MapForce Server wordt beheerd door FlowForce Server, worden de datamappingen uitgevoerd als taakstappen van FlowForce Server, die kunnen worden gestart op een specifiek tijdstip of interval, of op basis van een gebeurtenis, zoals het aankomen van een nieuw bestand in een gemonitorde map.

Voor Protobuf-datamappingen waarbij de bron een databasequery of een REST-verzoek is, wordt de query uitgevoerd als onderdeel van de mapping. Wanneer de invoer een bestand is, zoals een JSON- of XML-document, wordt het nieuwe bestand opgegeven als een FlowForce-jobparameter tijdens runtime.

U kunt dit nu allemaal uitproberen met een [Volledig functionele proefversie van MapForce](https://www.altova.com/nl/mapforce/download).
