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:

  1. A merged_master.csv betöltése

  2. Minden rész-tábla létrehozása

  3. CSV-fájlok mentése a ``split/generated/tables`` mappába

  4. 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 alapadatai

  • description.csv – hosszú, rövid leírások, „about” mezők

  • media.csv – header image + háttérképek

  • screenshots.csv – teljes és thumbnail képek

  • movies.csv – max/480p/thumbnail videók

  • support.csv – support URL + email

  • requirements.csv – minimum és ajánlott rendszerkövetelmények OS-enként

  • platforms.csv és game_platform.csv – Windows/Mac/Linux támogatás

  • genres.csv és game_genre.csv – műfajok és kapcsolótábla

  • categories.csv és game_category.csv – kategóriák és kapcsolótábla

  • packages.csv, sub_package.csv, game_package.csv – Steam csomagok

  • developers.csv és game_developer.csv – fejlesztők

  • publishers.csv és game_publisher.csv – kiadók

  • tags.csv és game_tag.csv – címkék súlyokkal

  • languages.csv – normalizált nyelvlista

  • game_subtitles.csv és game_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.