SlideShare a Scribd company logo
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 ?

More Related Content

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Ó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
  • 3. 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 (?)
  • 4. 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
  • 5. 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
  • 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 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)
  • 8. 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)
  • 9. 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
  • 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 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 #
  • 13. 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
  • 14. 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
  • 15. 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
  • 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?