/ / Jak przenieść dużą ilość danych między bazami danych? - wydajność, jdbc, db2

Jak przenieść dużą ilość danych między bazami danych? - wydajność, jdbc, db2

Muszę porównać dane z dwóch baz danych (obiez nich to DB2), które znajdują się na różnych serwerach bez istniejącego połączenia między nimi. Ponieważ obie bazy danych są używane w produkcji, nie chcę ich przeciążać, dlatego utworzę nowy db (prawdopodobnie MySQL) na mojej lokalnej maszynie, wyodrębnię dane z obu programów DB2, wstawię do MySQL i zrób porównanie na miejscu.

Chciałbym to zrobić w Javie, więc moje pytaniejest jak wykonać to zadanie tak skutecznie, jak to możliwe, bez przeciążania produkcyjnych baz danych. Zrobiłem kilka badań i wymyśliłem następujące punkty:

  • ogranicz liczbę kolumn, których użyję w mojej początkowej instrukcji SELECT
  • dostroić rozmiar pobierania obiektu ResultSet (domyślnie dla sterowników IBM DB2 JCC wydaje się być 64)
  • użyj obiektu PreparedStatement do wstępnej kompilacji SQL

Czy jest coś jeszcze, co mogę zrobić, lub jakieś inne sugestie?

Dziękuję Ci

Odpowiedzi:

2 dla odpowiedzi № 1

DB2 dla Linux UNIX i Windows zawieraNarzędzie EXPORT jako część swojego klienta wykonawczego. To narzędzie można wskazać na bazę danych DB2 w systemie z / OS, aby szybko drenować tabelę (lub zestaw wyników zapytania) do pliku płaskiego na komputerze klienta. Możesz wybrać, czy plik płaski ma być rozdzielany, czy ma stałą szerokość, czy też oryginalny format IXF DB2. Twój DBA z / OS powinien być w stanie pomóc Ci skonfigurować klienta na stacji roboczej i powiązać niezbędne pakiety z bazami danych z / OS zgodnie z wymaganiami przez narzędzie EXPORT.

Gdy już posiadasz pliki płaskie na kliencie, możesz je porównać, jak chcesz.


0 dla odpowiedzi nr 2

Brzmi jak świetna robota dla zmniejszenia mapy (hadoop). Jedno zadanie z dwoma maperami, po jednym dla każdego DB i reduktor do porównywania. Można go skalować do tylu procesorów, ile potrzebujesz, lub po prostu uruchamiać na jednym komputerze.