Saya menggunakan jembatan jdbc-odbc di Jawa untuk melakukan hal ini di masa lalu, tetapi kinerja melalui ODBC tidak bagus. Saya sarankan melihat sesuatu seperti http://jtds.sourceforge.net/ yang merupakan driver Java murni yang dapat Anda masukkan ke skrip Groovy sederhana seperti berikut:
import groovy.sql.Sql
sql = Sql.newInstance( 'jdbc:jtds:sqlserver://serverName/dbName-CLASS;domain=domainName',
'username', 'password', 'net.sourceforge.jtds.jdbc.Driver' )
sql.eachRow( 'select * from tableName' ) {
println "$it.id -- ${it.firstName} --"
// probably write to mysql connection here or write to file, compress, transfer, load
}
Angka kinerja berikut memberi Anda gambaran tentang kinerjanya:http://jtds.sourceforge.net /benchTest.html
Anda mungkin menemukan beberapa keuntungan kinerja untuk membuang data ke format dumpfile mysql dan menggunakan loaddata mysql daripada menulis baris demi baris. MySQL memiliki beberapa peningkatan kinerja yang signifikan untuk kumpulan data besar jika Anda memuat infile dan melakukan hal-hal seperti pertukaran tabel atom.
Kami menggunakan sesuatu seperti ini untuk dengan cepat memuat file data besar ke mysql dari satu sistem ke sistem lain mis. Ini adalah mekanisme tercepat untuk memuat data ke mysql. Tetapi baris demi baris waktu nyata mungkin merupakan loop sederhana untuk dilakukan di groovy + beberapa tabel untuk melacak baris apa yang telah dipindahkan.
mysql> select * from table into outfile 'tablename.dat';
shell> myisamchk --keys-used=0 -rq '/data/mysql/schema_name/tablename'
mysql> load data infile 'tablename.dat' into table tablename;
shell> myisamchk -rq /data/mysql/schema_name/tablename
mysql> flush tables;
mysql> exit;
shell> rm tablename.dat