Successfully reported this slideshow.
Your SlideShare is downloading. ×

Atoto.cz - Do pekla pro data a zpět [Lukáš Huňka] (5. sraz, Praha, 18.2.2016)

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Upcoming SlideShare
ResumeACG
ResumeACG
Loading in …3
×

Check these out next

1 of 15 Ad

Atoto.cz - Do pekla pro data a zpět [Lukáš Huňka] (5. sraz, Praha, 18.2.2016)

Download to read offline

Jak jsme začali získávat data a osvědčené tipy a triky pro hledání lepších cest.

Jak jsme začali získávat data a osvědčené tipy a triky pro hledání lepších cest.

Advertisement
Advertisement

More Related Content

More from Péhápkaři (20)

Advertisement

Atoto.cz - Do pekla pro data a zpět [Lukáš Huňka] (5. sraz, Praha, 18.2.2016)

  1. 1. Atoto.cz do pekla pro data a zpět Lukáš Huňka CTO Atoto.cz @hunaczech
  2. 2. První český porovnávač online supermarketů - Porovnáme všechno zboží všech providerů - Vybereme vám nejvýhodnějšího providera - Vylijeme košík - Pošleme odkaz - Profit !
  3. 3. Technologické pozadí projektu - Oddělení APP do Microservices (REST-API) - Vyhledávání, našeptávání, nahrazování (Elastic) - Backend - NETTE (co tu jako děláš kámo?), Kdyby, MySQL(Percona), Doctrine, REDIS, RabbitMQ - Testování - Nette/Tester, Codeception (!)
  4. 4. Symfony ass-savers Věci které používáme v naší APP a výrazně nás posouvají - Symfony/Console - Veškeré datové operace - Symfony/DomCrawler (Symfony/CSS-selector,Symfony/Browser-kit) - taky datové operace - Symfony/YAML
  5. 5. Teď to hlavní - DATA - 6 providerů=prodejců - denní aktualizace dat - jedna kompletní aktualizace dat = 56 815 položek - oddělený front-end od data-warehousu - několik parserů a downloaderů - různé vstupy - API (json), HTML (parsing) , manuální export (CSV)
  6. 6. Teď to hlavní - DATA po II. - co se s daty u nás děje - automatické třídění do Master kategorií - kontrola validity - doplňující vlastnosti - gramáže - jednotky apd. - parsery není jen na získání dat
  7. 7. Teď to hlavní - DATA po III. - ukládáme do Elasticu - místo hromadné reindexace -> pomáhá RabbitMQ - rabbit zvládne naplnit celou DB během 8 minut (16 consumerů) - na frontendu udržujeme data v MySQL jako fallback - primárně čerpáme z Elasticu
  8. 8. Teď to hlavní - DATA po IV. - úskalí více systémů - rozdílná data - synchronizace IDs - duplikace dat - provider upraví ID - delistuje a znovu zalistuje produkt - se změnou EANu nedelistuje starý produkt ale updatne EAN
  9. 9. Koloběh dat v Atoto - Import -> Data Warehouse -> ElasticSearch -> FrontEnd - v rámci DataWarehousu další operace: - trendy - vývoj ceny - napárování externích dat (fotky, popisy, složení atp.) - Synchronizace IDs mezi několika systémy - Kvůli dokončení objednávek u providerů
  10. 10. S čím jsme se potýkali - inkognito - nemožnost dohody s providery - čerpat data ale neupozornit na sebe a zároveň nenaštvat providera - HTML parsing - neakceptovatelný - celé stažení všech dat cca 5 hodin (pouhé stažení bez dalšího zpracování) - API parsing
  11. 11. Od prvních kroků k chůzi - Na začátku byla naše aplikace monolit (období hrubého prototypu) - Nic takového nechceme ! (a nechtějte, fakt !) - rozpadnutí do více oddělených microservices - reforma procesu získání dat (viz. další slide) - sestavení a vytvoření Partnerského API
  12. 12. Reforma procesu získávání dat Gateway - vstup data Imigrační - kontrola validity dat a známosti dat -> Známe -> Reality check (jak moc se liší data oproti stávajícím hodnotám) -> Neznáme -> Human validation (naše lidská továrna) ukládáme do Intelligence
  13. 13. Budoucnost dat - Integrace pomocí partnerského API - výlet do UK za klukama z Tesco IT - rychlá aktualizace pomocí nodeJS app - ještě větší sbírání trendů => větší množství dat - Co nás zajímá - YesSQL - Maria + Percona
  14. 14. H.R. okénko II - Q&A - Dotazy osobně nebo kdykoliv jindy na - lukas@atoto.cz - 607 049 258 (24@7) - Twitter - Facebook - Google+ - http://developer.atoto.cz - 20.000 Kč za tip na vývojáře
  15. 15. Konec :( I. Podívejte se napravo II. Pokud vidíte spícího člověka vzbuďte ho a řekněte mu ať tleská III.Podívejte se nalevo IV.Zopakujte bod II V.Tleskejte Díky za pozornost

×