Altova MapForce 2023 Enterprise Edition

La opción Usar transferencia masiva sirve para insertar datos de un componente de MapForce (txt, csv, dat, etc.) en una BD a gran velocidad. Con esta opción puede acelerar significativamente el proceso de inserción de datos porque basta con ejecutar una sola instrucción en lugar de muchas.

 

La opción Usar transferencia masiva se puede habilitar en MapForce al diseñar la asignación, como mostramos más abajo. Una asignación que tenga habilitada esta opción se puede ejecutar en MapForce, pero la transferencia masiva no se aplica en esta fase, sino que ocurre cuando se ejecuta la asignación en MapForce Server.

 

Para poder usar transferencias masivas es necesario cumplir los siguientes requisitos:

 

El lenguaje de transformación de la asignación es BUILT-IN. Para más información consulte Seleccionar el lenguaje de transformación.

La ejecución la ejecuta MapForce Server (solo o gestionado por FlowForce Server). Esto significa que la asignación debe bien compilarse a formato .mfx o implementarse en FlowForce Server. Para más información consulte Compilar asignaciones en archivos de ejecución de MapForce Server y Implementar asignaciones en FlowForce Server.

La licencia de MapForce Server no se limita a la "ejecución por subprocesos simples" en un equipo multinúcleo. Es decir, la casilla Limit to single thread execution (limitar a ejecución de subprocesos) en la pestaña Gestión de servidores del servidor Altova LicenseServer debe estar inactiva.

La acción de BD es "Insertar todo". Consulte también Configurar de acciones de tabla de BD.

La tabla en la que se debe cargar la inserción masiva de datos debe ser una tabla leaf, es decir, una tabla que esté en el nivel más inferior de la jerarquía de la BD. En la asignación no debería haber tablas, vistas ni procedimientos almacenados relacionados que hagan referencia a la tabla.

El controlador de la BD admiten el uso de inserciones masivas en condiciones WHERE. 

 

La siguiente tabla es un resumen de en qué casos se pueden usar las inserciones masivas dependiendo del tipo de BD y del controlador.

 


ADO

ODBC

JDBC

ADO.NET

Nativa

Access

No

No

n/a 

n/a

n/a

DB2

No

n/a

Firebird

n/a

No

n/a

Informix

No

n/a

iSeries

No

n/a

MariaDB

No

No

n/a

MySQL

n/a

Sí*

No

n/a

Oracle

No

n/a 

PostgreSQL

n/a

n/a

Progress

n/a

n/a

n/a

SQL Server

n/a

SQLite

n/a

n/a

n/a

n/a 

No

Sybase

No

n/a

n/a 

Teradata

n/a

n/a

n/a

 

* se necesita MySQL versión 5 o superior.

 

Nota:para poder realizar inserciones masivas en MySQL y MariaDB con JDBC use la opción de conexión rewriteBatchedStatements=true.

 

Ejemplo de inserción masiva

Este ejemplo explica cómo crear una asignación que cargue inserciones masivas de datos desde un archivo de muestra source.txt a una BD. El ejemplo usa SQL Server 2014 y la BD AdventureWorks 2014. Esta última se puede descargar en los ejemplos de AdventureWorks, en la página web de 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

Para definir una inserción masiva:

1.Seleccione BUILT-IN ( ic-builtinActive ) como lenguaje de transformación.

2.Conéctese a la BD AdventureWorks 2014 y añada la tabla "Production.Location" a la asignación. Para más información consulte Agregar, editar y quitar objetos de BD.

mf_db_bulk_01

3.En el menú Insertar, haga clic en Texto y añada un archivo de texto origen (como el ejemplo anterior source.txt). Para más información consulte Archivos CSV y archivos de texto. Asegúrese de que los tipos de datos de los componentes de origen y de destino son compatibles. Puede ver los tipos de datos en el componente habilitando el botón de la barra de herramientas Mostrar tipos de datos ( ic-show-types ).

mf_db_bulk_02

4.Dibuje las conexiones de la asignación como mostramos a continuación. Observe que el botón Acciones de BD tbl-act-icon ahora es visible a la derecha del nombre de la tabla.

mf_db_bulk_03

5.Haga clic en el botón Acciones de BD ( tbl-act-icon ), marque la casilla Usar inserciones masivas y haga clic en Aceptar.

mf_db_bulk_04

 

En el cuadro de diálogo anterior, observe que la "Acción para el registro" es "Insertar todo". El campo Tamaño del lote indica el número de registros que se insertan con cada acción.

 

Nota:cuando se habilita la opción Usar transferencia masiva se deshabilita automáticamente la opción Usar transacciones y viceversa. Si quiere procesar transacciones, desmarque la casilla Usar transferencia masiva.
 

Ahora que están habilitadas las inserciones masivas, el siguiente paso es ejecutar la asignación en MapForce Server (sea solo o gestionado con FlowForce Server). Para más información consulte Compilar asignaciones en archivos de ejecución de MapForce Server y Implementar asignaciones en FlowForce Server.

© 2017-2023 Altova GmbH