---
title: "Transformation et conversion de Protobuf"
date: "2022-02-10"
categories: 
  - "data-integration"
  - "database"
  - "json"
  - "protocol-buffers"
  - "xml"
tags: 
  - "data-integration"
  - "data-mapping"
  - "flowforce-server"
  - "mapforce"
  - "mapforce-server"
description: Découvrez comment utiliser Altova MapForce pour mapper et transformer efficacement les Protocol Buffers (Protobuf), et comment l'intégrer avec XML, JSON et des bases de données afin de gérer vos données de manière optimisée.
---
Status: #blog

Tags:  #data-integration #data-mapping #flowforce-server #mapforce #mapforce-server

Categories: [data-integration](/blog/fr/category/data-integration.md) | [database + sql](/blog/fr/category/database-sql.md) | [json](/blog/fr/category/json.md) | [data-integration](/blog/fr/category/data-integration.md) | [xml](/blog/fr/category/xml.md)
# Transformation et conversion de Protobuf

MapForce prend en charge la conversion des protocol buffers (Protobuf) vers et depuis d'autres formats de données structurées, en tant que [sources ou cibles de mappage](https://www.altova.com/fr/mapforce). Dans sa quête constante de méthodes plus efficaces pour transférer, manipuler et gérer de grands ensembles de données structurées, Google a créé un format de données neutre en termes de langage et de plateforme, similaire à XML, mais plus petit, plus rapide et plus simple que même les données JSON. Des outils sont disponibles pour générer et utiliser Protobuf avec Java, Python, C++, C#, Ruby et d'autres langages de programmation.

La structure de tout message Protobuf est définie dans un fichier .proto, qui spécifie le nom et le type de données de chaque champ. Altova MapForce permet aux utilisateurs d'intégrer ces fichiers .proto dans une transformation de données, en les utilisant comme source ou destination, ainsi que tout autre type de données, notamment XML, JSON, bases de données relationnelles, Excel, fichiers plats, services web REST et SOAP, et bien d'autres. Les versions 2 et 3 des fichiers .proto sont prises en charge.

MapForce permet de créer des correspondances de données qui assurent la compatibilité entre les formats de données existants (XML, JSON, bases de données ou formats hérités) et les nouvelles applications, en tirant parti de l'efficacité de Protobuf.

[![](/blog/images/shutterstock_59314045.jpg)](shutterstock_59314045.jpg)

<!--more-->

Pour commencer la conversion et la transformation de fichiers Protobuf, utilisez simplement le menu "Insérer" ou le bouton de la barre d'outils d'accès rapide pour insérer un fichier .proto dans la configuration.

[![Protocoles de mappage de données utilisant les buffers dans Altova MapForce](/blog/images/insert-new.png)](insert-new.png)

MapForce comprend un exemple de mappage de données Protobuf, qui est présenté ici :

[![Exemple de protocole de mappage de données utilisant les buffers de données dans MapForce](/blog/images/protocol-buffers-data-mapping.png)](protocol-buffers-data-mapping.png)

Le fichier .proto utilisé comme cible de sortie correspond à l'exemple décrit dans la documentation en ligne pour la liste de contacts "Personnes". Les données sources sont un fichier XML contenant de nombreux éléments supplémentaires qui ne sont pas nécessaires pour ce flux Protobuf. Lors de l'exécution de la transformation des données, les éléments nécessaires sont extraits du fichier XML pour créer le flux de sortie.

Notez que le type de fichier pour la sortie Protobuf est BLOB, ou Objet Binaire de Grande Taille. MapForce permet aux développeurs de créer des flux de données Protobuf, ou de lire des données d'entrée Protobuf, sans générer de code source en Java, C++ ou tout autre langage, puis de compiler et d'exécuter le code pour chaque fichier binaire Protobuf en fonction d'un nouveau fichier .proto.

### Afficher les données converties 

Le clic sur le bouton "Sortie" situé en bas de la fenêtre principale de mappage de données de MapForce exécute le processus de mappage, en utilisant le fichier Altova_Hierarchical.xml comme source de données. Le flux de données résultant est ensuite affiché dans la fenêtre de prévisualisation de la sortie, sous une représentation similaire à celle du format JSON :

[![Aperçu de la sortie des protocoles de mappage de données](/blog/images/output-preview.png)](output-preview.png)

Pour les besoins ponctuels, les utilisateurs de MapForce peuvent enregistrer le fichier binaire via une option du menu "Sortie" :

