API-MÁGIA
MILLIÓ SORNYI ADAT ÚJRARENDEZÉSE

Előadó: Jaksa Zsombor, drungli.com
MIRŐL FOG SZÓLNI AZ ELŐADÁS?

•

Hogyan működik a drungli.com?#

•

Adatok gyűjtése, stratégiák#

•

Ha marad időm… még mesélek
HOGYAN MŰKÖDIK A DRUNGLI.COM?
“kaland generátor spontán utazóknak, az utazástervezés igazán
felhasználóbarát módja”"
VAGYIS#
Repülőtársaságoktól adatokat gyűjtünk, feldolgozzuk 

és különböző keresési megoldásokat, javaslatokat kínálunk a
felhasználóknak egy egyszerű felületen keresztül, szűrési
lehetőségekkel#
Cél: ezt minél gyorsabban és pontosabban (?)
HOGYAN MŰKÖDIK A DRUNGLI.COM?

I know when
A felhasználó csak a kiindulási várost és az időintervallumot
adja meg, tőlünk vár ajánlatot , hogy hova szeretne utazni"
•

legolcsóbb járatokat kapja "

•

különböző szűrési lehetőségekkel"

•

olcsó algoritmus
HOGYAN MŰKÖDIK A DRUNGLI.COM?

I know where
A felhasználó megadja a kiindulási és a célvárost, az
időintervallumot és azt, hogy mennyi időt 

szeretne a célállomáson tölteni"
•

sok kombináció adódhat (pl. london all) "

•

sok a “kötetlen” paraméter"

•

drága algoritmus
ADATOK BEGYŰJTÉSE
JAVA környezetben írt kliens-szerver alkalmazás"
"
"

szerver feladata: begyűjtés ütemezése (feladatok " "
kiosztása), adatok mentése, validálása"

"

"

"

"
"

kliensek feladata: ők kommunikálnak a légitársaságokkal " "
és " gyéb külső partnerek szervereivel"
e

"

Egy kliens forgalma ~ 50-100 GB / nap körül mozog
ADATOK BEGYŰJTÉSE
Milyen adatokat gyűjtünk be a járatokról?#
•

Honnan indul? Hova megy?"

•

Mikor száll fel és le?"

•

Mennyibe kerül a jegy? (pénznem)"

•

Üzemeltető légitársaság"

Szükségünk van a lehetséges útvonalakra is 

(összesen és légitársaságokra lebontva)
ADATOK BEGYŰJTÉSE
Milyen adatokat adunk hozzá?#
•

címkézés szűrésekhez (pl. regionális sajátosságok)"

•

városok összekapcsolása"

•

szabályszerűségek felismerése "
(pl. kedvezményes jegyek)"

""
•

egyéb meta adatok (pl. távolság , GPS koordináta)
ADATOK BEGYŰJTÉSE
Hogyan jutunk a járatok adataihoz?#
•

kapunk API-t az adatbázis lekérdezésekhez"

•

nem kapunk API-t az adatbázis lekérdezésekhez
ADATOK LEKÉRDEZÉSE
VAN API #
Előny: ritkán változik, kevesebb karbantartást igényel"
Hátrány: sokszor lassabb a lekérdezés sebessége, 

limitált a lekérdezések száma, foglaláshoz kötött#
ADATOK LEKÉRDEZÉSE
NINCS API #
HTTP REQUEST-eken keresztül 

eljutunk a járatokat tartalmazó eredményoldalra, melynek
feldolgozásával kinyerhetőek a megfelelő adatok"
•

Fontos az adatok folyamatos visszaellenőrzése"

•

Állandó karbantartást igényel
ADATOK BEGYŰJTÉSE
Van egy harmadik eset is:#
Adatokat vásárolunk harmadik féltől"
•

nincsenek kötegelt lekérési 

lehetőségeink"

•

mire felépítenénk a keresési 

gráfot a felhasználó megunná a várakozást"

•

nem tudjuk tényleg a legolcsóbb 

járatokat megtalálni #
GYŰJTÉSI STRATÉGIA
Lekérdezések mennyisége#
•

Van olyan légitársaság ami közel 

50 ezer útvonalra kínál járatokat"

•

Adatbázisunkban jelenleg 90 napra előre lehet keresni"

•

Ha naponta csak kétszer frissítenénk az adatbázist, akkor

ez közel 1 millió lekérdezést jelentene"

•

jelenleg átlagosan 500-600 ezer járat van 

az adatbázisban
GYŰJTÉSI STRATÉGIA
Milyen stratégiákkal minimalizálható a lekérdezések
mennyisége?#
1. Útvonalak súlyozása"
2. Árváltozások figyelése
GYŰJTÉSI STRATÉGIA
Útvonalak súlyozása#
A kevésbé fontos útvonalakat ritkábban, a fontosabbakat
gyakrabban frissítjük."
Mitől függ egy útvonal súlya?#
•

Mennyien keresnek rá, illetve 

hányszor jelenik meg az eredmények között"

•

Mennyi vásárlás történik egy adott útvonalra
GYŰJTÉSI STRATÉGIA
Árváltozások figyelése#
Tanuló algoritmus az árváltozási tendenciák 

figyelésére járatonként, illetve útvonalanként egy-egy társaságon
belül. "
Bizonyos útvonalakon közlekedő járatok árai 

sokkal ritkábban változnak"
A frissítés gyakorisága ennek megfelelően történik.#
MESÉLJ MÉG …
1. Hogyan adtok hozzá új légitársaságot?"
2. Mondj valamit a kereső algoritmusról!"
3. Alkalmazás felépítése?
KÖSZÖNÖM A
FIGYELMET!
ESETLEG KÉRDÉS VAN ?

