11 giugno 2008
Progetto CARE
Ludovico Ferrara
Partner Technology Reply s.r.l.
Club TI Triveneto – Evento Grandi Moli di Dati
Reply
2
Millions of EURO
Revenue & People
18.6
33.3
60.3
77.1
86
112
144.7
230.2
277.2
1999
2000
2001
2002
2003
2004
2005
2006
2007
244
396
647
750
875
1011
1277
1925
2272
People
3
Headcount as at Dec. 31
Reply Characteristics
Autonomous and specialized Enterprises
Reply Companies share management philosophy,
Goals and management functional standards,
to guarantee quality, proficiency and effectiveness.
A strong team culture
Reply companies work together and join their
expertise aiming to optimize efficiency and reach
An increased market strenght.
5

Focalization

Methodology

Culture

Flexibility

Ethics

Reliability

Honesty

Transparency
Reply Companies
Reply Germany
6
Reply: 2 companies focused on Oracle’s proposition
> Focused on design and
development of Architetture
Service Oriented projects using
Oracle Fusion Architecture.
> Location in Milan, Turin, Rome,
Treviso
> “Tuned” with Oracle
Technology using the
certification program (OCA,
OCP, OCM) and joining to Beta
Site Program (Database, Oracle
Fusion Middleware).
7
> Focus on Design and Build up
solution for the extended enterprise
using Oracle eBusiness Suite
> Location in Milan, Rome, Treviso
> Functional skills on eBS modules.
> Technological skills in order to
implement vertical solution.
Some Milestones
Customer Satisfation Awards for eBusiness Suite
Largest Competence Center on Oracle Application in Italy
Certified Advantage Partner for eBS
OFM11g Beta Site
1996
1998
2000
2002
2004
2006
2008
Customer Excellence Partnering
OPN Innovation Award
Certified Advantage Partner (Technology)
Oracle Certified Partner (Technology)
First Beta Site (Oracle8) then 8i, 9, 10g and OAS Beta Server (Bpel, Esb)
Startup
8
8
Our Offer
Methodologies, Processes
SOA Methodology (SOA Maturity Model)
Process Design (BPA Suite)
Technological Stack
Technologies
Application Solutions
Enterprise Web2.0 (RIA)
BI & CPM
SOA
Identity & Access Management
Core Technologies
9
Customers
Application Integration
Architecture (AIA)
eBusiness Suite
OTM, Demantra, Agile PLM
Progetto CARE
10
11
Analytic
CRM
CARE
Platform
Operational CRM
Customer Analysis, Relation & Experience
CARE come supporto al Relation Management
MIDA
CARE
Informazioni anagrafiche storiche
Anagrafiche aggiornate
Target profilati selezionati
Esperienza del cliente
Valore del cliente
Esperienza del cliente
Informazioni sintetiche
sulla gestione e esiti
.....
.....
RELATION MANAGEMENT
(operatività di marketing)
ATTIVAZIONE
GESTIONE
ESITO
EVENTI
INFOS
RECLAMI
ASSISTENZA
ALTRO
ACQUISTA
NON ACQ.
VALUTA
SERVIZI
ALTRO
GALYLEO
PS8
INBOUND
OUTBOUND
OBS
12
GALYLEO
PS8
OBS
Customer Analysis, Relation & Experience
Relativamente ai consumatori vengono collezionate:
• le informazioni utilizzate dalle applicazioni di CRM
applicativo
• le informazioni utilizzate dalle applicazioni analitiche
(es.: score di Data Mining)
• le informazioni sui prodotti e i servizi e sulle relazioni di
proprietà/uso da parte del consumatore
• le informazioni relative alle iniziative di marketing, di
promozione prodotti e servizi
• le informazioni sui ritorni da parte dei consumatori alle
iniziative
• le informazioni sulle richieste e/o i contatti sui canali di
relazione
• le informazioni circa le risposte/azioni intraprese nei loro
riguardi
13
CARE: schema funzionale
Data
Browsing
And
Searching
Customer
Identity
Infos
Campaign
Mgr
Data
Mining
Tool
Contact
Mgr
[TBV]
Customer
Intelligence
Reporting
And
Analysis
Data
Quality
Data
Acquisition
Subsystem
and
Services:
Normalization,
Validation,
Matching
Runtime Services/Components
Data Browsing
Admin
Campaign mgmt
Contact mgmt [TBV]
Data edit services
Data browsing
and
searching services
C&P
data access
Campaign
definition
Admin
services
Target
defin.
Appointment
management
Report & analysis
engine
Data mining
engine
Agenda
Target extraction
schedule
P,S&C
data access
Data Mining
and
Analysis
Dealer
authorization
management
Data mart
access
Schemas / Meta Schemas
Data Acquisition
Territory,
Dictionary
14
Mapping,
Normalization,
Transformation,
Validation,
Loading
Matching
Rules
Rules
Customer
And
Consumer
SocioDemo
characteristics
Products,
Services,
Contacts
Tracking History
Campaign
Definition,
Redemption
Measures
Contact Management
[TBV]
Web Services Interface
Admin GUI and
Data Quality Management GUI
CARE Portal
CARE: Architettura logica acquisizione dati
Caricatore dati di prodotto,
servizio e contatto
DWI DNA: normalizzatore (1), generatore di
hash code
DWI PARTY: doblonatore e caricatore dati
anagrafico nella basedati
DWI EDM: mapping per formati interni
standard CARE (es.: MOVAN, MURF)
Preprocessing (es.: split dei files, padding)
15
Formato MURF
Formato
standard
interno
Liste di
alimentazione
Files di
alimentazione
Care
repository
(1) per alcuni mercati si usano algoritmi di normalizzazione di terze parti (es.: ASSESSO Datacare per il brasile)
CARE: software di base e prodotti
•
16
Oracle Database 10.2.0.3.0 Enteprise Edition
–
Data Mining Option
–
Partitioning Option
–
Oracle Workflow
•
Oracle Application Server 10.1.2.2.0 Enterprise Edition; relativamente alle sue
componenti viene utilizzato il conteiner java OC4J e le componenti runtime di
Oracle Discoverer
•
Oracle Discoverer 10.1.2 (in piano il passaggio ad Oracle BI EE)
•
Oracle Warehouse Builder 10.2.0.1
•
SPSS Clementine Server 10.1
•
Microfocus Cobol Server Express 4.0
•
Piattaforma di normalizzazione DWI costituita da:
–
Mappatura e configurazione flussi dati (modulo EDM)
–
Normalizzatore e codificatore hash (moduli specifici per mercato es.: DNA 5.0 per l’Italia oppure
DNA 5.0 con integrazione engine di normalizzazione ASSESSO di Datacare per il brasile)
–
Deduplica e caricamento dati DB (modulo PARTY)
–
User Interfaces per configurazione prodotti DWI (design time), per ricerca, navigazione e
aggionarmento delle tabelle del sottosistema di acquisizione anagrafica (run time)
Care: architettura fisica
17
Le dimensioni della base dati
•
•
Allocazione RDBMS produzione:
Allocazione RDBMS certificazione:
1800 Gb
1100 Gb
•
Consumatori (IT):
51,5 M
–
–
•
Aziende:
Privati
Veicoli (IT):
–
–
Gruppo FIAT
Concorrenza
4,5 M
47 M
52,5 M
22,5 M
30M
•
•
•
•
•
Ordini (IT):
Finanziamenti (IT):
Estensioni di garanzia(IT):
Interventi (garanzie, soccorsi, etc.):
Contatti(IT):
•
Per il mercato Italia: ca. 20 flussi dati e aggiornamenti di codifiche al
giorno; ca. 25 flussi acquisiti su base settimanale
18
9 M (800 K/anno)
3 M (77 K/anno)
1,6 M (77 K/anno)
17,5 M (1,5 M/anno)
38 M
Grandi moli di dati: il punto di vista applicativo
19
Design: capacity planning
• Spazio disco: definizione delle principali entità e
calcolo delle loro occupazioni
• Risorse elaborative DB server: definizione della
numerosità degli accessi ai dati secondo una
classificazione (complessi, medi e semplici);
interpolazione con i risultati dei test TPC
• Risorse elaborative Application Server:
definizione della numerosità dell’utenza e del
tipo e della frequenza di accesso al sistema;
interpolazione con i risultati dei test
SPECjAppServer2002
20
Design: modelli dati dedicati
Customer
Intelligence
Operational
DB
Customer
Intelligence
Data Mart
Data Mart
Analysis
Data Mining
Repository
DB
Data acquisition
engine
21
Data Information flows
DB application: set based vs row based
Set Based: il set di dati viene elaborato con un unica chiamata SQL.
• Vantaggi
–
–
•
prestazioni molto elevati
Codifica software molto strutturata
Svantaggi
–
–
–
L’anomalia su un singolo record invalida tutta l’operazione
Tracking delle operazioni più complesso
Codifica software più complessa
Per un utilizzo efficace, tale approccio richiede l’implementazione di uno step
propedeutico di trattamento dati per prevenire tutte le possibili cause di
anomalia.
Row Based: il set di dati viene elaborato con una chiamata SQL per ogni record.
• Vantaggi
–
–
–
•
Consolidamento dell’operazione sul singolo record (commit)
Semplicità di Tracking delle operazioni
Codifica software più semplice
Svantaggi
–
Prestazioni scarse nel caso di manipolazioni a blocco di grosse moli di dati
E’ un approccio indispensabile nelle situazioni dove a seconda dell’esito della
singola operazione si condiziona il passo successivo.
22
DB application: opzione Oracle Partitioning
Tabella partizionata: tabella nella quale i dati sono fisicamente
segmentati a seconda del valore della/e chiave/i di partizionamento.
Es.: Nelle operazioni di accesso ai dati, specificando la chiave di
partizionamento, si utilizzerà soltanto il relativo segmento e non tutta
la tabella.
•
Vantaggi
–
–
–
–
•
Svantaggi
–
–
–
23
Ricerche più rapide, soprattutto nelle situazioni in cui sia necessario un table
scan.
Svecchiamento della base dati più efficace (drop di singole partizioni)
Ogni partizione può avere caratteristiche di storage diverse
Distribuzione della tabella segmentata su Tablespaces diversi
Ricerche penalizzate nelle situazioni in cui non venga specificata la chiave di
partizionamento
Necessità di intervenire sulla struttura nelle situazioni in cui la chiave di
partizionamento assuma nuovi valori per i quali non era stata definita una
partizione
Il valore della chiave di partizionamento non è aggiornabile
DB configuration: l’uso del parallelismo
• Real Application Cluster: utilizzo del
parallelismo a livello di nodo server di
elaborazione
• Parallelizzazione applicativa: con il disegno di
una strategia opportuna per evitare i conflitti e la
contesa delle strutture dati è possibile lanciare
elaborazioni parallele che vengono risolte dal
server RDBMS
• Parallelizzazione del motore SQL: specie nel
caso di approcci Set Based il motore può
sfruttare l’architettura multiprocessore dei
server per parallelizzare l’accesso e la
monipolazione dei dati
24
DB configuration: utilizzo di Hints
• Il motore del database normalmente determina
autonomamente il miglior piano di esecuzione per la
risoluzione di una query.
• Il piano di esecuzione viene definito sulla base delle
statistiche calcolate periodicamente sui dati presenti
nelle diverse tabelle.
• Qualora si verifichino dei grossi cambiamenti nelle
tabelle rispetto alle statistiche il piano potrebbe non
essere più ottimale
• In alcuni casi è comunque necessario intervenire
manualmente definendo un piano alternativo
condizionando il comportamento del motore con
direttive che si chiamano hint.
• Questa attività è molto delicata e complessa, per cui
deve essere effettuata soltanto quando indispensabile.
25
DB configuration: utilizzo di Hints (esempio)
• Una tabella di staging, sulla quale è presente una
PK, è normalmente vuota. La statistica dice che
non ci sono record e quindi l’ottimizzatore non
può sfruttare l’indicizzazione della PK, in quanto
non ha informazioni per orientarsi.
• Una procedura carica massivamente dati sulla
tabella. Poichè l’indice sulla PK non viene usato
per la verifica di univocità, le prestazioni
degradano; all’aumentare dei record aumenta
anche il costo della ricerca sequenziale
• Impostando un hint che forzi sempre l’utilizzo
dell’indice sulla PK, si migliorano le prestazioni
sull’inserimento massimo dei record
26
DB configuration: data compression
E’ possibile configurare la compressione delle aree di
memorizzazione fisica dei dati su disco (Tablespace)
Questo meccanismo è stato utilizzato per l’ambiente di
certificazione, consentendo di poter replicare tutti i dati in
produzione con un costo di spazio disco ridotto
• Vantaggi:
– Riduzione dei costi: occupazione dello storage ridotta del 40% (da
1.8TB a 1.1TB)
– In determinati casi (operazioni di lettura, e di insert) aumento delle
performance
• Svantaggi:
– Nelle operazioni di aggiornamento degrado delle performance
– Maggiore complessità nelle operazioni di allineamento tra ambiente
di produzione e certificazione
27
Case Study: Data Mart Analysis
Data Mart Analysis:
caricamento integrale
settimanale
28
Fase
Note
Durata
0
MIDA:
Tecnologia SAS, basata su
file System
40 ore
1
CARE:
Tecnologia Oracle,
hardware partizionato
30 ore
2
CARE:
Tecnologia Oracle,
Hardware non partizionato
20 ore
3
CARE:
Tecnologia Oracle,
Hardware non partizionato,
Tablespace compression
19 ore
Gli impatti sulla Web Application
• Il modello dati è stato progettato in modo ottimale per il
suo trattamento (es.: informazioni nella loro forma più
aggiornata, uso della denormalizzazione, etc)
• Utilizzo dei meccanismi di cache delle componenti di
Object Relational Mapping
• Per le estrazioni utenti si realizza l’accesso ai dati in
background secondo i criteri di query selezionati e si
effettua un pre-calcolo della lista da estrarre (in xml). In
un secondo momento si trasforma (uso di xsl) la lista nel
struttura e nel formato specifico dell’estrazione richiesta
• Utilizzo di pull parser ovvero parser che consentono le
trasformazione di grandi documenti XML con un uso
limitato della memoria e compressione dei files per il
download
29
Q&A
Contact
Ludovico Ferrara
Partner Technology Reply s.r.l.
[email protected]
www.reply.it
30
Scarica

Reply progetto CARE - ppt 3.381 KB