---
title: "Transformación y conversión 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: Descubra cómo mapear y transformar de manera eficiente los Protocol Buffers (Protobuf) con Altova MapForce, integrándolo con XML, JSON y bases de datos para una gestión de datos optimizada.
---
Status: #blog

Tags:  #data-integration #data-mapping #flowforce-server #mapforce #mapforce-server

Categories: [data-integration](/blog/es/category/data-integration.md) | [database + sql](/blog/es/category/database-sql.md) | [json](/blog/es/category/json.md) | [data-integration](/blog/es/category/data-integration.md) | [xml](/blog/es/category/xml.md)
# Transformación y conversión de Protobuf

MapForce permite la conversión de protocolos de almacenamiento de datos (Protobuf) a otros formatos de datos estructurados, y viceversa [mapeo de fuentes o destinos](https://www.altova.com/es/mapforce). En la búsqueda constante de métodos más eficientes para transferir, manipular y gestionar grandes conjuntos de datos estructurados, Google ha creado un formato de datos, similar a XML, que es independiente del lenguaje de programación y la plataforma. Este formato es más pequeño, más rápido y más sencillo que incluso los datos en formato JSON. Existen herramientas disponibles para generar y trabajar con Protobuf utilizando Java, Python, C++, C#, Ruby y otros lenguajes de programación.

La estructura de cualquier mensaje Protobuf se define en un archivo .proto, que especifica el nombre y el tipo de valor de cada campo. Altova MapForce permite a los usuarios importar estos archivos .proto en un mapeo de datos, utilizándolos como fuente o destino, junto con cualquier otro tipo de dato, incluyendo XML, JSON, bases de datos relacionales, Excel, archivos de texto plano, servicios web REST y SOAP, entre otros. Se admiten las versiones 2 y 3 de los archivos .proto.

MapForce permite crear un mapeo de datos que establece la compatibilidad entre formatos de datos existentes, como XML, JSON, bases de datos o formatos heredados, y nuevas aplicaciones que aprovechan la eficiencia de Protobuf.

[![](/blog/images/shutterstock_59314045.jpg)](shutterstock_59314045.jpg)

<!--more-->

Para comenzar a convertir y transformar archivos Protobuf, simplemente utilice el menú "Insertar" o el botón de la barra de herramientas de acceso rápido para insertar un archivo .proto en el esquema.

[![Protocolos de mapeo de datos en Altova MapForce](/blog/images/insert-new.png)](insert-new.png)

MapForce incluye un ejemplo de mapeo de datos Protobuf, que se muestra a continuación:

[![Ejemplo de protocolo de mapeo de datos utilizando "protocol buffers" en MapForce](/blog/images/protocol-buffers-data-mapping.png)](protocol-buffers-data-mapping.png)

El archivo .proto utilizado como destino de salida coincide con el ejemplo descrito en la documentación en línea para la lista de contactos "Persons". Los datos de origen son un archivo XML que contiene muchos elementos adicionales que no son necesarios para este flujo de datos Protobuf. Cuando se ejecuta el mapeo de datos, los elementos necesarios se extraen del archivo XML para crear el flujo de salida.

Tenga en cuenta que el tipo de archivo para la salida de Protobuf es BLOB, o "Objeto Binario Grande". MapForce permite a los desarrolladores crear flujos de datos de protocolo buffer, o leer datos de entrada de protocolo buffer, sin generar código fuente en Java, C++ o cualquier otro lenguaje, y luego compilar y ejecutar el código para cada archivo binario de Protobuf basándose en un nuevo archivo .proto.

### Ver los datos convertidos 

Al hacer clic en el botón "Salida" que se encuentra en la parte inferior de la ventana principal de mapeo de datos de MapForce, se ejecuta el proceso de mapeo, utilizando el archivo Altova\_Hierarchical.xml como fuente de datos. El flujo de datos resultante se abre en la ventana de vista previa de salida, mostrando una representación similar a JSON:

[![Vista previa de la salida de los protocolos de mapeo de datos](/blog/images/output-preview.png)](output-preview.png)

Para necesidades puntuales, los usuarios de MapForce pueden guardar el archivo binario a través de una opción en el menú de "Salida":

[![Guardar la salida binaria generada por el protocolo de mapeo de datos](/blog/images/data-mapping-save-output.png)](data-mapping-save-output.png)

Aquí se muestra una representación parcial de los datos binarios generados, tal como se visualizan en una herramienta común de visualización hexadecimal:

[![Vista de la salida binaria generada a partir de los protocolos de mapeo de datos](/blog/images/protocol-buffers-binary-view.png)](protocol-buffers-binary-view.png)

La eficiencia del flujo Protobuf se manifiesta claramente en los datos binarios. Se elimina toda la información adicional asociada a los nombres de los elementos de XML o JSON, así como los espacios, las tabulaciones, los corchetes y otros caracteres que normalmente se incluyen para facilitar la lectura por parte de los humanos.

### Mapear y transformar Protobuf 

Si recibe un flujo de datos en formato Protobuf, puede mapearlo a su formato de datos interno de la empresa. La imagen que se muestra a continuación ilustra un mapeo a una base de datos:

[![Un mapeo de datos de Protocol Buffers en el que los Protocol Buffers son la fuente y la tabla de base de datos es el destino.](/blog/images/protobuf-source-mapping.png)](protobuf-source-mapping.png)

La herramienta de mapeo utiliza varias funciones de conversión de procesamiento de datos para manipular los datos binarios entrantes y adaptarlos a la estructura de la tabla de la base de datos existente. MapForce permite el mapeo de datos hacia o desde todas las bases de datos relacionales y NoSQL más populares. Haga clic aquí para [ver la lista completa](https://www.altova.com/es/mapforce#db_mapping).

El resultado de esta transformación es un script SQL que permite insertar datos desde un archivo binario en una base de datos

[![Un script SQL como resultado de la conversión de datos de un formato protobuf a una base de datos.](/blog/images/db-insert-script.png)](db-insert-script.png)

Una vez que el script se ejecuta, podemos verificar el contenido de la base de datos utilizando DatabaseSpy, el producto de Altova [Editor de SQL](https://www.altova.com/es/databasespy):

[![Contenido de la tabla después de la ejecución del mapeo de protobuf a la base de datos.](/blog/images/table-contents.png)](table-contents.png)

### Ejecución automatizada

Los flujos de trabajo de producción pueden requerir la [ejecución repetida de las asignaciones de datos](https://www.altova.com/es/mapforce-server) para generar nuevos flujos de datos basados en la misma definición .proto, pero utilizando diferentes fuentes de datos. En el primer ejemplo anterior, se podría proporcionar un documento XML diferente. Es posible que sea necesario ejecutar periódicamente una asignación de datos desde una base de datos o desde un servicio web REST a Protobuf para incluir los datos de origen actualizados.

En esos casos, o en otros en los que se requiera una ejecución repetida, los usuarios de MapForce pueden guardar la configuración de la transformación de datos como un archivo de ejecución de [MapForce Server](https://www.altova.com/es/mapforce-server) a través de una sencilla opción del menú:

[![Archivo de ejecución de MapForce Server para protocolos de mapeo de datos basados en buffers](/blog/images/MapForce-Server-execution-file.png)](MapForce-Server-execution-file.png)

El archivo de ejecución define las entradas, las salidas y cualquier paso de procesamiento intermedio que debe aplicarse a los datos (incluyendo ordenamiento, filtrado, funciones personalizadas u otros) de una forma optimizada para su ejecución en un entorno de servidor. MapForce Server automatiza la ejecución de estas transformaciones de datos compiladas a través de una interfaz de línea de comandos o una API.

MapForce Server también puede configurarse con FlowForce Server, RaptorXML Server o StyleVision Server, dependiendo de las necesidades de la empresa. Cuando MapForce Server opera bajo la gestión de FlowForce Server, las transformaciones de datos se ejecutan como pasos de trabajo de FlowForce Server que pueden activarse en un momento específico o en un intervalo de tiempo determinado, o en función de un evento, como la llegada de un nuevo archivo en una carpeta monitorizada.

Para las asignaciones de datos de Protobuf donde la fuente es una consulta a una base de datos o una solicitud REST, la consulta se ejecuta como parte de la asignación. Cuando la entrada es un archivo, como un documento JSON o XML, el nuevo archivo se especifica como un parámetro del trabajo de FlowForce en tiempo de ejecución.

Puede probar todo esto ahora mismo con un.. [Versión de prueba gratuita de MapForce, completamente funcional](https://www.altova.com/es/mapforce/download).