HWSW App konferencia 2013 - Drungli, API-MÁGIA millió sornyi adat újrarendezése

  • 1.
    API-MÁGIA MILLIÓ SORNYI ADATÚJRARENDEZÉSE Előadó: Jaksa Zsombor, drungli.com
  • 2.
    MIRŐL FOG SZÓLNIAZ ELŐADÁS? • Hogyan működik a drungli.com?# • Adatok gyűjtése, stratégiák# • Ha marad időm… még mesélek
  • 3.
    HOGYAN MŰKÖDIK ADRUNGLI.COM? “kaland generátor spontán utazóknak, az utazástervezés igazán felhasználóbarát módja”" VAGYIS# Repülőtársaságoktól adatokat gyűjtünk, feldolgozzuk 
 és különböző keresési megoldásokat, javaslatokat kínálunk a felhasználóknak egy egyszerű felületen keresztül, szűrési lehetőségekkel# Cél: ezt minél gyorsabban és pontosabban (?)
  • 4.
    HOGYAN MŰKÖDIK ADRUNGLI.COM? I know when A felhasználó csak a kiindulási várost és az időintervallumot adja meg, tőlünk vár ajánlatot , hogy hova szeretne utazni" • legolcsóbb járatokat kapja " • különböző szűrési lehetőségekkel" • olcsó algoritmus
  • 5.
    HOGYAN MŰKÖDIK ADRUNGLI.COM? I know where A felhasználó megadja a kiindulási és a célvárost, az időintervallumot és azt, hogy mennyi időt 
 szeretne a célállomáson tölteni" • sok kombináció adódhat (pl. london all) " • sok a “kötetlen” paraméter" • drága algoritmus
  • 6.
    ADATOK BEGYŰJTÉSE JAVA környezetbenírt kliens-szerver alkalmazás" " " szerver feladata: begyűjtés ütemezése (feladatok " " kiosztása), adatok mentése, validálása" " " " " " kliensek feladata: ők kommunikálnak a légitársaságokkal " " és " gyéb külső partnerek szervereivel" e " Egy kliens forgalma ~ 50-100 GB / nap körül mozog
  • 7.
    ADATOK BEGYŰJTÉSE Milyen adatokatgyűjtünk be a járatokról?# • Honnan indul? Hova megy?" • Mikor száll fel és le?" • Mennyibe kerül a jegy? (pénznem)" • Üzemeltető légitársaság" Szükségünk van a lehetséges útvonalakra is 
 (összesen és légitársaságokra lebontva)
  • 8.
    ADATOK BEGYŰJTÉSE Milyen adatokatadunk hozzá?# • címkézés szűrésekhez (pl. regionális sajátosságok)" • városok összekapcsolása" • szabályszerűségek felismerése " (pl. kedvezményes jegyek)" "" • egyéb meta adatok (pl. távolság , GPS koordináta)
  • 9.
    ADATOK BEGYŰJTÉSE Hogyan jutunka járatok adataihoz?# • kapunk API-t az adatbázis lekérdezésekhez" • nem kapunk API-t az adatbázis lekérdezésekhez
  • 10.
    ADATOK LEKÉRDEZÉSE VAN API# Előny: ritkán változik, kevesebb karbantartást igényel" Hátrány: sokszor lassabb a lekérdezés sebessége, 
 limitált a lekérdezések száma, foglaláshoz kötött#
  • 11.
    ADATOK LEKÉRDEZÉSE NINCS API# HTTP REQUEST-eken keresztül 
 eljutunk a járatokat tartalmazó eredményoldalra, melynek feldolgozásával kinyerhetőek a megfelelő adatok" • Fontos az adatok folyamatos visszaellenőrzése" • Állandó karbantartást igényel
  • 12.
    ADATOK BEGYŰJTÉSE Van egyharmadik eset is:# Adatokat vásárolunk harmadik féltől" • nincsenek kötegelt lekérési 
 lehetőségeink" • mire felépítenénk a keresési 
 gráfot a felhasználó megunná a várakozást" • nem tudjuk tényleg a legolcsóbb 
 járatokat megtalálni #
  • 13.
    GYŰJTÉSI STRATÉGIA Lekérdezések mennyisége# • Vanolyan légitársaság ami közel 
 50 ezer útvonalra kínál járatokat" • Adatbázisunkban jelenleg 90 napra előre lehet keresni" • Ha naponta csak kétszer frissítenénk az adatbázist, akkor
 ez közel 1 millió lekérdezést jelentene" • jelenleg átlagosan 500-600 ezer járat van 
 az adatbázisban
  • 14.
    GYŰJTÉSI STRATÉGIA Milyen stratégiákkalminimalizálható a lekérdezések mennyisége?# 1. Útvonalak súlyozása" 2. Árváltozások figyelése
  • 15.
    GYŰJTÉSI STRATÉGIA Útvonalak súlyozása# Akevésbé fontos útvonalakat ritkábban, a fontosabbakat gyakrabban frissítjük." Mitől függ egy útvonal súlya?# • Mennyien keresnek rá, illetve 
 hányszor jelenik meg az eredmények között" • Mennyi vásárlás történik egy adott útvonalra
  • 16.
    GYŰJTÉSI STRATÉGIA Árváltozások figyelése# Tanulóalgoritmus az árváltozási tendenciák 
 figyelésére járatonként, illetve útvonalanként egy-egy társaságon belül. " Bizonyos útvonalakon közlekedő járatok árai 
 sokkal ritkábban változnak" A frissítés gyakorisága ennek megfelelően történik.#
  • 17.
    MESÉLJ MÉG … 1.Hogyan adtok hozzá új légitársaságot?" 2. Mondj valamit a kereső algoritmusról!" 3. Alkalmazás felépítése?
  • 18.