Klarna och Big Data Erik Zeitler [email protected] Innehåll • • • • Presentation Klarna och Big Data Klarnas data infrastructure team Lambdaarkitekturen Erik Zeitler Disputerade på dataströmhanteringssystem 2011 scsq-plr: Linear Road Benchmark 600 512 500 400 300 200 100 0 64 1 1.5 2.5 5 Google 2007 Sedan 2012 tech lead på Klarna Volume Velocity Variety Veracity “How many TB?” Volume Velocity Variety Veracity “How many MB per second?” “How fast must we respond on new data?” Volume Velocity Variety Veracity “How many data sources?” “How is data represented?” “How do we need to process the data?” Volume Velocity Variety Veracity Har informationen tillräcklig kvalitet? ”Can I trust the data?” Fraud, Typo, Measurement error, data model violations Big Data-tillämpningar på Klarna • Hur vi använder big data för att skapa enkla och trygga betalningar • Ett par exempel: • Säkerhetsbedömning vid köp • Förbättra conversion rate • Vad leder till köpbeslut? Målet: win-win för konsument och e-handlare Automatisk säkerhetsbedömning vid köp Conversion rate • A/B-testning • Hur interagerade e-handlaren med Klarna Checkout? • Förlorade vi konsumenter? När? • Kan vi förhindra det? • Hur informerar vi bäst konsumenterna om våra villkor? Automatisera insikterna Klarna Data Infrastructure Team • Startade hösten 2012 – På min inrådan: ”Förbättra Klarnas datahantering” • Analyserbart • Skalbart • Automatiserbart • Bygger, underhåller och anpassar Data Vault – Cloudera Hadoop i produktion sedan december 2012 – En av Klarna Internal Core Services • 9 pers (1 DM, 1 SE/SM, 2 SE/TL, 5 SE) – – – – Handleder exjobb regelbundet Aktiva i Klarnas Technical Advisory Board Assisterar med data science, bygga transformationer Aktiviteter utanför Klarna: open source-bidrag, föredrag • HDFS Hadoop: Open Source-system för hantering av Big Data • MapReduce Google GFS + MapReduce publicerades 2004 Yahoo byggde open source Hadoop 2005 • Ecosystem • Hive • Data warehouse: ”Extended subset” of SQL • Batch SQL execution • • • • • • • • Pig: Data flow language ”eats all” Hadoop streaming: Massively parallel shell script HBase: distributed k/v store with versioning and Time-To-Live Oozie: scheduler of batch jobs Flume: distributed, reliable, and available data collection + aggregation Sqoop: Batch input/output of RDBMS data Mahout: Machine Learning Hadoop Security: Kerberos! Plan • Hadoop är ett stort ekosystem – Struktur? • Krav och arkitektur ger form – Skalbart • Klarna har aggressiva tillväxtambitioner – Robust • Användarfel, hårdvarufel – Spårbart • Lätt att felsöka – undvik ”mörk materia” – Lättanvänt • Analytiker ska själva snabbt kunna utveckla och produktionssätta – Compliant • Följa lagar och avtal för datahantering Data Vault: Klarnas Hadoopsystem • • • • RDBM DB S MQ MQ > 2 år i produktion > 100 TB flera diskkrascher 0 problem! Data Modellers Risk Analysts Business Analysts Data Scientists Data Vault: Klarnas Hadoopsystem RDBM DB S MQ MQ transformation DB Data Vault: Klarnas Hadoopsystem RDBM DB S MQ MQ DB Implementation 1. Lambdaarkitektur – – Robust. Brutalt robust! En förutsättning för 2...6 2. Versionshantering av indata – Evolution hos datakällorna 3. Versionshantering av transformationer – Spårbarhet, jämförbarhet 4. Paketering av transformationer – Enkelhet i utveckling 5. Testning av transformationer – Analytikerna felsöker själva, tar bättre ansvar för felfri kod 6. Fortlöpande leverans av transformationer – Snabbt i produktion med uppdateringar Produktivitet, kvalitetssäkring, kontinuerlig förbättring λ fundamenta Mutability • Ändringar i data är tillåtet • Risk för fel Kund Skuld Kund Skuld Erik 1000 Erik 10000 Pelle 500 Pelle 500 Immutability • CRUD • Bara Create och Read • Ändringar är inte tillåtna. Bara Händelser! • Fånga alla händelser i en logg • Varje händelse motsvarar en förändring • Kan alltid återställa Feltolerans! Kund Tidpunkt Köp Erik Pelle 1337328000 1000 1337522000 500 Kund Erik Pelle Erik Tidpunkt 1337328000 1337522000 1354796000 Köp 1000 500 9000 Mutable: tabell Immutable: händelselogg Mutable: tabell Immutable: händelselogg + materialiserade vyer! Mutable: tabell Immutable: händelselogg + materialiserade vyer! Indatasilor Indata är källan till sanning Varje indatahändelse är oföränderlig! Recomputation Räkna alltid om allt från början. Då blir det lättare att bygga transformationer. Då blir det färre fel! Transformation = funktion(all data) Transformation → Materialiserad vy transformation Materialiserad vy Varje materialiserad vy räknas regelbundet om från början över oföränderliga händelser Immutability + Recomputation Oföränderliga händelser + Räkna alltid om allt från början Inga transformationer skadar indata Jättelätt att skriva transformationer, lätt att felsöka! Versionshanterade transformationer + λ flera transformationer parallellt! Kapacitetsproblem? Köp fler datorer! Immutability + Recomputation + Versioning + Distributed Infrastructure 1. Oföränderliga händelser 2. Räkna alltid om allt från början 3. Versionshanterade transformationer 4. Stor datorkapacitet Inga transformationer skadar indata Jättelätt att skriva nya transformationer, lätt att felsöka Blir det fel i den nya transformationen, återanvänd den gamla Tunga transformationer över stora datamängder går snabbt Klarnas analytiker kan obehindrat produktionssätta nya transformationer. Utan vår inblandning! Integritetsfrågor för Klarna • Avtal – Inte ge bort eller sälja vidare data • Persondata, riskbedömningar, köpdata • Regler – Bokföringslagen m.m. – Datainspektionen, Finansinspektionen • Privacy By Design – Data Vault har Retention policy för varje datakälla – HBase: Time To Live för varje rad • Pågående arbete: – Storskaligt syntetiskt data för utveckling Teamet – igen • 9 pers (1 DM, 1 SE/SM, 2 SE/TL, 5 SE) – Handleder exjobb regelbundet • Svårt hitta arbetskraft Måste lära upp juniora – Aktiva i Klarnas Technical Advisory Board • Data Vault interagerar med alla Klarnas avdelningar och tjänster – Assisterar med data science, bygga transformationer • Icke-trivial verksamhet • Fortlöpande arbete: Automatisera och underlätta för användarna – Aktiviteter utanför Klarna: open source-bidrag, föredrag • Ny teknik vi har allt att vinna på idéutbyte Var står vi nu? • “Really motivates me to do even more with Hadoop at Klarna.” • “We are in the best possible spot to make our data work.” • “It is super awesome that our risk team releases new versions of the transformations themselves.”