Bulk-Einfügungen (MapForce Server)
Mit der Option Bulk Transfer verwenden können Sie Daten aus einer MapForce-Komponente (TXT, CSV, DAT, usw.) sehr schnell in eine Datenbanktabelle einfügen. Auf diese Art können Sie das Einfügen von Daten enorm beschleunigen, da nur eine Anweisung anstatt mehrerer ausgeführt werden muss.
Die Option Bulk Transfer verwenden kann in MapForce, wie unten gezeigt, während des Mapping-Designs aktiviert werden. Ein Mapping, bei dem diese Option aktiviert ist, kann in MapForce ausgeführt werden, doch wird zu diesem Zeitpunkt keine Bulk-Einfügung angewendet. Der eigentliche Bulk-Transfer von Daten erfolgt, wenn das Mapping von MapForce Server ausgeführt wird.
Der Bulk Transfer wird unter folgenden Bedingungen unterstützt:
•Als Mapping-Transformationssprache muss BUILT-IN definiert sein. Nähere Informationen dazu finden Sie unter Transformationssprachen.
•Das Mapping wird von MapForce Server ausgeführt (entweder Standalone oder unter FlowForce Server-Verwaltung). Das bedeutet, dass das Mapping entweder zum .mfx-Format kompiliert oder auf FlowForce Server bereitgestellt werden muss. Nähere Informationen dazu finden Sie unter Kompilieren von Mappings zu MapForce Server-Ausführungsdateien und Bereitstellen von Mappings auf FlowForce Server.
•Die MapForce Server-Lizenz ist auf einem Mehrkernrechner nicht auf "Single Thread-Ausführung" eingeschränkt, d.h. das Kontrollkästchen Limit to single thread execution auf dem Register "Server Management" von Altova LicenseServer muss deaktiviert sein.
•Die Datenbankaktion ist "Alles einfügen", siehe auch Einstellungen für Datenbankaktionen.
•Es muss sich bei der Tabelle, in die die Daten im Bulk geladen werden, um ein Tabellenblatt, d.h. ein Blatt der untersten Hierarchieebene der Datenbank handeln. Es sollten keine Tabellen, Ansichten oder gespeicherten Prozeduren vorhanden sein, die die Tabelle im Mapping referenzieren.
•Der Datenbanktreiber unterstützt Bulk-Einfügungen bei WHERE-Bedingungen.
Die folgende Tabelle enthält einen Überblick über die Unterstützung von Bulk-Einfügungen, abhängig von der Datenbankart und dem verwendeten Treiber.
ADO | ODBC | JDBC | ADO.NET | Nativ | |
---|---|---|---|---|---|
Access | Nein | Nein | n/a | n/a | n/a |
DB2 | Nein | Ja | Ja | Ja | n/a |
Firebird | n/a | Ja | Ja | Nein | n/a |
Informix | Nein | Ja | Ja | Ja | n/a |
iSeries | Nein | Ja | Ja | Ja | n/a |
MariaDB | Nein | Ja | Ja | Nein | n/a |
MySQL | n/a | Ja* | Ja | Nein | n/a |
Oracle | Nein | Ja | Ja | Ja | n/a |
PostgreSQL | n/a | Ja | Ja | n/a | Ja |
Progress | n/a | Ja | Ja | n/a | n/a |
SQL Server | Ja | Ja | Ja | Ja | n/a |
SQLite | n/a | n/a | n/a | n/a | Nein |
Sybase | Nein | Ja | Ja | n/a | n/a |
Teradata | n/a | Ja | Ja | n/a | n/a |
* MySQL version 5 oder höher erforderlich
Anmerkung: | Die Unterstützung für die Bulk-Einfügung für MySQL und MariaDB über JDBC können Sie mit Hilfe der Verbindungsoption rewriteBatchedStatements=true aktivieren. |
Beispiel für eine Bulk-Einfügung
In diesem Beispiel wird gezeigt, wie Sie ein Mapping erstellen, das Daten aus der Beispieldatei source.txt im Bulk in eine Zieldatenbank lädt. Im Beispiel werden SQL Server 2014 und die AdventureWorks 2014-Datenbank verwendet. Letzere kann von der AdventureWorks-Beispielseite auf GitHub (https://github.com/Microsoft/sql-server-samples/releases/tag/adventureworks) heruntergeladen werden.
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
So definieren Sie eine Bulk-Einfügung:
1.Definieren Sie als Transformationssprache BUILT-IN ( ).
2.Stellen Sie eine Verbindung zur Datenbank AdventureWorks 2014 her und fügen Sie die Tabelle "Production.Location" zum Mapping hinzu. Nähere Informationen dazu finden Sie unter Hinzufügen einer Datenbank zum Mapping.

3.Klicken Sie im Menü Einfügen auf Text und fügen Sie als Quelle eine Textdatei (wie die Beispieldatei source.txt oben) zum Mapping hinzu. Nähere Informationen finden Sie unter CSV- und Textdateien. Stellen Sie sicher, dass die Datentypen von Quell- und Zielkomponente kompatibel sind. Die Datentypen sind in der Komponente sichtbar, wenn Sie die Symbolleisten-Schaltfläche Datentypen anzeigen ( ) aktivieren.

4.Ziehen Sie die Mapping-Verbindungen wie unten gezeigt. Beachten Sie, dass nun die Datenbankaktionsschaltfläche rechts vom Tabellennamen angezeigt wird.

5.Klicken Sie auf die Datenbankaktionsschaltfläche ( ), aktivieren Sie das Kontrollkästchen Bulk Transfer verwenden und klicken Sie auf OK.

Beachten Sie, dass als "Aktion an Datensatz" im Dialogfeld oben "Alles einfügen" ausgewählt ist. Im Feld Stapelgröße wird die Anzahl der Datensätze definiert, die pro Aktion eingefügt werden.
Anmerkung: | Wenn die Option Bulk Transfer verwenden aktiv ist, wird die Option Transaktionen verwenden deaktiviert und umgekehrt. Wenn Sie die Transaktionsverarbeitung aktivieren möchten, klicken Sie auf das Kontrollkästchen Bulk Transfer verwenden, um es zu deaktivieren. |
Nachdem Sie die Bulk-Einfügung nun aktiviert haben, ist der nächste Schritt die Ausführung des Mappings mit MapForce Server (entweder Standalone Edition oder unter Verwaltung von FlowForce Server). Nähere Informationen dazu finden Sie unter Kompilieren von Mappings zu MapForce Server-Ausführungsdateien und Bereitstellen von Mappings auf FlowForce Server.