Altova MapForce 2023 Enterprise Edition

L'option Utiliser Bulk Transfer vous permet d'insérer des données à des vitesses très élevées depuis un composant MapForce (TXT, CSV, DAT, etc.) dans une table de base de données. Le recours à cette option accélère considérablement le processus Insérer, étant donné qu'il suffit d'exécuter une seule instruction au lieu de plusieurs.

 

L'option Utiliser Bulk Transfer peut être activée dans MapForce, au moment du design de mappage, comme indiqué ci-dessous. Un mappage pour lequel cette option est activée peut être exécutée dans MapForce, mais aucune insertion bulk ne s'applique à ce niveau. Le transfert bulk réel des données se produit lorsque le mappage est exécuté par MapForce Server.

 

Le transfert Bulk est pris en charge lorsque les conditions suivantes sont vraies :

 

Le langage de transformation de mappage est configuré sur BUILT-IN. Pour plus d’information, voir Langages de transformation.

Le mappage est exécuté par MapForce Server (soit autonome soit sous gestion FlowForce Server). Cela signifie que le mappage doit être compilé soit en format .mfx ou déployé sur FlowForce Server. Pour plus d'informations, voir Compiler des mappages dans les fichiers d'exécution MapForce Server et Déployer des mappages vers FlowForce Server.

La licence de MapForce Server ne se limite pas à "single thread execution" sur un appareil multi-core. C'est-à-dire que la case à cocher Limiter à l'exécution de thread unique dans l'onglet "Gestion de serveur" d'Altova LicenseServer doit être inactive.

L'action de la base de données est "Insérer tout", voir aussi Paramètres Actions de table de base de données.

La table dans laquelle les données doivent être chargées en bloc doit être une table "leaf", c'est à dire, dans la hiérarchie la plus basse de la base de données. Il ne doit pas y avoir de tables liées, modes ou procédures stockées, en référençant la table dans le mappage.

Le pilote de base de données prend en charge l'insertion bulk dans les conditions WHERE.

 

La table suivante résume la prise en charge pour les insertions bulk selon le type de base de données et le pilote utilisé.

 


ADO

ODBC

JDBC

ADO.NET

Natif

Access

Non

Non

n/a 

n/a

n/a

DB2

Non

Oui

Oui

Oui

n/a

Firebird

n/a

Oui

Oui

Non

n/a

Informix

Non

Oui

Oui

Oui

n/a

iSeries

Non

Oui

Oui

Oui

n/a

MariaDB

Non

Oui

Oui

Non

n/a

MySQL

n/a

Oui*

Oui

Non

n/a

Oracle

Non

Oui

Oui

Oui

n/a 

PostgreSQL

n/a

Oui

Oui

n/a

Oui

Progress

n/a

Oui

Oui

n/a

n/a

Serveur SQL

Oui

Oui

Oui

Oui

n/a

SQLite

n/a

n/a

n/a

n/a 

Non

Sybase

Non

Oui

Oui

n/a

n/a 

Teradata

n/a

Oui

Oui

n/a

n/a

 

* MySQL version 5 ou plus est nécessaire.

 

Note :pour permettre la prise en charge de bulk insert pour MySQL et MariaDB via JDBC, utiliser l’option de connexion rewriteBatchedStatements=true.

 

Exemple de bulk insert

Cet exemple vous montre comment créer un mappage qui charge en bloc des données depuis un fichier d'échantillon source.txt dans une base de données de cible. L'exemple utilise SQL Server 2014 et la base de données AdventureWorks 2014. Ce dernier peut être téléchargé depuis la page modèle AdventureWorks sur GitHub (https://github.com/Microsoft/sql-server-samples/releases/tag/adventureworks).

 

Location A,15.3,39

Location B,46,34

Location C,56.33,0

Location D,0,399

Location E,0,97.43

source.txt

Pour définir une insertion bulk :

1.Configurer le langage de transformation sur BUILT-IN ( ic-builtinActive ).

2.Se connecter à la base de données AdventureWorks 2014 et ajouter la table "Production.Location" dans le mappage. Pour plus d'informations, voir Ajouter une Base de données.

mf_db_bulk_01

3.Dans le menu Insérer, cliquer sur Texte, et ajouter un fichier de texte de source (comme dans l'échantillon source.txt ci-dessus) dans le mappage. Pour plus d'information, voir Fichiers CSV et Texte. Assurez-vous que les types de données et les deux composants source et cible sont compatibles. Les types de données sont visibles sur le composant lorsque la touche de barre d'outils Afficher types de données ( ic-show-types ) doit être activée.

mf_db_bulk_02

4.Tracer les connexions de mappage comme indiqué ci-dessous. Veuillez noter que la touche Actions de base de données tbl-act-icon est maintenant visible à droite du nom de la table.

mf_db_bulk_03

5.Cliquer sur la touche Actions de base de données ( tbl-act-icon ), cocher la case Utiliser transfert Bulk, et cliquer sur OK pour confirmer.

mf_db_bulk_04

 

Dans le dialogue ci-dessus, veuillez noter que "Action sur enregistrement" est "Insérer tout". Le champ Taille de batch définit le nombre d'enregistrements à insérer par action.

 

Note :Lorsque l'option Utiliser transfert Bulk est activée, l'option Utiliser Transactions est désactivée et vice-versa. Si vous souhaitez activer le traitement de transaction, cliquer pour supprimer la case à cocher Utiliser transfert Bulk.

 

Maintenant que l'insertion bulk est activée, l'étape suivante permet d'exécuter le mappage dans MapForce Server (soit en version autonome ou sous gestion FlowForce Server). Pour plus d'informations, voir Compiler des mappages dans les fichiers d'exécution MapForce Server et Déployer des mappages vers FlowForce Server.

© 2017-2023 Altova GmbH