hug france : hbase in financial industry par pierre bittner (scaled risk cto)
TRANSCRIPT
HBaseinFinancialServicesPierreBittner
@BittnerPierre
ParisHUGMeetup14/01/2016
SCALED RISK
ThèmesabordéslorsdeceTalk
- 1èrePartie:labanqueen2016- 2èmePartie:présentationd’HBase- 3èmePartie:« Schema Free »auservicedelafinance
SCALED RISK 2
Labanqueen2016
Labanquen’apaschangédepuisdesdécennies
- Comptecourant,pland’épargne,crédit,hypothèques,nous« consommons»labanquecommenosparents- Aprésent,nous« consommons»letransportdefaçonstrèsdifférentesgrâceàUber etBlablaCar- ToutcommeAirBnb achangénotrevisiondel’hôtellerie- Cettetransformationn’estpasencoresurvenuedanslabanque- Denouveauxacteurs,les« Fintech »,ontl’objectifde« révolutionner »labanquetraditionnelle
4SCALED RISK
Labanquedufutur?
- GoogleetFacebooksontdesagencesdepublicitéàl’instardePublicis- ApplePay,GoogleWallet etPayPal offrentdesmoyensdepaiementmaisn’enfontpaspourautantdesbanques- Quelimpactauralatechnologiesurlabanque?
Google’s disruption of financial services isjust getting started: Forrester
“Disruptors such as Google aren’t out to getyou” “Disruption is often a side effect of theirefforts to find a better way of doing something.”
5SCALED RISK
ExempledeFintech:Ripple etlespaiementsinternationaux
- Cettestartupainventésapropremonnaiedigitalepourréaliserdespaiementsàtraverslesfrontières- L’utilisationd’unecrypto-monnaiepermetàRipple d’effectuerletransfertrapidement,àbasprixetdelimiterlesrisquesdefraude
6SCALED RISK
- Devenirricheencréantsapropremonnaie?
- Ripple n’ajoutepasdefraissurlestransactions
- Ilserémunèresurl’augmentationdelavaleurdeleurmonnaie
2015:Prisedeconsciencedesbanques
7SCALED RISK
Lepoidsdu« Legacy »
- EasyJet etRyanAir ontétécapabledebouleverserlesecteurdutransportaérien- Ilsontétéconstruitssurdenouvellesplateformes,sansporterla« charge »dupassé- Architecturescomplexes,silosdedonnées,manqued’agilitéetcoûtsd’opérationsélevéspèsentsurlescapacitésd’innovationsdesbanques
8SCALED RISK
- Lesbanquessedoiventderéaliserleur« transformationdigitale »
QuellesinnovationsenFinance?
- EnquêteCapitalOnesurlesinnovationsenFinancedes3à5prochainesannées(Money2020- Oct 2015)
- Big DataAnalytics etpaiementsalternatifssontlesprincipauxvecteursd’innovationselonlesparticipants,devantlablockchain- LatransformationdigitaleabiendébutéenFinance.- Depuis2000,52%dessociétéscotéesduFortune500ontdisparuparF&Aoufaillite- Celaneveutpasdirequelesbanquestraditionnellesvontcomplétementdisparaitremaisellessedoiventd’innover.
HBasedanstoutça?
LaFinanceenquelques« Big »chiffres
- NewYorkStockExchangegénèreentre4-5TodedonnéesparJour- StressTestenBanquedeFinancement:6millionsd’opérations,750scénarios- 500Gbdedonnéesbrutset4milliardsdecalculsparjour
- MarchéBoursier:environ200kordresp.sec/1mp.secenpic- Accélérationgénéraledestraitementsetdesreportings
- Pourlestockagedevosdonnées,vousutiliseriezunSGBDR?HBase?
11SCALED RISK
HBaseenFinanceetailleurs
- Cohérenceplutôtquedisponibilitémaisavecindisponibilitéminimum
- Salesforce pourMerril LynchWealth Management- http://fr.slideshare.net/salesforceeng/hbase-at-salesforcecom
- Bloomberg– TheProblem is MediumData- Tempsderepriseaprèsincident(MTTR),Latencegénérale,Haute-disponibité- http://fr.slideshare.net/HBaseCon/case-studies-session-4a-35937605
- Etbeaucoupd’autres…
- Ailleurs:Yahoo,Facebook,Twitter,Meetup!
12SCALED RISK
HBase:Random Accesstoyour Planet-WideTransaction
- C’estlabasededonnéeHadoop- Release1.0enfévrier2015(Stable1.1.2)- InspiréedeBigTable deGoogle- NoSQL- Casd’usage:lectures/écriturestemps-réeldedonnéesunitaires- Hautdébit,Faiblelatence,Forteconcurrenced’accès- Paspourlesanalytiquescomplexes,lesfull-scan
- OpenSource,fortementconsistant,distribuée,non-relationel,scalable- Etlibredetoutschéma!
13SCALED RISK
HBaseenbref- « Wide-Column »store:chaquelignecontientunensembledeK/V
(!=key/valuestoreoucolumnar datastore)- Lestablessontdesespacesdenommages- Disposede« column family »pourlesgrouper
- ChaqueligneestidentifiéeparuneRowKey- Assureunaccèsrapideetladistributiondesdonnées
- Chaquecelluleporteun« timestamp »- API:4opérationsprimaires:Get,Put,Delete etScan- Traitementscôtésserveursaveclescoprosseurs- ArchitectureMaster<->Slave:HMaster /RegionServer
- LesRegionServers hébergentplusieursrégions- LestablessontrépartiessurplusieursRegions dansdesHFiles
14SCALED RISK
HBaseauservicedelaFinance
HBase:Modélisationdedonnées,challengesetopportunités
- Fast DataCompany &DataDriven Decision- Evénementsfinanciersetmultiplicitédesmodèlesè FlexibleStorage- Optimisationdestraitements:Sharding Strategy
- Workload Transactional /Analytics- Donnéesderéférences- Gestionsdesrelations:collectiond’entités
- AbusdeMarché&Vision360° desclients- ConsolidatedAuditTrail (CAT)
16SCALED RISK
Traced’exécutionsurmarchéactions
• 2OrdresAchat/Ventesurunmêmecarnetquise“matchent”,génèrentunprixetuneexécutionsil’ordretotalementrempli
- Order :OrderBook,Sender,ExtId,OrderType,Quantity,Direction,Price,Validity- Price: OrderBook,Price,ExecutedQty,Direction,ExtId1,ExtId2,BestAsk,BestBid- Exec : OrderBook,Sender,ExtId
• Exempledetrace:Order;AAPL;Agent75;3978;L;B;14;19;-1Order;AAPL;Agent11;3976;L;A;19;44;-1Price;AAPL;14;30;B;Agent75;3978;Agent11;3976;14;19Exec;Agent75;3978
17SCALED RISK
HBase:Wide-Column Store– Freeyour Schema!RowKey Column Family ColumnQualifier Timestamp Value
APPL-Agent11-3976-Order info MessageType 42007969375 OrderOrderBook 42007969375 AAPLSender 42007969375 Agent11ExtId 42007969375 3976OrderType 42007969375 LimitDirection 42007969375 BQuantity 42007969375 1Price 42007969375 39Validity 42007969375 -1
AAPL-Agent75-3978-Price info MessageType 42139416667 PriceOrderBook 42139416667 AAPLPrice 42139416667 14ExecutedQty 42139416667 30Direction 42139416667 HUAWEIExtId1 42139416667 Agent75-3978ExtId2 42139416667 Agent11-3976BestAsk 42139416667 14BestBid 42139416667 19
AAPL-Agent75-3978-Exec info MessageType 42139416667 ExecOrderBook 42139416667 AAPLExtId 42139416667 Agent75-3978
Cellule={row,cf,qualifier, timestamp}
Atomicitéparligne§ Verrousparligne§ TouteslesKVs pourun“row”
sontco-localiséesdansunerégion§ Stockageenmémoiredansun
régionserver
Pasdecontraintesurlesnomsdecolonnesoulesvaleurs.
18SCALED RISK
19
LaRowKeydanslaConceptiondesTables
NickDimiduk:« IndesigningHBasetables,therowkeyisthesinglemostimportantthing.Youshouldmodelkeysbasedontheexpectedaccesspattern.»
LesRowkeysdéterminentlaperformancelorsdel’interactionaveclestables,car:- lesRégionssontpartitionnéesparHBasesuivantdesintervallesdeRowKeys- LarépartitiondesHFiles dépendaussidesRowkeysainsiquedela
ColumnFamily.
RQ: - HBaseindexeuniquementlaRowKeypourtoutesleslignes.- LeslignessontmisesenordresdanslesrégionsselonleursRowKeys.
SCALED RISK
20
Row KeyDesign– Clustered Storagepourlesanalysestemps-réels
- OrganisationdesRowKeydefaçonhiérarchique- Toutesleslignesayantlamêmeracineformeuncluster
- Idéalementlesclustersserontstockéessurlamêmemachine(saufsigigantesque)- Lesmises-à-jourdansunmêmeclustersontplusefficaces- Performancedesjointurespourlestraitementsetanalysesauseind’unmêmecluster(pasdeSort-Merge)
AAPL
AAPL-Ag11 AAPL-Ag75
AAPL-Ag11-35-Order AAPL-Agent75-65AAPL-Ag11-35-Exec
Distribution desRowkey
GOOG
GOOG-Ag11
GOOG-Ag11-35-Order
OrganisationduStockage
OrderBook (AAPL)Agent(AAPL– Ag11)Order (AAPL– Ag11– 35)Price(AAPL– Ag11- 35)Exec (AAPL– Ag11- 35)
Agent(AAPL- Ag75)Order (AAPL– Ag75– 65)
AAPL-Ag11-35-Price
OrderBook (GOOG)Agent(GOOG– Ag11)Order (GOOG– Ag11– 35)
RowKey :« OrderBook– Sender– ExtId – Type »
SCALED RISK
21
LesSplitsdansHBase- Un« Split »dansHBaseconsisteàdécouperlatableenplusieursrégions- HBaserépartielestablesautomatiquementpuislesdéplaceverslesautresnœudsune
foisqu’oncommenceàinsérerungrandvolumededonnées . Exemple:
- UnseulSplitauniveaudelalettre«J»=>« aumilieu »pourbienrépartirlacharge
- Onpeuteffectuerun« Split »manueldansHBaseàtraversleHBaseShell:Split‘table-name’
Commande: n_splits =100create ‘table_name', 'cf',{SPLITS=>(1..n_splits).map {|i|"row-#{1000+i*(9999-1000)/n_splits}"}}
- Possibilitédeparamétrerlesplitparscriptlorsdelacréationdelatable:
SCALED RISK
Static &ReferenceData:Nested Entities
ColumnFamily
Column (qualifier) Value
cf1
TradeId 123TradeVersion 1TradeDate 03/09/2015
TradeQuantity 100
Side Buy
pGLE {Equity,Société Générale, Euronext, CAC40, 45€}
mXPAR {Euronext Paris, France, Cash}
- Exemple: Définition du produit sur une transaction (Trade <-> Product – Relation n-m)- Objectif: Eviter les étapes jointuresèDénormalisation des données- Utilisationde « Nested entities » avec la RowKey comme qualifier et ses attributs commevaleur
Le qualifier du produitest son identifiant
GET ‘trade’, ‘123’GET ‘trade’, ‘123’, {COLUMN=>’pGLE’}
Le qualifier est l’iddu marché
Tous les attributs d’unenested entities sontregroupés dans la mêmecellule
TradeId commerowkey
Possibilitédefiltrersurlequalifier« Produit »lorsdesscans 22
Compositions:Nested Entities encore…
23
- Exemple: Ensemble des flux de paiement sur une Transaction (Trade <- Cashflow– relation 1-n)- HBase: Les colonnes peuvent être définis dynamiquement à l’exécution- Un ensemble de K/Vs peuvent représenter une sous-entité ou un ensemble…
1
n
SCALED RISK
Compositions:Nested Entities suite…
RowKeyColumnFamily
ColumnQualifier Timestamp Value
GU002 info Counterpart 42139416667 HSBCWay 42139416667 BuyValueDate 42139416667 25/10/2014MaturityDate 42139416667 25/01/2015Notional 42139416667 5333581,33Ccy 42139416667 EURCashFlow_1_Date 42139416667 25/10/2014CashFlow_1_Flow 42139416667 -5333581,33CashFlow_2_Date 42139416667 25/01/2015CashFlow_2_Flow 42139416667 5333581,33
RowKeyColumnFamily
ColumnQualifier Timestamp Value
GU002_Trade info Counterpart 42139416667 HSBCWay 42139416667 BuyValueDate 42139416667 25/10/2014MaturityDate 42139416667 25/01/2015Notional 42139416667 5333581,33Ccy 42139416667 EUR
GU002_1_CF info Date 42139416667 25/10/2014Flow 42139416667 -5333581,33
GU002_2_CF info Date 42139416667 25/01/2015Flow 42139416667 5333581,33
- L’agencement est identique si on utilise des entités individuelles (1 row par entité)- Une seule ROW garantie les écritures et un stockage dans unmême HFile
è Performance à la lecture pour les traitements- Préparation pour persister le block et limiter les contentions (BulkLoad;BufferedMutator)
- Stratégie à utiliser pour le stockage des stress tests (ex: agrégation des calculs de risque)
Consolidated AuditTrail :HBaseVersionning
Ref Id Previous LastVersion Event EventDate Sender Order
Book Way Price Qty
AA001 1127 No Create 13/1/1510:10 Agent12 GOOG Buy 100 250
AA001 2356 1127 No Decrease 13/1/1517:59 Agent12 GOOG Buy 1 250
AA001 5467 2356 Yes Increase 13/1/1518:01 Agent12 GOOG Buy 100 250
RowKeyColumnFamily
ColumnQualifier Timestamp Value
AA001 info EventDate 42007969375 13/1/15 10:0042017690972 13/1/1517:5942018475694 13/1/1518:01
OrderBook 42007969375 GOOGSender 42007969375 Agent12Way 42007969375 BuyQuantity 42007969375 250Price 42007969375 100,00
42017690972 1,0042018475694 100,00
Event 42007969375 Create42017690972 Increase42018475694 Decrease
- TraçabilitédesévénementsestobligatoireenFinance;- Nouvellesréglementations imposentunmarquageàlaµspourleHFTavec±100µsecdedivergence!- LesEventssontsourcesd’information pour l’anti-fraudeetlaconnaissanceclient!
- SGBD:Logiqueàmettredansl’applicatifè TableHistoriqueouFlagLastVersion (SQLUpdaten’aidepas!)
Agent12asks for250GOOGat
100$at10:10am
Agent12decreases askprice forGOOGto1$at5:59pm
Agent12increasesask price onGOOGto100$at18:01pm
Pourconclure
HBaseenFinance:Cen’estqueledébut
- « Schema Free »offredenombreusespossibilitésdemodélisationspourrépondreauxproblématiquestraitements/analysesdesbanques- Gestiondesschémasresteaucœurdelaproblématique
- LesdonnéesfinancièressontstructuréesmaissontévolutivesethétérogènesèBesoindeschémaexpliciteetdynamique- Métamodèleversionnépourdécrirelemodèleetl’associéauxdonnées
- DataSharding:CohérenceetisolationdestraitementsèTimestamp +External consistenttransactionlog
- Accèsauxdonnées:Indexsecondaire/Search- As-Of/As-At (bi-temporalité)
SCALED RISK
Questions?Merci!PierreBittner- @BittnerPierre