Mapeo de datos de objetos binarios – Parte 2
Los objetos binarios, también conocidos como BLOBs, pueden ser difíciles de gestionar en las bases de datos. En una publicación anterior, describimos una transformación de datos con MapForce para insertar objetos binarios en una base de datos, generando metadatos para identificar los BLOBs posteriormente. El desafío complementario en la transformación de objetos binarios es extraer los datos binarios y guardarlos en un formato comprensible que sea fiel al original.
Veamos cómo se hace.

La función integrada de MapForce, "write-binary-file", extrae valores BLOB de una base de datos y los escribe en archivos. Ampliaremos el ejemplo que se encuentra en la ayuda en línea de MapForce para crear un complemento del artículo anterior. Nuestro nuevo esquema de mapeo utiliza parámetros proporcionados en tiempo de ejecución para extraer uno o más objetos binarios de la base de datos.
El caso de uso del artículo original era una base de datos SQLite para rastrear diversos archivos binarios que contenían recursos relacionados con productos para un departamento de marketing. Los datos binarios pueden incluir archivos de imágenes de logotipos, archivos PDF con hojas de datos de los productos, capturas de pantalla del producto en funcionamiento, fotografías, archivos de video, etc. Nuestra tabla de base de datos incluye metadatos sobre el producto, el tipo de recurso y el nombre de archivo original de cada elemento.
Comenzamos el mapeo de objetos binarios para su extracción, importando la base de datos en un nuevo mapeo. Esta vez, en lugar de seleccionar una tabla para el mapeo, crearemos una consulta SQL SELECT con parámetros para filtrar los resultados basándonos en los campos de metadatos del producto y el tipo de activo. La instrucción SELECT devolverá uno o más objetos BLOB y sus nombres de archivo originales.

A continuación, hacemos clic en la instrucción SELECT en el panel de mapeo para mostrar los parámetros que se utilizarán para el mapeo

Ahora, cada parámetro individual y cada resultado están disponibles

Utilizando la opción "Insertar entrada" desde el menú "Insertar" principal o desde el icono de la barra de herramientas, podemos insertar un campo especial para realizar pruebas durante el diseño. Posteriormente, durante la ejecución automatizada, podemos proporcionar nuevos valores de parámetros para anular los valores predeterminados.

Puede especificar un valor predeterminado en tiempo de diseño en el diálogo de definición de la entrada, pero prefiero proporcionar el valor predeterminado como una constante de texto, como se muestra arriba. El valor predeterminado es visible sin necesidad de abrir el diálogo, y es más rápido modificarlo para realizar pruebas.
Utilizaremos el ejemplo de la ayuda de MapForce para la asignación de objetos binarios para crear la asignación del resultado de la consulta SELECT. Aquí está la asignación completa:

La función "write-binary-file" que se destaca en el esquema, guarda el contenido del objeto binario en la base de datos en un archivo especificado en la ruta proporcionada como entrada.
Refinamos el ejemplo de mapeo con dos mejoras. El ejemplo utilizaba un valor de cadena fijo para el nombre del archivo del objeto binario, pero nosotros mapeamos el nombre de archivo original proveniente de la base de datos. Además, proporcionamos otro objeto de entrada llamado "userPath" para concatenar la ubicación de una carpeta y el nombre del archivo.
En este punto, estamos listos para probar la configuración mediante la pulsación del botón "Salida" que se encuentra en la parte inferior del panel de diseño de la configuración. MapForce ejecuta la consulta con los parámetros definidos en la configuración y se abre la ventana de "Salida":

La primera salida muestra simplemente el mensaje que adjuntamos a la función "write-binary-file". Al hacer clic en el icono de la flecha derecha, se abre la segunda salida. La imagen que se muestra a continuación es la que aparece después de hacer clic en el botón "Abrir con..." para asignar el visor de fotos de Windows como la aplicación predeterminada para los archivos .png.

La ruta de archivo proporcionada fue "C:\projects\objects" y el nombre del archivo almacenado en la base de datos fue "diffdog_2021.png". El nombre de archivo que se muestra en la ventana de la imagen, "~mf95AE.png", es solo un nombre aleatorio para la vista previa del resultado. El menú de "Salida" incluye una opción para guardar el archivo de forma permanente:

Podemos modificar los parámetros e intentar otra prueba. Esta vez, utilizaremos el carácter comodín de SQLite para el parámetro de "activo" para que coincida con cualquier elemento en la base de datos:

Cuando hacemos clic en el botón "Salida" esta vez, se recuperan múltiples objetos binarios:

Al revisar todos los resultados de los archivos binarios, vemos una hoja de datos en formato PDF, una captura de pantalla como una imagen .png, y un logotipo también en formato .png

Automatizar el mapeo de datos de objetos binarios
Para ampliar los requisitos de nuestro caso de uso, supongamos que necesitamos permitir que cualquier miembro del equipo acceda a los recursos de los productos desde la base de datos bajo demanda. MapForce Server realiza transformaciones de datos automatizadas basadas en mapeos de datos optimizados diseñados en MapForce.
Se puede instalar una copia de MapForce Server en un servidor de red y ponerla a disposición de múltiples usuarios. Luego, todo lo que necesitamos hacer es guardar la configuración de la transformación de datos como un archivo de ejecución de MapForce Server (.mfx) desde el menú de salida de MapForce. Utilizaremos el nombre de archivo "extract-product-assets-from-DB.mfx".

Una vez realizada la asignación de datos, cualquier usuario autenticado puede ejecutarla desde la línea de comandos. Los parámetros para los componentes de entrada, denominados "producto", "activo" y "ruta de usuario", se asignan en tiempo de ejecución mediante el comando. Incluso podemos crear un ejemplo de comando en un archivo por lotes que los usuarios puedan editar y ejecutar según sea necesario:

Sería una tarea sencilla añadir comentarios con instrucciones de edición a la lista de posibles valores para cada parámetro.
Para una automatización aún mayor en la producción, las configuraciones de MapForce pueden implementarse en el servidor FlowForce y ejecutarse en función de diversos disparadores. Para comenzar con su propio proyecto de mapeo, conversión y transformación de datos, descargue una versión de prueba gratuita que incluye tutoriales, ayuda y muchos más ejemplos.