[![Enregistrer les données binaires générées par le protocole de mappage de données](/blog/images/data-mapping-save-output.png)](data-mapping-save-output.png)

Voici une représentation partielle des données binaires générées, telles qu'elles sont affichées dans un outil d'affichage hexadécimal courant :

[![Vue de la sortie binaire générée à partir des protocoles de mappage de données](/blog/images/protocol-buffers-binary-view.png)](protocol-buffers-binary-view.png)

L'efficacité du flux Protobuf se manifeste clairement dans les données binaires. Tout le surplus lié aux noms des éléments XML ou JSON est éliminé, ainsi que les espaces, les tabulations, les crochets et autres caractères qui sont généralement inclus pour faciliter la lecture par les humains.

### Mapper et transformer les données Protobuf 

Si vous recevez un flux Protobuf, vous pouvez le convertir vers le format de données interne de votre entreprise. L'image ci-dessous illustre une conversion vers une base de données :

[![Une méthode de mappage de données utilisant des protocol buffers, où les protocol buffers sont la source et la table de base de données est la destination.](/blog/images/protobuf-source-mapping.png)](protobuf-source-mapping.png)

La fonction de mappage utilise plusieurs fonctions de conversion de traitement de données pour manipuler les données binaires entrantes et les adapter à la structure de la table de base de données existante. MapForce prend en charge le mappage de données vers ou depuis toutes les bases de données relationnelles populaires et les bases de données NoSQL. Cliquez ici pour [consulter la liste complète](https://www.altova.com/fr/mapforce#db_mapping).

Le résultat de cette transformation est un script SQL qui permet d'insérer des données provenant d'un fichier binaire dans une base de données

[![Un script SQL généré comme résultat de la conversion de données Protobuf vers une base de données.](/blog/images/db-insert-script.png)](db-insert-script.png)

Une fois le script exécuté, nous pouvons vérifier le contenu de la base de données à l'aide de DatabaseSpy, un outil d'Altova [Éditeur SQL](https://www.altova.com/fr/databasespy):

[![Contenu des tables après l'exécution de la correspondance entre les données Protobuf et la base de données.](/blog/images/table-contents.png)](table-contents.png)

### Exécution automatisée

Les flux de production peuvent nécessiter une [exécution répétée des correspondances de données](https://www.altova.com/fr/mapforce-server) afin de générer de nouveaux flux de données basés sur la même définition .proto, mais en utilisant des données sources différentes. Dans le premier exemple ci-dessus, un document XML différent pourrait être fourni. Une correspondance de données, par exemple, depuis une base de données ou depuis un service web REST vers Protobuf, peut devoir être exécutée selon un calendrier régulier afin d'inclure les données sources mises à jour.

Dans ces cas, ou dans d'autres situations où une exécution répétée est nécessaire, les utilisateurs de MapForce peuvent enregistrer la configuration de la transformation de données sous forme de fichier d'exécution [MapForce Server](https://www.altova.com/fr/mapforce-server) en utilisant une simple option du menu :

[![Fichier d'exécution de MapForce Server pour les protocoles de mappage de données](/blog/images/MapForce-Server-execution-file.png)](MapForce-Server-execution-file.png)

Le fichier d'exécution définit les entrées, les sorties et toutes les étapes de traitement intermédiaires qui doivent être appliquées aux données (y compris le tri, le filtrage, les fonctions personnalisées, etc.) de manière à être optimisées pour l'exécution dans un environnement serveur. MapForce Server automatise l'exécution de ces transformations de données compilées via une interface en ligne de commande ou une API.

MapForce Server peut également être configuré avec FlowForce Server, RaptorXML Server ou StyleVision Server, en fonction des besoins de l'entreprise. Lorsque MapForce Server fonctionne sous la gestion de FlowForce Server, les transformations de données sont exécutées comme des étapes de travail de FlowForce Server, qui peuvent être déclenchées à un moment précis ou à intervalles réguliers, ou en fonction d'un événement, comme l'arrivée d'un nouveau fichier dans un dossier surveillé.

Pour les correspondances de données Protobuf où la source est une requête de base de données ou une requête REST, la requête est exécutée dans le cadre de la correspondance. Lorsque l'entrée est un fichier, tel qu'un document JSON ou XML, le nouveau fichier est spécifié comme paramètre de tâche FlowForce au moment de l'exécution.

Vous pouvez essayer ceci dès maintenant avec un.. [Version d'essai gratuite de MapForce, entièrement fonctionnelle](https://www.altova.com/fr/mapforce/download).
