W jaki sposób zrobić prawidłowo migrację danych z MongoDB do bazy danych MySQL (mogę używać Hibernate oraz mongo drivera javowego) Strukturę tabel mam już przygotowaną, chodzi mi głównie w jaki sposób np zabezpieczyć się przed błędami oraz zachować ciągłość na wypadek zawieszenia się aplikacji w połowie przenoszenia danych? Czy użycie kolejki ma sens? Proszę o radę kogoś, kto robił podobną rzecz.
0
1
- Migracja w offline czy przy jednoczesnym wykorzystaniu obu baz?
- Jaki wolumen danych?
3
- Zablokować aplikacjom możliwość podpięcia się do bazy (nie wszystkim klientom rzecz jasna, tylko takim, którzy modyfikują dane)
- Wyeksportować dane do pliku.
- Obrobić plik wejściowy (mapowanie z modelu źródłowego na model docelowy).
- Załadować do bazy docelowej batchowo - używając do tego celu narzędzi bazodanowych
- Włączyć klucze główne, obce, etc. - jak masz dane niespójne (trudno od bazy NoSQL wymagać spójności relacyjnej), to się wysypie. Dlatego też możesz mieć krok pośredni - identyfikacja danych "niepoprawnych" i przenoszenie ich do osobnych tabel/kasowanie/przypisywanie wartości domyślnych etc.
edycja:
Opis techniczny dotyczy sytuacji, gdzie przenosimy wszystko jednym strzałem i zakładamy niedostępność usług. Trudność migracji, to nie przenoszenie danych z miejsca w miejsce, tylko 90% to planowanie i szukanie kompromisów między niedostępnością usług korzystających z bazy, a złożonością procesu migracyjnego.
2
Pytanie ile jest tych danych, co to za dane. Czy migracja Idze na wyłączonym systemie, czy na żywca. Najlepszym wyjściem jest usunąć całą bazę i robić migrację od nowa jak cos się zawiesi. Jak nie to, musisz dodać zabezpieczenie, które sprawdzi, czy przypadkiem te dane nie są już zmigrowane, ale to pewnie podwoi czas migracji.