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.
Oszlop | Leírás | |
Target container | Meghatározza az adatátvitelhez használt adatbázist vagy sémát. További részleteket lásd a később. | |
Source | A kiválasztott táblák és oszlopaik neve. | |
Target | Céltáblák | |
Mapping | Az adatátvitel során végezhetünk műveletekeket az adatokkal. | |
Transform | Lehető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.
Mapping | Leírás | |
Create | A forrásadatokat létrehozzuk a cél újonnan létrehozott táblájában vagy oszlopában. | |
Skip | Nem visszük át a forrásadatokat, a cél üres marad. | |
Existing | A 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 NULL | A megfelelő oszlop összes értéke null-ra lesz állítva. | |
Constant | Az oszlop értékét konstans értékre állítjuk. | |
Existing | A forrásadatokat a célban meglévő táblába helyezi át. | |
Expression | JEXL-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 threads | Meghatározhatjuk az adatátvitelhez használandó szálak számát. | |
Extract type | Haszná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 count | Engedélyezhetjük az adatátvitel állapotát megjelenítő előrehaladási sávot. | |
Fetch size | A 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 columns | Az „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 load | Mi 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 transfer | A 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 method | todo 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 transactions | Ez 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 insert | A 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 insert | Ez 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 batches | Jelö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 errors | Az 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 load | Megkerü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 finish | Ha 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-Mail | Az 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ás | Leírás | |
Source Container | A forrás, amelyből az adatokat olvassuk. | |
Source | Forrás entitás/tábla. | |
Target container | A cél, ahova migrálunk. | |
Target | Cé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