Confronto di prestazioni fra DBMS Relazionali e Verticali

Transcript

Confronto di prestazioni fra DBMS Relazionali e Verticali
 Università degli Studi di Modena e Reggio Emilia Facoltà d’Ingegneria “Enzo Ferrari” _____________________________________________________________________________ Corso di Laurea in Ingegneria Informatica (DM 270/04) Confronto di prestazioni fra DBMS Relazionali e Verticali Tutor: Chiar.mo Prof Sonia Bergamaschi Candidato: Gianluca Farinelli ______________________________________________________________________________ Anno Accademico 2012/2013 1/12 Row Oriented VS Column Oriented •  Row Oriented salva i dati come sezione di righe •  Column Oriented salva i dati come sezione di colonne 2/12 •  Vantaggi nella lettura dei dati: evita di leggere attributi non utilizzati •  Svantaggio nell’inserimento e modifica dei dati Obiettivo: valutare sperimentalmente le prestazioni dei due DBMS 3/12 Column Oreinted DBMS: VERTICA Fondata nel 2005 da Stonebraker dal 2011 ad HP Sviluppa DBMS e software analitico Disegnato per distribuire memoria fisica e per sfruttare il parallelismo delle query 4/12 Diviso in due differenti strutture di memoria: •  Write-­‐Optimized-­‐Storage per un rapido inserimento dati •  Read-­‐Optimized-­‐Storage contiene tutti dati del database Tuple Mover: •  MoveOut copia i dati dal WOS al ROS •  MergeOut riorganizza i dati nel ROS 5/12 DATA SET di Valutazione Data Warehouse di un negozio di vendite online e al dettaglio •  14 tabelle •  813 MB su VERTICA e 1,06 GB su mySQL •  Diviso in 3 schema 6/12 DBMS a confronto Row Oriented •  mySQL •  SO: Windows 7 x64 •  RAM: 8GB •  HDD: 80GB •  CPU: 1 core Column Oriented •  VERTICA •  SO: CentOS x64 •  RAM: 8GB •  HDD: 80GB •  CPU: 1 core 7/12 Confronto di prestazioni tra un DBMS Verticale e un RDBMS 4.Selezione delle vendite in uno stato 18,000 16,000 SELECT DISTINCT s.product_key, p.product_description FROM store.store_sales_fact s, public.product_dimension p WHERE s.product_key = p.product_key AND s.product_version = p.product_version AND s.store_key IN ( SELECT store_key FROM store.store_dimension WHERE store_state = 'MA') ORDER BY s.product_key; 14,000 12,000 10,000 8,000 6,000 4,000 2,000 0,000 mySQL VERTICA 3.Selezione dei clienti col maggior incasso annuo per genere SELECT customer_name, annual_income FROM public.customer_dimension WHERE (customer_gender, annual_income) IN (SELECT customer_gender, MAX(annual_income) FROM public.customer_dimension GROUP BY customer_gender); Indici su customer_gender, annual_income 0,450 0,400 0,350 0,300 0,250 0,200 0,150 0,100 0,050 0,000 mySQL mySQL index VERTICA 8/12 Selezione di molti attributi appartenenti allo stesso record Aggiornamento di valori 1,600 0,120 1,400 0,100 1,200 0,080 1,000 0,800 0,060 0,600 0,040 0,400 0,020 0,200 mySQL mySQL Index Vertica 0,000 Update Emplyee 0,000 mySQL mySQL index VERTICA Update Product Inserimento di nuovi record nelle tabelle 0,060 0,050 0,040 mySQL 0,030 VERTICA 0,020 mySQL index 0,010 0,000 Insert Product Insert Sale Insert Employee 9/12 45 40 35 30 25 Indici mySQL 20 mySQL VERTICA 15 10 Schema Public 1 date_dimension 2 product_dimension 3promotion_dimenison 4customer_dimension 5employee_dimension 6shipping_dimension 7vednor_dimension 8warehouse_dimension 9inventory_factfact 5 0 0 2 4 6 8 10 Gli algoritmi di compressione di VERTICA permettono di risparmiare il 25% di spazio in più su disco e fino al 71% nel caso siano presenti indici 1400 1200 1000 Indici mySQL 800 600 mySQL 400 VERTICA 200 0 store_dimension store_sales_fact store_order_fact 10/12 Conclusioni •  I DBMS verticali sono avvantaggiati nella selezione di dati da poche colonne appartenenti a tabelle diverse e, grazie a specifici algoritmi di codifica, riescono ad ottimizzare lo spazio occupato dai dati e a limitare i cicli di I/O per operare su questi ultimi •  I DBMS relazionali sono avvantaggiati nelle operazioni di modifica dei dati e, se indicizzati correttamente, possono competere coi DBMS verticali ma necessitano di hardware più costoso per garantire prestazioni equivalenti per interrogazioni. 11/12 GRAZIE PER L’ATTENZIONE 12/12