Cartographie des données : objets binaires – Partie 2
Les objets binaires, ou BLOB (Binary Large Objects), peuvent être difficiles à gérer dans les bases de données. Dans un article précédent, nous avons décrit une transformation de données MapForce pour.. Insérer des objets binaires dans une base de données avec des métadonnées générées pour identifier ultérieurement les objets binaires. Le défi associé à la cartographie des objets binaires consiste à extraire les données binaires et à les enregistrer dans un format compréhensible, tout en conservant leur intégrité.
Voyons maintenant comment cela se fait.

La fonction intégrée de MapForce, "write-binary-file", extrait les valeurs BLOB (Binary Large Object) d'une base de données et les écrit dans des fichiers. Nous allons développer l'exemple présent dans l'aide en ligne de MapForce afin de créer un complément à l'article précédent. Notre nouvelle configuration utilise des paramètres fournis au moment de l'exécution pour extraire un ou plusieurs objets binaires de la base de données.
L'utilisation prévue pour cet article initial était une base de données SQLite permettant de suivre divers fichiers binaires contenant des éléments graphiques liés aux produits, pour un service marketing. Ces données binaires peuvent inclure des fichiers images de logos, des fichiers PDF pour les fiches techniques des produits, des captures d'écran du produit en action, des photographies, des fichiers vidéo, etc. Notre table de base de données comprend des métadonnées relatives au produit, au type de fichier et au nom de fichier original de chaque élément.
Nous commençons par définir la correspondance des objets binaires pour l'extraction en important la base de données dans une nouvelle configuration. Cette fois, au lieu de sélectionner une table pour la correspondance, nous allons créer une requête SQL SELECT avec des paramètres pour filtrer les résultats en fonction des champs de métadonnées relatifs au type de produit et d'actif. L'instruction SELECT renverra un ou plusieurs objets BLOB ainsi que leurs noms de fichiers d'origine.

Ensuite, nous cliquons sur l'instruction SELECT dans le panneau de mappage pour afficher les paramètres de mappage

Chaque paramètre et chaque résultat sont désormais disponibles individuellement

Grâce à la fonction "Insérer une entrée", accessible soit depuis le menu principal "Insérer" ou via l'icône correspondante, nous pouvons insérer un champ spécial pour les tests pendant la phase de conception. Par la suite, lors de l'exécution automatisée, nous pouvons fournir de nouvelles valeurs de paramètres pour remplacer les valeurs par défaut.

Vous pouvez spécifier une valeur par défaut pour la phase de conception dans la fenêtre de définition de l'entrée, mais je préfère définir cette valeur par défaut sous forme de constante de chaîne de caractères, comme indiqué ci-dessus. La valeur par défaut est visible sans avoir à ouvrir la fenêtre, et il est plus rapide de la modifier pour les tests.
Nous allons suivre l'exemple de la documentation MapForce concernant la transformation de données pour les objets binaires afin de créer la transformation pour le résultat de la requête SELECT. Voici la transformation complète :

La fonction "write-binary-file" indiquée dans la documentation permet de sauvegarder le contenu de l'objet binaire stocké dans la base de données dans un fichier spécifié par le chemin d'accès fourni en entrée.
Nous avons affiné l'exemple de mappage en y apportant deux améliorations. L'exemple utilisait une chaîne de caractères fixe pour le nom du fichier de l'objet binaire, mais nous avons utilisé le nom de fichier original provenant de la base de données. De plus, nous avons ajouté un autre objet d'entrée, nommé "userPath", pour concaténer le chemin d'un dossier et le nom du fichier.
À ce stade, nous sommes prêts à tester la configuration en cliquant sur le bouton "Sortie" situé en bas de la fenêtre de conception de la configuration. MapForce exécute alors la requête en utilisant les paramètres définis dans la configuration, et la fenêtre de sortie s'ouvre :

La première sortie affiche simplement le message que nous avons associé à la fonction "write-binary-file". En cliquant sur l'icône de la flèche droite, la deuxième sortie s'affiche. L'image ci-dessous montre l'affichage après avoir cliqué sur le bouton "Ouvrir avec..." pour définir l'application Windows Photo Viewer comme programme par défaut pour les fichiers .png.

Le chemin d'accès au fichier fourni était "C:\projects\objects", et le nom de fichier stocké dans la base de données était "diffdog_2021.png". Le nom de fichier affiché dans la fenêtre de l'image, "~mf95AE.png", n'est qu'un nom aléatoire utilisé pour l'aperçu de la sortie. Le menu "Sortie" propose une option pour enregistrer définitivement le fichier :

Nous pouvons modifier les paramètres et effectuer un autre test. Cette fois, nous utiliserons le caractère générique SQLite pour le paramètre "asset" afin de correspondre à n'importe quelle valeur dans la base de données :

Lorsque nous cliquons sur le bouton "Sortie" cette fois-ci, plusieurs objets binaires sont récupérés :

En parcourant tous les résultats des fichiers binaires, nous constatons qu'il y a une fiche technique au format PDF, une capture d'écran au format .png, et un logo également au format .png

Automatisation de la cartographie des données et des objets binaires
Pour étendre nos exigences en matière de cas d'utilisation, supposons que nous devons permettre à tout membre de l'équipe de récupérer des éléments produits à partir de la base de données, sur demande. MapForce Server effectue des transformations de données automatisées basées sur des correspondances de données optimisées, conçues dans MapForce.
Une seule copie de MapForce Server peut être installée sur un serveur réseau et rendue accessible à plusieurs utilisateurs. Ensuite, il suffit de sauvegarder la configuration de la transformation de données sous forme de fichier d'exécution MapForce Server (.mfx) via le menu de sortie de MapForce. Nous utiliserons le nom de fichier extract-product-assets-from-DB.mfx.

La mise en correspondance des données peut ensuite être exécutée à partir de la ligne de commande par tout utilisateur authentifié. Les paramètres des composants d'entrée, nommés "produit", "actif" et "cheminUtilisateur", sont attribués au moment de l'exécution par la commande. Nous pouvons même créer une commande de ligne de commande d'exemple dans un fichier batch que les utilisateurs peuvent modifier et exécuter selon leurs besoins :

Il serait facile d'ajouter des commentaires contenant des instructions de modification pour lister les valeurs possibles de chaque paramètre.
Pour une automatisation encore plus poussée de la production, les configurations MapForce peuvent être déployées sur le serveur FlowForce et exécutées en fonction de divers déclencheurs. Pour commencer votre propre projet de modélisation, de conversion et de transformation de données, téléchargez une version d'essai gratuite qui comprend des tutoriels, une aide en ligne et de nombreux exemples !