---
title: Mapeo de datos de objetos binarios
date: 2020-10-21
categories:
  - data-integration
  - database-mapping
  - sql
  - tools
tags:
  - binary-objects
  - data-mapping
description: Altova MapForce, la herramienta de mapeo de datos galardonada, incluye funciones para mapear fácilmente objetos binarios hacia o desde todas las bases de datos relacionales más populares.
---
Status: #blog

Tags:  #binary-objects #data-mapping

Categories: [data-integration](/blog/es/category/data-integration.md) | [database + sql](/blog/es/category/database-sql.md) 
# Mapeo de datos de objetos binarios

Los objetos binarios son difíciles de gestionar en las bases de datos. Son grandes, su contenido no es legible para los humanos, y pueden contener bytes de datos que fácilmente pueden ser interpretados como caracteres de control. Incluso el nombre del tipo de datos para objetos binarios grandes – BLOB – refleja la aversión que muchos gestores de bases de datos sienten hacia ellos. Antes de las bases de datos relacionales, la definición de un BLOB era "algo indefinido o amorfo"

Altova MapForce, galardonado con numerosos premios, [Herramienta de mapeo de datos gráficos para la conversión e integración de cualquier formato a cualquier otro](https://www.altova.com/es/mapforce), Incluye funciones para mapear datos de manera sencilla, permitiendo la conversión de objetos binarios hacia o desde todas las bases de datos relacionales más populares. Se pueden mapear datos como imágenes, archivos PDF, archivos de video o cualquier otro tipo de dato binario. Veamos un ejemplo.

![](/blog/images/blob-insertion.png)

<!--more-->

MapForce incluye dos funciones integradas, "read-binary-file" (leer archivo binario) y "write-binary-file" (escribir archivo binario), para la conversión entre objetos binarios y bases de datos. En esta publicación, ampliaremos un ejemplo de "read-binary-file" que se encuentra en la documentación en línea de MapForce, para crear una conversión completa que permita insertar una variedad de objetos binarios en una base de datos relacional.

Aquí hay un ejemplo de la sección de ayuda que ilustra cómo insertar una imagen en una base de datos:

[![Ejemplo de ayuda en línea sobre el mapeo de archivos binarios](/blog/images/help-ex-1.png)](help-ex-1.png)

Esta configuración inserta el archivo local llamado image01.png en una tabla de la base de datos. Podemos observar que la base de datos está estructurada para incluir metadatos sobre la imagen en columnas separadas, lo que permite realizar consultas para extraer la misma imagen. ¡No se recomienda almacenar grandes archivos de datos binarios en la base de datos sin una forma de encontrarlos más tarde!

Para nuestro caso de uso, crearemos una base de datos SQLite para rastrear diversos archivos binarios que son activos que respaldan múltiples productos para un departamento de marketing. Los datos binarios podrían incluir archivos de imágenes de logotipos, archivos PDF para hojas de datos de productos, capturas de pantalla del producto en funcionamiento, fotografías, archivos de video, etc.

Comenzaremos con un archivo de texto CSV sencillo para describir la información que queremos insertar:

[![Modelo CSV para la carga de datos en la base de datos](/blog/images/csv-model.png)](csv-model.png)

Cuando finalicemos este proyecto, los usuarios podrían tener decenas, o incluso cientos, de elementos almacenados en la base de datos. Cuando necesitemos extraer un elemento más adelante, los nombres de los tipos de elementos serán metadatos cruciales para las consultas. Sin embargo, si cualquier entrada en la columna de tipos contiene errores ortográficos o es inconsistente, un objeto binario de gran tamaño quedará aislado y será irrecuperable.

Podemos definir una lista de tipos de activos importando el archivo CSV en XMLSpy y generando un esquema XML donde el elemento "Tipo" se selecciona de una lista predefinida. De esta manera, incluso un becario de marketing sin experiencia puede crear una lista de activos en la vista de cuadrícula de [XMLSpy](https://www.altova.com/es/xmlspy-xml-editor). El campo "Tipo" se aplicará de forma obligatoria:

[![Modelo de carga de bases de datos en la vista de cuadrícula de XMLSpy.](/blog/images/grid-view-1.png)](grid-view-1.png)

También podríamos añadir una lista de nombres de productos al esquema XML, o al menos exigir que el elemento "Producto" esté presente. Incluso podemos establecer el tipo de "Activo" como "xs:anyURI", lo que obligaría a hacer referencia a un archivo. Aquí se muestra la ventana de ayuda "Detalles" en la vista de esquema de XMLSpy, con la configuración del tipo de datos para el elemento "Activo":

[![Definición del tipo XML Schema para el elemento "Asset" del modelo de carga](/blog/images/asset-details.png)](asset-details.png)

El proceso de mapeo de objetos binarios en MapForce es esencialmente el mismo, ya sea que estemos mapeando desde una fuente CSV o XML.

Comenzaremos abriendo un nuevo proyecto de MapForce para la transformación de datos, e importaremos nuestra lista de activos y la tabla de la base de datos.

[![Mapeo de objetos binarios entre una lista de objetos de origen y una tabla de base de datos](/blog/images/map1.png)](map1.png)

Utilizamos DatabaseSpy para [crear una nueva tabla en una base de datos SQLite](https://www.altova.com/es/databasespy), realizando algunas modificaciones al ejemplo que se encuentra en la ayuda de MapForce. La columna "producto" almacenará el nombre del producto, y el tipo de activo se incluirá en la columna "descripción". La columna "fechaRegistro" registrará la antigüedad de cada objeto binario.

Ahora, configuraremos la columna "id" para que se autoincremente, tal como se describe en la ayuda de MapForce, y estableceremos las conexiones básicas entre la fuente y el destino

[![Conexiones de mapeo sencillas entre la lista de objetos de origen y la tabla de la base de datos](/blog/images/map2.png)](map2.png)

El producto y el tipo se asignan directamente desde el mapa de origen a las columnas de la base de datos. La asignación del elemento "fila" indica que cada fila de los datos de entrada debe crear un nuevo registro en la base de datos.

Ahora, vamos a asignar los datos binarios a los objetos BLOB en la base de datos:

[![Asignar los objetos binarios a campos BLOB en la base de datos](/blog/images/map3.png)](map3.png)

La función integrada de MapForce, "read-binary-file", utiliza el nombre de archivo proporcionado en el elemento "Asset" de la fuente para crear el objeto binario grande (BLOB). La función "read-binary-file" siempre trata la fuente como datos en formato base64, independientemente de cualquier convención basada en el nombre del archivo de origen.

Para completar el mapeo, necesitamos establecer conexiones que permitan extraer el nombre del archivo desde "Asset" y guardar la fecha de almacenamiento

[![Ejemplo completo de mapeo de datos para objetos binarios](/blog/images/map4.png)](map4.png)

La función "eliminar carpeta" extrae automáticamente el nombre del archivo de cualquier ruta, ya sea para archivos locales, archivos de red o archivos en la web.

La función "now" registra la fecha y la hora de la ejecución, pero solo necesitamos la fecha, por lo que utilizamos la función "substring-before" para eliminar la parte correspondiente a la hora.

El botón "Ejecutar" que se encuentra en la parte inferior del panel de mapeo, ejecuta el proceso de mapeo y genera un script SQL:

[![Script SQL generado para la asignación de datos de objetos binarios](/blog/images/sql-script.png)](sql-script.png)

El script es solo una vista previa para verificar los resultados obtenidos hasta el momento. Para ejecutar el script, seleccione la opción correspondiente en el menú principal de "Salida"

[![Opción del menú para ejecutar el script SQL que realiza la asignación de datos a objetos binarios](/blog/images/output-menu.png)](output-menu.png)

El resultado del script se muestra:

[![Resultado del script SQL después de la correcta asignación de datos a objetos binarios](/blog/images/script-result.png)](script-result.png)

Haremos clic en el botón "Consulta de base de datos" para conectarnos a la base de datos y, posteriormente, validaremos el resultado directamente en MapForce:

[![Ventana de consulta de bases de datos de MapForce para validar el mapeo de datos y objetos binarios](/blog/images/db-query.png)](db-query.png)

No se puede obtener mucha información observando los datos binarios (BLOBs) en la columna "productfile", pero las otras columnas proporcionan metadatos útiles sobre cada elemento.

En un.. [publicación de seguimiento](https://www.altova.com/blog/data-mapping-binary-objects-part-2/) Demostraremos cómo mapear datos, asignando objetos binarios a.. [Extraer los activos de la base de datos](https://www.altova.com/blog/data-mapping-binary-objects-part-2/) y guárdelos en su forma original. Si no puede esperar, [Descargue una versión de prueba gratuita](https://www.altova.com/es/download) incluyendo tutoriales, ayuda y muchos más ejemplos para que pueda comenzar su propio proyecto de mapeo, conversión y transformación de datos.
