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.”