Retour

Gestion de données imbriquées — XML File to Dimension Table

Temps de lecture : 6 minutes

Dans ce tutoriel, découvrez comment concevoir un job de type batch permettant d’extraire des données à partir d’un fichier XML hiérarchique , les transformer puis les charger dans une table MS SQL SERVER 2012.

  • Prérequis : Accès à une base de données de type MS SQL SERVER 2012 ou autre,
  • Un fichier XML  contenant les données brutes
  • Version: SAP Data Services 4.2
  • Application: Data Services Designer

Les étapes qui constituent ce tutoriel sont :

  • Ajout du « MtrlDim » job, work et dataflows
  • Importation  d’une DTD (schéma de définition d’un format XML)
  • Définition du flux de données « DF_MtrlDim »
  • Validation du flux de données
  • Exécution du job

Ajout des composants « Work » et « Data » flows dans le  espace de conception du Job

Procédure

  • Créer un nouveau Job intitulé « JOB_MtrlDim »

Dans la zone de projet, faites un clic droit puis « Nouveau job batch »

  • Création d’un « workFlow »

Dans la zone de projet, cliquez sur le job créé.

Sélectionnez l’icône « Workflow » dans la palette d’outils.

Placez le «workflow » dans l’espace de travail du job et nommé le « WF_MtrlDim».

  • Ajout d’un dataflow « DF_MtrlDim »

Cliquez sur le workflow « WF_MtrlDim  pour accéder  à l’espace de conception du dataflow

Ajouter  le dataflow « DF_MtrlDim » dans  workflow précédemment créé.

Importer la DTD (Document Type Definition)

Contexte : Import de la DTD « mtrl.dtd » tel que indiqué dans la procédure ci-dessous

Procédure

  • Dans la bibliothèque locale des objets, allez dans l’onglet « Formats »
  • Faites un clic droit sur « Schémas imbriqués » puis Nouveau DTD
  • Une pop-pop s’affiche demandant de renseigner le « Nom de la définition DTD »
  • Pour le « Nom du fichier », cliquez sur « Parcourir… »  et sélectionnez le fichier « mtrl.dtd » se trouvant à l’emplacement suivant « REP_INSTALL_DATASERVICE Data ServicesTutorial Files »
  • Pour le type de fichier, garder la valeur sélectionnée par défaut « DTD »
  • Dans la liste « Nom de l’élément racine », sélectionnez « MTRL_MASTER_LIST »
  • Cliquez sur « OK ».

 

Définition du dataflow « DF_MtrlDim »

Pour construire le  flux de données  nous avons besoin des objets suivants :

  • Le fichier source XML
  • Une transformation « Query » qui  définit le mappage entre la source et la cible
  • La table cible qui va recevoir les données
 
  • Ajouter les objets dans le flux de données
 
  • Cliquez sur l’icône    pour arriver dans l’espace de définition du  flux
  • Dans la bibliothèque locale d’objets, sous l’onglet formats,  cliquer sur le petit plus des « Schémas imbriqués » pour voir les DTDs disponibles
  • Glissez le fichier « Mtrl_List » dans l’espace de travail du « DF_MtrlDim » et déposez-le en tant que source de données
  • Faites un double clic sur le fichier « Mtrl_List » pour le configurer.
  • Dans l’onglet « Source » du fichier XML, cliquez « Select  file » et sélectionnez le fichier « mtrl.xml » dans l’emplacement suivant « Data ServicesTutorial Filesmtrl.xml »
  • Cochez la case « Activer la validation » puis « fermer »
  • Dans la palette glissez et déposez une transformation « Query » à droit du fichier « mtrl.xml ».
 
  • Dans la bibliothèque locale d’objets, dans l’onglet « Banque de données », glissez et déposez la table « MTRL_DIM » du dataStore « MSSQL_INSTTANCE » à droit de la transformation « Query » et cliquez « Créer la cible ».
  • Connectez les objets comme indiqué dans la figure ci-dessous
  • Configuration de la transformation « Query »

 

  • Cliquez sur « Query » pour ouvrir l’éditeur de la transformation
  • Essayer de glisser une colonne individuelle dans le schéma de sortie, vous allez remarquer que nous ne pouvons pas mapper une colonne imbriqué à une colonne plate, donc l’objectif est d’aplatir le schéma d’entrée afin de l’adapter au format cible.
  • Remarquez aussi que les noms des colonnes entre la source et la cible sont différents, utilisez la barre de défilement si nécessaire pour afficher les types de données.

Procédure

  • Depuis le «Entrée de schéma » glissez le schéma « MTRL_Master » dans « Sortie de schéma » ou faites un clic droit « Mapper vers la sortie »
  • Dans la zone projet, cliquez sur la « Query » pour lancer l’éditeur de mappage. Vous constatez que la structure  de la source contient plus d’informations  que la structure cible.
  • Dans la « Sortie de schéma » faites un clic droit sur les colonnes inutiles puis « Supprimer »
  • Dans « Sortie de schéma », renommer la colonne « SHORT_TEXT » en « DESC » pour avoir le même nom de colonne entre la source et la cible.
  • Dans la zone projet, cliquez sur la table cible « MTRL_DIM » pour voir si la structure cible correspond à la structure cible. Normalement les structures ne sont pas identiques comme indiqué dans la figure ci-dessous
  • L’étape suivante consiste à aplatir la structure du fichier XML dans la transformation pour le faire correspondre à la structure cible.

Cliquez sur « Query » pour lancer l’éditeur de transformation, puis dans « Sortie de schéma » sous le nœud « TEXT » faite un clic droit puis « Supprimer l’imbrication avec sous-schémas »

Faites la même manipulation dans le nœud parent « MTRL_LIST »

  • Maintenant si vous éditez le schéma de sortie en  cliquant sur « MTRL_DIM » vous allez constater que deux schémas correspondent.
  • Depuis le menu « Projet » cliquez « Enregistrer tout »
  • Exécuter le job

Laisser un commentaire

Il n'y a pas de commentaires pour le moment. Soyez le premier à participer !