Saját pénztermelő projekt 5. rész

Egész pontosan egy hónap és 10 nap telt el azóta, hogy megnéztük, az interneten ingyenesen fellelhető adatokból hogyan lehet pénzt csinálni programozással. Azóta tovább tisztult a leosztás, mivel a webprogramozó, akivel társultam, kissé lassú, rájöttem, hogy jobban megéri kézben tartani az adatokat is.

Most az a leosztás, hogy folyamatosan találom az interneten az újabb adattárakat, amiket én dolgozok fel a Java programozás segítségével, és neki csak az SQL adatbázist küldöm át. Az egyetlen feladata így csak az adatbázis feltöltése, és beillesztése a projektbe.

Felvetődhet a kérdés, miért nem én csinálom a webes részt? A fő válasz erre az, hogy nincs rá időm, és az a része a feladatnak amúgy is kevésbé érdekes. A Java-s rész viszont sokkal érdekesebb, erről mondok is pár szót.

Nagyméretű adatbázisok feldolgozása Java-val

Szóval, az adatforrások az interneten a legváltozatosabb forrásokban vannak. Még véletlenül sem CSV vagy SQL formátumban, hanem valami tudományos körökben ismert formában. Ehhez megadják a leírást, és én ennek alapján megírom a dekódolót. Amint ez megvan,sokszor még meg kell tisztítanom az adatokat, itt az veszi el a legtöbb időt, hogy kitaláljam az a formulát, ami alapján a tisztítás elvégezhető. Mi jelenti a szemetet az adatban, hogyan lehet eltávolítani, és főleg, mi az a mód, ami a leggyorsabb, és több százezer sornál mondjuk nem foglalja le a gépet hosszú időre?

Az eredmény viszont elképesztő, amikor minden kész, lefuttatom a Java programom, és látom, hogyan telik meg az aktuális adatbázis új sorok tízezreivel. Értékes adattal.

A Google hozzáállása ehhez az, hogy először az új adatok nagy részét feltérképezi, de nem foglalkozik vele. Aztán szép lassan elkezdi átemelni az új aloldalakat az indexébe, onnantól pedig azok is hozhatnak látogatókat. A folyamat tényleg évekig tarthat, főleg több millió aloldalnál. De ez ezzel jár.

Mivel SSD háttértáram van, az adatforrások beolvasása és kiírása pillanatok műve. Ami sokáig tart, az a számítási feladatok, amikor egy-egy sort beolvasva nem csak ki kell írni más formátumban, hanem cserélgetni kell benne részeket, ellenőrzéseket kell elvégezni. De a nagyságrendeket érzékeltetve, a legutóbbi körben 200000 rekordot írtam bele az adatbázisba, és közben számos tisztítási feladatot kellett elvégezni az adatforrásból beolvasott sorokon, és így is megvolt 10 perc alatt.

Azt is tudom, hogy a nagyméretű adatbázisokhoz nem feltétlenül a Java a legjobb nyelv, mostanában sokat hallom emlegetni a Python-t is, de ha most ha Java-ban programozok, akkor ezt tudom felhasználni. Az én szintemen nem látok ebből problémát, vállalati környezetben százszor, milliószor ekkora adathalmazoknál nyilván más lehet a dolog. Hogy a jövő mit hoz, azt meg meglátjuk.

Statisztikák

Akkor nézzük a statisztikákat. Legutóbb, április 4-ig voltak adatok. Akkor a Google keresőben történő megjelenés így nézett ki:

Na ez most így né ki május 14-ig bezárólag:

megjelenesek.jpg

A kb. 500 napi megjelenésről felfutott kb. napi 1500 megjelenésre, és a trend jól néz ki, folyamatosan emelkedő.

Nézzük a beindexelt aloldalak számát:

A mostani adat:

indexelt.jpg

A 3030 indexelt oldalból 4160 lett. Egyelőre ennyi, újabb 1 hónap múlva megnézzük, hol tartanak a számok. Ha most a befektetett munkát nézzük, akkor ilyen hobbiprojekteket csak saját szakállra érdemes csinálni, hacsak nem társul hozzá intenzív linképítés és tartalomkészítés. Ennyi adat feldolgozása jelentős programozói bért követel, ehhez társul még a másik a SEO-s bére, így komoly befektetésre van szükség.

Ha azonban értünk a Java-hoz, akkor esténként szórakozásból el tudunk játszani az adathalmazok feldolgozásával, ami nem csak erre a projektre jó, de én is számos problémát megismertem közben. Ilyenkor megy a kutatás a Google, a Reddit, a Stackoverflow és a Facebook csoportok segítségével, és ezek a tapasztalatok mind megmaradnak.

Már nézegettem, hogyan lehetne az egész weboldalt Java alapokra tenni, hogy egyáltalán megéri-e, annak még utána kell járnom. Most a weboldal PHP alapú, amihez botcsinálta módon értek csak, a CSS-hez szintúgy, viszont a Java alapú weboldalkészítést is meg akarom ismerni. Ha másért nem, csupán emiatt érdemes lehet foglalkozni az ötlettel. De egyelőre írom a StudiCore nagy feladatát a Java SE modul zárásaként, így most arra koncentrálom az időm nagy részét.