Extraktion von MySQL-Daten

Der folgende Blogbeitrag betrachtet verschiedene Möglichkeiten zur Extraktion von Daten aus einer MySQL-Datenbank und Import in den SQL Server 2014 mittels SSIS näher. Hierfür wurden drei verschiedene Möglichkeiten untersucht: Treiber für ADO.NET bzw. ODBC und die Möglichkeit der Extraktion in eine CSV-Datei und Import dieser in den SQL-Server.

 

Für diesen Versuch wurde eine Tabelle mit vier Spalten erstellt, wobei zwei davon vom Typ Varchar sind, eine vom Typ Integer und eine Datumsspalte. Diese Tabelle wurde mit insgesamt 9.830.400 Datensätzen befüllt. Für den Versuch wurden die aktuellsten Treiber verwendet. Dies ist der Connector für .NET 6.8.4 und für ODBC hat diese Version die Nummer 5.3.4. Die MySQL-Datenbank hat die Versionsnummer 5.6.17 und als SQL-Server kam der 2014er zum Einsatz. Beide Datenbanken wurden auf verschiedenen Servern installiert.

 

Für den Test wurden drei verschiedene Pakete in SSIS gebaut, wobei jedes für eine Exportmöglichkeit zuständig war. Bei den beiden Versionen mit .Net- bzw. ODBC-Treiber wurden die Daten mittels Quelle aus dem MySQL-System abgezogen und direkt in den SQL-Server importiert. Bei der Version mit CSV-Dateien wurden als Erstes die Datensätze in eine CSV-Datei exportiert. Diese wurde im Anschluss mittels „File System Task“ von SSIS auf den Computer mit dem SQL-Server kopiert. Im Anschluss wurden diese Daten in den Server importiert.

 

Die Versuche wurden drei Mal durchgeführt und die Tabelle zeigt die durchschnittlichen Ergebnisse der Versuche in Sekunden:

 

 

Anhand der Ergebnisse sieht man, dass der ADO.NET-Connector der aktuell  performanteste Weg ist, Daten aus einer MySQL-Datenbank zu exportieren und in einen SQL-Server zu importieren. Beachtlich ist auch, dass es schneller ist, Daten per CSV-Datei zu exportieren und importieren, anstatt den ODBC-Treiber zu verwenden. Dabei muss auch berücksichtigt werden, dass alleine der Dateitransfer ca. 3 Sekunden dauert.

Schreibe einen Kommentar