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