Processus et composants de l'infrastructure de l'utilitaire de chargement de données

L'infrastructure de chargement de données charge les données d'entrée dans votre base de données cible.

Remarque : Vous pouvez charger des données dans un espace de travail. Lorsque vous chargez des données dans un espace de travail, l'utilitaire de chargement de données respecte la stratégie de verrouillage définie dans l'espace de travail. Toutefois, le médiateur d'objet de table ne prend pas en charge le verrouillage de l'espace de travail.
L'infrastructure de chargement de données est constituée de quatre composants principaux :
  1. DataReader : Ce composant lit les données d'entrée depuis une source de données et renvoie un objet qui est transmis au composant BusinessObjectBuilder.
  2. BusinessObjectBuilder : Ce composant alimente un objet de données en fonction de l'objet transmis par DataReader. L'objet de données est ensuite transmis au composant BusinessObjectMediator.
  3. BusinessObjectMediator : Ce composant transforme l'objet de données en liste d'objets physiques qui est ensuite transmise au composant DataWriter.
  4. DataWriter : Ce composant enregistre les objets physiques dans la base de données à l'aide de JDBC ou d'un fichier de liste au format de chargement natif de la base de données.
DataReader, BusinessObjectBuilder, BusinessObjectMediator et DataWriter sont aussi des noms d'interfaces. L'implémentation de ces interfaces est définie dans le fichier de configuration d'objet métier de chargement de données. Le fragment de code suivant est un exemple de fichier de configuration d'objet métier de données :
<_config:DataloadBusinessObjectConfiguration xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://www.ibm.com/xmlns/prod/commerce/foundation/config ../../../xml/config/xsd/wc-dataload-businessobject.xsd"
  xmlns:_config="http://www.ibm.com/xmlns/prod/commerce/foundation/config">
  <_config:DataLoader className="com.ibm.commerce.foundation.dataload.BusinessObjectLoader">
    <_config:DataReader className="com.ibm.commerce.foundation.dataload.datareader.CSVReader" firstLineIsHeader="true" useHeaderAsColumnName="true"/>
      <_config:BusinessObjectBuilder className="com.ibm.commerce.foundation.dataload.businessobjectbuilder.BaseBusinessObjectBuilder"
        packageName="com.ibm.commerce.catalog.facade.datatypes.CatalogPackage" dataObjectType="CatalogGroupType" >
        <_config:DataMapping>
          <_config:mapping xpath="CatalogGroupIdentifier/ExternalIdentifier/GroupIdentifier" value="GroupIdentifier" />
          <_config:mapping xpath="displaySequence" value="Sequence" />
          <_config:mapping xpath="Attributes/field1" value="Field1"/>
          <_config:mapping xpath="Attributes/field2" value="Field2"/>
          <_config:mapping xpath="" value="Delete"  deleteValue="1"/>
        </_config:DataMapping>
        <_config:BusinessObjectMediator className="com.ibm.commerce.catalog.dataload.mediator.CatalogGroupMediator" componentId="com.ibm.commerce.catalog" >
        <_config:DataWriter className="com.ibm.commerce.foundation.dataload.datawriter.JDBCDataWriter" />
      </_config:BusinessObjectMediator>
    </_config:BusinessObjectBuilder>
  </_config:DataLoader>
</_config:DataloadBusinessObjectConfiguration>

Lorsque vous définissez le fichier de configuration d'objet métier de chargement de données, veillez à spécifier la classe d'implémentation appropriée pour les éléments DataReader, BusinessObjectBuilder, BusinessObjectMediator et DataWriter. Depuis l'interface, le flux d'objets depuis l'élément DataReader vers l'élément BusinessObjectBuilder constitue un objet Java générique. De même, le flux d'objets depuis l'élément BusinessObjectBuilder vers l'élément BusinessObjectMediator et depuis l'élément BusinessObjectMediator vers l'élément sont tous des objets Java génériques. La classe d'implémentation spécifique attend la transmission d'un type d'objet spécifique. Par exemple, CSVReader lit une ligne de données depuis un fichier CSV et renvoie une Mappe. Par conséquent, BaseBusinessObjectBuilder s'attend à recevoir une mappe. De la sorte, CSVReader et l'élément BaseBusinessObjectBuilder peuvent être utilisés ensemble.

DataReader

