Skip to content

PostgreSQL adatbázis migrációja DBevaer segítségével

A DBeaver lehetővé teszi az adatok különböző adatbázisok közötti vagy ugyanazon az adatbázison belüli táblák közötti átvitelét (szakkifejezéssel: migrációját). Ez az útmutató végigvezet az adatmigráción DBeaver-rel.

Amennyiben szakmia segítségre van szükséged, keress fel nyugodtan.

Törlés

Nulladik lépésként érdemes törölni a cél adatbázis rekordjait:

Forrás kiválasztása

Az adatmigráció elindításához ki kell választani az adatforrást.

Megjegyzés: Lehetőség volna egyéni SQL-lekérdezést lefuttatni, majd ezt exportálni. A lekérdezés után az eredmények kontextusmenüjében az Adatok exportálása után azokkal is dolgozhatunk..

Indítsuk el az exportot:

Ezután az Adatbázist válasszuk ki:

Miután az Adatbázis-t választottuk a célnak, a következő lépés az adatok leképezése. Itt a beállításokat, a cél pontosabb definícióját és egyéb konfigurációk beállítását, a mappelést is be fogjuk állítani.

A gombok:

Tallózás Lehetővé teszi a cél kiválasztását.

Konfigurálás További beállítások megnyitása. A részletekért lásd a szakaszt.

Adatok előnézete Megjeleníti az átadandó adatok előnézeti képét.

Fel A kiválasztott mappelést feljebb/előbbre mozgatja, a lista eleje felé.

Lefelé A kiválasztott mappelést lejjebb/hátrébb viszi, lista vége felé.

Leképezési szabályok Válasszuk ki, hogy az új táblák és oszlopnevek hogyan alakuljanak át az adatok átvitelekor. A részleteket lásd a lejjebb.

Automatikus hozzárendelés Automatikusan feltölti a cél oszlopot a forrás alapján.

OszlopLeírás
Target containerMeghatározza az adatátvitelhez használt adatbázist vagy sémát. További részleteket lásd a később.
SourceA kiválasztott táblák és oszlopaik neve.
TargetCéltáblák
MappingAz adatátvitel során végezhetünk műveletekeket az adatokkal.
TransformLehetővé teszi az oszlopértékek átalakítását az adatátvitel során.

A mappelés

A mappelés megváltoztatásához kattintsunk a Mapping oszlopban a megfelelő értékre.

MappingLeírás
CreateA forrásadatokat létrehozzuk a cél újonnan létrehozott táblájában vagy oszlopában.
SkipNem visszük át a forrásadatokat, a cél üres marad.
ExistingA forrásadatokat a célban meglévő táblába helyezi át.
RecreateÚjra létrehozza a (cél)táblát, azt jelenti, hogy a meglévő tábla rendelkezésre álló adatai, kulcsai, indexei és egyéb lehetséges entitásai elvesznek közben.

Megjegyzés: Ha a cellákat „?” jelöléssel látjuk el, az azt jelenti, hogy a céltáblában nincsenek azonos nevű oszlopok, egyébként a nevek automatikusan kitöltődnek.

Az oszlopértékek átalakítása

Előfordulhat, hogy az átvitel során egyes oszlopok értékeit is át szeretnénk alakítani. Ehhez definiálnunk kell oszloptranszformátorokat a Transform oszlop megfelelő celláira kattintva. Három lehetőség közül választhatunk.

OpcióLeírás
Set to NULLA megfelelő oszlop összes értéke null-ra lesz állítva.
ConstantAz oszlop értékét konstans értékre állítjuk.
ExistingA forrásadatokat a célban meglévő táblába helyezi át.
ExpressionJEXL-kifejezéseket használhatunk az oszlop értékeinek a kiszámításához.

Extrakciós beállítások

A mappelés beállítása után a következő lépés annak meghatározása, hogy az adatok hogyan lesznek kinyerve a forrásból. Az Extrakciós beállítások lapon különböző lehetőségek állnak rendelkezésre a folyamat finomhangolásához.

OpcióLeírás
Maximum threadsMeghatározhatjuk az adatátvitelhez használandó szálak számát.
Extract typeHasználhatunk többszörös lekérdezést, ha az adatbázis nem támogatja az eredményhalmaz görgetését. A szegmensméret értékét is beállíthatjuk.
Open new connection(s)Ha be van jelölve, új kapcsolat jön létre, biztosítva, hogy az adatátvitel ne befolyásolja az adatbázis egyéb műveleteit.
Select row countEngedélyezhetjük az adatátvitel állapotát megjelenítő előrehaladási sávot.
Fetch sizeA szerver lekérésenént hány sort kérjen le, ami nagyban befolyásolhatja a teljesítményt.

