A merged tábla felosztása (splitting)
A split folyamat célja, hogy a merged_master.csv egyetlen, nagy
táblájából tematikus, normalizált CSV-fájlokat hozzon létre.
Minden táblát külön függvény épít fel, és a fájlok a split/generated/tables/ könyvtárba
kerülnek mentésre. A kód futása során részletes log készül
(split_log.txt ), amelyben minden művelet nyomon követhető.
A folyamat lépései röviden
A main() függvény a teljes feldolgozást automatizálja:
A merged_master.csv betöltése
Minden rész-tábla létrehozása
CSV-fájlok mentése a ``split/generated/tables`` mappába
Naplózás (logging)
Létrehozott táblák
Az alábbi CSV-fájlok készülnek el a split folyamat során:
game.csv– a játékok alapadataidescription.csv– hosszú, rövid leírások, „about” mezőkmedia.csv– header image + háttérképekscreenshots.csv– teljes és thumbnail képekmovies.csv– max/480p/thumbnail videóksupport.csv– support URL + emailrequirements.csv– minimum és ajánlott rendszerkövetelmények OS-enkéntplatforms.csvésgame_platform.csv– Windows/Mac/Linux támogatásgenres.csvésgame_genre.csv– műfajok és kapcsolótáblacategories.csvésgame_category.csv– kategóriák és kapcsolótáblapackages.csv,sub_package.csv,game_package.csv– Steam csomagokdevelopers.csvésgame_developer.csv– fejlesztőkpublishers.csvésgame_publisher.csv– kiadóktags.csvésgame_tag.csv– címkék súlyokkallanguages.csv– normalizált nyelvlistagame_subtitles.csvésgame_audio_language.csv– felirat + audio nyelvek
A split kód működésének lényege
A feldolgozás minden résztáblánál ugyanazt az alapelveket követi:
csak a releváns oszlopok kiválasztása a master táblából,
listás mezők normalizálása (pl. screenshotok, címkék, nyelvek),
szükség esetén ID-k generálása (pl.
genreid,tagid),kapcsolótáblák létrehozása many-to-many kapcsolatokhoz,
mentés CSV-be a
split/generated/tables/mappába.
Ez a struktúra biztosítja, hogy a korábban egyetlen táblában szereplő, összevont adatállomány teljes mértékben megfeleljen a relációs adatbázis-normalizálási elveknek és későbbi SQL importálásra alkalmas legyen.