Klarna och Big Data Erik Zeitler erik.zeitler@klarna.com
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 500 400 300 200 100 0 1 1.5 2.5 5 64 512 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 MapReduce Ecosystem Hive Hadoop: Open Source-system för hantering av Big Data 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! Google GFS + MapReduce publicerades 2004 Yahoo byggde open source Hadoop 2005
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 S Data Modellers Risk Analysts Business Analysts Data Scientists MQ MQ > 2 år i produktion > 100 TB flera diskkrascher 0 problem!
Data Vault: Klarnas Hadoopsystem RDBM S MQ MQ transformation DB
Data Vault: Klarnas Hadoopsystem RDBM S DB MQ MQ
1. Lambdaarkitektur Robust. Brutalt robust! En förutsättning för 2...6 2. Versionshantering av indata Evolution hos datakällorna Implementation 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 Pelle 500 Erik 10000 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 1337328000 1000 Pelle 1337522000 500 Kund Tidpunkt Köp Erik 1337328000 1000 Pelle 1337522000 500 Erik 1354796000 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 Materialiseradvy 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 Regler Persondata, riskbedömningar, köpdata 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.