Adatfeldolgozás beállításai

Az mapping és extrakció beállítások konfigurálása után meg kell adnunk, hogyan töltődjenek át az adatok a céladatbázisba.

OpcióLeírás
Transfer auto-generated columnsAz „automatikusan generált” státusszal jelölt oszlopok kitöltése vagy kihagyása. Egyes adatbázisok elfogadják az ilyen oszlopok értékeit, míg mások szintaktikai hibát jeleznek.
Truncate target table(s) before loadMi már töröltük a célt, de itt lehetne hagyni, hogy automatikusan történjen. Csak óvatosan!
Disable referential integrity checks during the transferA cél adatbázisban definiált ellenőrzések letiltása. Ez a beállítás az ideiglenes letiltással megakadályozza az adatbázisba történő adatbevitel hibáit. Nem minden adatbázis támogatja ezt a funkciót.
Replace methodtodo https://dbeaver.com/docs/dbeaver/Data-migration/Data-Import-and-Replace
Open new connection(s)Ezzel a beállítással felgyorsíthatjuk az adatátvitelt. Ha bejelöljük, akkor új kapcsolatok nyílnak, és az adatátvitel nem zavarja az adatátvitelt végző adatbázis más hívásait.
Use transactionsEz az opció lehetővé teszi az adatátvitel felgyorsítását, valamint az egyes tranzakciók sorainak számának meghatározását.
Do Commit after row insert A beszúrt sorok meghatározott száma után végrehajt egy COMMIT-ot.
Use multi-row value insertA nagyobb teljesítmény érdekében használhatunk többsoros beszúrást kibővített értékszámmal. Szintén adatbázis-függő beállítás.
Skip bind values during insertEz a beállítás drasztikusan növelheti a teljesítményt egyes adatbáziskezelők esetén – például Redshift – azáltal, hogy kihagyja bizonyos binding műveleteket, viszont egy sebezhetőséget jelenthet – SQL-injekció. Nem ajánlott, ha nem bízunk az importált fájl tartalmában.
Disable batchesJelöljük be ezt a jelölőnégyzetet, ha le szeretnénk tiltani a kötegelt importálást. Az importálás ekkor soronként fog megtörténni. Ha engedélyezzük ezt a funkciót, az összes importálási hiba megjelenik, de cserébe az importálási folyamat lassabb lesz.
Ignore duplicate rows errorsAz importálás során, ha az adatbázis a céltáblában az importált sorból duplikált kulccsal találkozik, akkor az ilyen hibákat figyelmen kívül hagyjuk, és az importálási folyamat folytatódik.
Use bulk loadMegkerüljük a tranzakcióbeállításokat, és az adatbázis által biztosított natív eszközzel töltjük át a teljes adatállományt.
Open table editor on finishHa be van jelölve, a táblaszerkesztő az adatátvitel befejezésekor megnyílik.
Show finish message Ha be van jelölve, az átvitel befejezésekor egy értesítési üzenet jelenik meg.
Send results by E-MailAz adatátvitel eredményeit e-mailben elküldi a program a befejezéskor. TODO További információkért olvassa el az e-mail használatáról szóló útmutatót az adatátvitelhez.

Megerősítés

Az adatátvitel megkezdése előtti utolsó lépés a Megerősítés lap. Ez a lap összefoglalja az előző lépésekben beállított összes konfigurációt. Utolsó ellenőrzésként szolgál annak biztosítására, hogy minden beállítás helyes legyen.

BeállításLeírás
Source ContainerA forrás, amelyből az adatokat olvassuk.
SourceForrás entitás/tábla.
Target containerA cél, ahova migrálunk.
TargetCél entitás/tábla.
Source settingsÖsszefoglalja a forrással kapcsolatos beállításokat.
Target settingsÖsszefoglalja a céllal kapcsolatos beállításokat.

Ezek a beállítások ebben a szakaszban már nem módosíthatók. Ha minden beállítás megfelelő, kattintsunk a Befejezés gombra az adatátvitel elindításához.

Megjegyzés: Ezeket a konfigurációkat elmenthetjük későbbre és újra lefuttathatjuk.

A Proceed gombra kattintva elindul az adatátviteli folyamat.

Összefoglaló

Ha nincs hiba, megjelenik egy ablak, amely az exportálási feladat(ok) sikeres befejezését írja le. Az exportálási folyamat közben természetesen mi dolgozhatunk az adatbázissal, mivel minden folyamat a háttérben zajlik.

Itt van az angol nyelvű leírás: https://dbeaver.com/docs/dbeaver/Data-migration/

Kép: freestocks / Unsplash