SQL Server zur MySQL-Datenübertragung

9

Ich versuche, Massendaten auf einer konstanten und kontinuierlichen Basis von einer SQL Server-Datenbank zu einer MYSQL-Datenbank zu übertragen. Ich wollte die SSMS-Replikation von SQL Server verwenden, aber dies ist offenbar nur für die Verbindung von SQL Server zu Oracle oder IBM DB2. Derzeit verwenden wir SSIS, um Daten zu transformieren und sie an einen temporären Speicherort in der MYSQL-Datenbank zu verschieben, wo sie kopiert wird. Ich möchte den schnellsten Weg, Daten zu übertragen und mehrere Methoden zu komplizieren.

Ich habe eine neue Art, die Daten zu transformieren, von denen ich sicher bin, dass sie die meisten Zeitprobleme lösen werden, aber ich möchte sicherstellen, dass wir in Zukunft keine Zeitprobleme haben. Ich habe einen Verbindungsserver eingerichtet, der einen MYSQL-ODBC-Treiber verwendet, um zwischen SQL Server und MYSQL zu kommunizieren. Dies scheint sehr langsam. Ich habe etwas Code, der auch Microsoft ODBC-Treiber verwendet, aber so wenig verwendet wird, dass ich die Leistung nicht messen kann. Kennt jemand blitzschnelle Kommunikationsmöglichkeiten zwischen diesen beiden Datenbanken? Ich habe MYSQLs Datenanbieter untersucht, die mit einer OleDB-Schicht zu kommunizieren scheinen. Ich bin mir nicht sicher, was ich glauben soll und auf welche Art und Weise, auf irgendwelche Ideen zu steuern?

    
JBone 15.08.2011, 22:01
quelle

4 Antworten

1

Ich habe die jdbc-odbc-Brücke in Java verwendet, um genau dies in der Vergangenheit zu tun, aber die Leistung über ODBC ist nicht groß. Ich würde vorschlagen, etwas wie Ссылка anzuschauen, das ein reiner Java-Treiber ist, den Sie in ein einfaches Groovy-Skript wie das folgende einfügen können:

%Vor%

Die folgenden Leistungswerte geben Ihnen ein Gefühl dafür, wie es funktionieren könnte: Ссылка

Sie können einige Leistungsvorteile beim Dumping von Daten in ein mysql-Dumpdateiformat und beim Verwenden von mysql loaddata finden, anstatt Zeile für Zeile zu schreiben. MySQL hat einige bedeutende Leistungsverbesserungen für große Datenmengen, wenn Sie Infiles laden und Dinge wie atomare Tabellen-Swaps tun.

Wir verwenden so etwas, um schnell große Datendateien von einem System in ein anderes zu laden, z. Dies ist der schnellste Mechanismus zum Laden von Daten in mysql. Aber Echtzeit-Zeile für Zeile könnte eine einfache Schleife in groovy + einige Tabelle zu tun, um zu verfolgen, welche Zeile verschoben worden war.

mysql & gt;

%Vor%

rm 'Tabellenname.dat

    
Todd Ellermann 02.09.2011, 01:25
quelle
1

Der beste Weg, um SQL-Daten zu übertragen (wenn Sie den Platz haben) ist ein SQL-Dump in einer Sprache und dann ein Conversion-Software-Tool (oder Perl-Skript, beide sind vorherrschend), um den SQL-Dump zu konvertieren MSSQL zu MySQL. Sehen Sie meine Antwort auf diese Frage, für welchen Konverter Sie sich interessieren könnten :).

    
djhaskin987 15.08.2011 22:05
quelle
0

Wir haben den ado.net-Treiber für mysql in ssis mit ziemlich viel Erfolg verwendet. Installieren Sie den Treiber auf dem Computer, auf dem die Integrationsservices installiert sind, und starten Sie die Gebote neu. Wenn Sie einen ado.net-Verbindungsmanager erstellen, sollte dieser in der Treiberliste angezeigt werden.

Was genau wollen Sie bei der Replikation erreichen?

Wenn Sie Änderungen überwachen, behandeln Sie sie als sich langsam ändernde Dimension des Typs 1 (Data Warehouse-Terminologie, aber derselbe Principal gilt). Fügen Sie neue Datensätze ein, aktualisieren Sie geänderte Datensätze.

Wenn Sie nur an neuen Datensätzen interessiert sind und nicht beabsichtigen, zuvor geladene Daten zu aktualisieren, versuchen Sie eine inkrementelle Ladestrategie. Fügen Sie Datensätze ein, in denen source.id & gt; max (Ziel.ID).

Nachdem Sie das Paket getestet haben, planen Sie einen Job im sql-Server-Agent, um das Paket alle x Minuten auszuführen.

    
brian 16.08.2011 02:02
quelle
0

Cou kann auch Folgendes versuchen. Ссылка

Ich habe es schon länger ausprobiert und es hat für mich funktioniert. Aber ich würde es dir nicht empfehlen. Was ist das eigentliche Problem, was versuchst du zu tun? Erhalten Sie keine MSSQL-DB-Verbindung, zum Beispiel von Linux?

    
MaikL80 31.08.2011 18:14
quelle