DataReader est une interface pour un lecteur de données physiques. Les classes suivantes implémentent l'interface DataReader :
  • CSVReader

    Cette classe lit le contenu d'un fichier CSV, une ligne à la fois, et construit un objet Mappe. La clé dans la mappe est spécifiée soit dans la configuration, soit dans la première ligne du fichier CSV.

  • XMLReader

    Cette classe lit le contenu d'un fichier XML, un élément à la fois, et construit un objet Mappe. La clé dans la mappe est spécifiée dans le fichier de configuration ou dans l'élément racine du fichier XML.

Reportez-vous à l'API com.ibm.commerce.foundation.dataload.datareader.DataReader pour plus d'informations.
  • CSV
    <_config:DataReader className="com.ibm.commerce.foundation.dataload.datareader.CSVReader" firstLineIsHeader="true" useHeaderAsColumnName="true"/>
    
  • XML
    <_config:DataReader className="com.ibm.commerce.foundation.dataload.datareader.XMLReader" />
    

BusinessObjectBuilder

BusinessObjectBuilder est une interface pour la construction d'un objet métier. Les classes suivantes implémentent l'interface BusinessObjectBuilder :
  • BaseBusinessObjectBuilder
    Cette classe alimente un objet métier en fonction de l'objet en entrée. L'objet en entrée attendu est une mappe. Elle génère l'objet métier spécifique en fonction des attributs qui sont spécifiés dans la configuration : packageName et dataObjectType. L'objet métier est transmis à l'instance BusinessObjectMediator spécifiée dans la configuration.
    Remarque : Utilisez cette classe si la classe d'implémentation de DataReader est CSVReader et que la classe BusinessObjectMediator attend un objet métier en entrée.
  • TableObjectBuilder
    Cette classe alimente une liste d'éléments ExtendedTableDataObject d'après la définition table/colonne spécifiée dans la configuration. La liste ExtendedTableDataObject peut être transmise au médiateur TableObjectMediator.
    Remarque : Utilisez cette classe si la classe d'implémentation de médiateur BusinessObjectMediator est TableObjectMediator.
Reportez-vous à l'API com.ibm.commerce.foundation.dataload.businessobjectbuilder.BusinessObjectBuilder pour plus d'informations.
<_config:BusinessObjectBuilder className="com.ibm.commerce.foundation.dataload.businessobjectbuilder.BaseBusinessObjectBuilder" 
	packageName="com.ibm.commerce.catalog.facade.datatypes.CatalogPackage" dataObjectType="CatalogGroupType" >

BusinessObjectMediator

BusinessObjectMediator est une interface pour la transformation d'un objet métier en liste d'objets physiques. Les classes suivantes implémentent l'interface BusinessObjectMediator :
  • Médiateur logique basé nom de HCL Commerce
    Plusieurs classes d'implémentation sont disponibles pour les composants suivants :
    • catalogue
    • stock
    • price
    • membre
  • Médiateur basé table

    La classe implémentée pour ce médiateur est TableObjectMediator. Elle peut être utilisée avec TableObjectBuilder.

Reportez-vous à l'API com.ibm.commerce.foundation.dataload.businessobjectmediator.BusinessObjectMediator pour plus d'informations.
<_config:BusinessObjectMediator className="com.ibm.commerce.catalog.dataload.mediator.CatalogGroupMediator" componentId="com.ibm.commerce.catalog" >

DataWriter

DataWriter est une interface pour un éditeur de données physiques. Les classes suivantes implémentent l'interface DataWriter :
  • JDBCDataWriter

    Cette classe écrit directement dans la base de données les objets physiques qui sont créés par BusinessObjectMediator. L'éditeur de données JDBC rend persistant l'objet physique directement dans la base de données avec les API de lot JDBC. Les chargements initiaux peuvent être configurés pour utiliser soit l'éditeur de données JDBC, soit l'éditeur de données de fichier natif. Les chargements de deltas devraient être configurés pour utiliser l'éditeur de données JDBC.

  • NativeDBDataWriter
    Cette classe génère uniquement les fichiers chargeables natifs de la base de données. L'éditeur de données de fichier natif rend persistant l'objet physique dans un fichier sous un format de chargement natif de la base de données. Ce fichier peut ensuite être chargé dans la base de données avec l'utilitaire de chargement natif de celle-ci. Pour des performances optimales, les chargements initiaux impliquant un grand volume de données peuvent être configurés pour générer et charger des données avec ce format de fichier natif de la base de données.
    Remarque : NativeDBDataWriter prend uniquement en charge DB2 et Oracle.
Reportez-vous à l'API com.ibm.commerce.foundation.dataload.datawriter.DataWriter pour plus d'informations.
<_config:DataWriter className="com.ibm.commerce.foundation.dataload.datawriter.JDBCDataWriter" />