2013-03-18 6 views
5

Muszę załadować około 15 milionów linii danych w bazie danych DB2 - przy użyciu java.Wstaw 15 milionów linii w bazie danych DB2

Aby zachować prostotę, nie będę mówić o formacie pliku ani liczbie tabel w bazie danych. Powiedzmy, że tylko jedna tabela z 5 kolumnami pobiera dane z ogromnego pojedynczego pliku csv.

W tym scenariuszu - Muszę coś

  1. Szybka
  2. Stabilny

nie jestem naprawdę martwi

  1. Kod ponowne
  2. Modułowość
  3. Testability

Wygląda mi na to, wkładka partia stosując proste java jest droga. Jestem świadomy Spring Batch, ale nie wiem, czy warto dodać tę warstwę.

Pytanie do grupy - co byś zasugerował. Wszystko w świecie Java/Java EE jest akceptowalnym rozwiązaniem (o ile nie wymaga oprogramowania, które musimy kupić).

+2

DB2 ma doskonale dobry program ładujący ładunki masowe, dlaczego nie użyć tego? Jest szybszy niż wszystko, co możesz zrobić z Javą. –

+0

Dlaczego musisz używać java? Programy RDBMS zwykle są wyposażone w narzędzie do importowania, które może z łatwością sobie z tym poradzić. Również większość frontendów DB (w tym darmowe) ma funkcję importu. – creinig

+0

@NathanHughes - Dobra uwaga. Ale celowo nie mam dostępu do szczegółów formatu plików i tabel itp. W tym przypadku istnieją pewne niewielkie, ale ważne moduły oparte na Javie, które muszą wejść i masować dane, które muszą przejść do bazy danych. I stąd wanilia - pobierz źródło danych w ten sposób - i zrób zrzut danych jako ten stół - i wykonaj hit - coś w tym rodzaju, nie zadziała tutaj. – partha

Odpowiedz

0

Używanie ETL, takiego jak Pentaho lub Talend, byłoby wspaniałe.

+0

Ahhh .. radości z pracy w przedsiębiorstwie. Nie możesz dostać żadnego oprogramowania takiego, jak żadne z tych, do przedsiębiorstwa bez uzyskania 6-miesięcznej zgody na pościg. Ponadto, gdy je zdobędziesz, wprowadzenie ich do projektu jest kolejną ciężką próbą. Przykro mi, ale Java i powiązane bezpłatne biblioteki są obecnie jedynym wyborem. – partha

0

Użyj funkcji ładowania, aby utworzyć ją w utworzonej nowej tabeli.
Przejrzyj pliki dziennika, aby upewnić się, że nie ma błędów ładowania.
Do manipulowania danymi można użyć JDBC lub zapisanego procesu.
Utwórz kopię zapasową tabeli docelowej.
Użyj prostej instrukcji wstawiania, aby dodać dane do tabeli docelowej.