190 likes | 303 Views
Netezza – to pravé řešení pro analytický datový sklad – technický pohled na řešení Martin Pavlík 23. Listopadu 2011. Masivní paralelní architektura “ Rozděl a panuj ”. MPP architektura Koncept “Shared Nothing” Rozdělení práce na několik menších úloh
E N D
Netezza – to pravé řešení pro analytický datový sklad – technický pohled na řešení Martin Pavlík 23. Listopadu 2011
Masivní paralelní architektura“Rozděl a panuj” • MPP architektura • Koncept “Shared Nothing” • Rozdělení práce na několik menších úloh • Velká úloha je rozdělena vertikálně do série menších úloh • Menší úlohy běží paralelně / naprosto nezávisle • Pro každou menší úlohu je přiděleno stejné množství fyzických zdrojů • Komunikace mezi jednotlivými úlohami je jen na začátku a konci • Přínosy • Obrovské úlohy jsou vykonány ve významně kratším čase • Maximální využitelnost zdrojů
ODBC 3.X JDBC Type 4 OLE-DB SQL/92 Client ETL Server DBA CLI Source Systems SOLARIS AIX 3rd PartyApps HP-UX TRU64 LINUX WINDOWS High Performance Loader Netezza TwinFin Appliance S-Blade 1 Processor & streaming DB logic SQL Compiler Query Plan Optimize Admin 2 S-Blade Execution Engine Processor & streaming DB logic S-Blade 3 Processor & streaming DB logic Ÿ Ÿ Ÿ High-PerformanceDatabase Engine Streaming joins, aggregations, sorts High-Speed Loader/Unloader 920 S-Blade Front End Processor & streaming DB logic Massively Parallel Intelligent Storage Network Fabric SMP Host
Client ETL Server DBA CLI Source Systems SOLARIS AIX 3rd PartyApps HP-UX TRU64 LINUX WINDOWS High Performance Loader Netezza TwinFin Appliance S-Blade 1 Snippets Processor & streaming DB logic SQL Compiler Query Plan Optimize Admin 3 2 1 1 1 1 1 2 2 2 2 3 3 3 3 1 2 3 SQL SQL 2 S-Blade Execution Engine Processor & streaming DB logic S-Blade 3 Processor & streaming DB logic Ÿ Ÿ Ÿ High-PerformanceDatabase Engine Streaming joins, aggregations, sorts High-Speed Loader/Unloader 920 S-Blade Front End Processor & streaming DB logic Massively Parallel Intelligent Storage Network Fabric SMP Host
Zpracování toku dat jednotkou S-Blade DatováCache Jádro (Core) FPGA Jádro CPU Selekce, Autorizace Komplexní ∑ Joiny, Aggr, atd. Dekomprese dat Projekce Select sex, age, count(*) From MultiBillionRowTable Where BirthDate < ’01/01/1967’ And PostCode like ’SW%’ Group by sex, age; • Každý S-Blade obsahuje 8 n-tic s vlastním: • Diskem • Datovou cache • Jádrem FPGA jednotky • Jádrem CPU
Client ETL Server DBA CLI Source Systems SOLARIS AIX 3rd PartyApps HP-UX TRU64 LINUX WINDOWS High Performance Loader Asymmetric Massively Parallel Processing™ Netezza TwinFin Appliance Consolidate S-Blade 1 1 2 3 1 1 1 2 2 2 3 3 3 Processor & streaming DB logic SQL Compiler Query Plan Optimize Admin ODBC 3.X JDBC Type 4 OLE-DB SQL/92 2 S-Blade Execution Engine Processor & streaming DB logic S-Blade 3 Processor & streaming DB logic Ÿ Ÿ Ÿ High-PerformanceDatabase Engine Streaming joins, aggregations, sorts, etc. High-Speed Loader/Unloader 920 S-Blade Front End Processor & streaming DB logic Massively Parallel Intelligent Storage Network Fabric SMP Host
Specifikace IBM Netezza 1000-12 Kapacita (uživatelská data): 128 TB Scan rate: 144 TB/h Load Speed: 0.5 TB/h Počítáme s kompresním poměrem 1:4
Propojení S-Blades a disků Níže uvedené údaje platí pro half-rack systém IBM Netezza 1000-6, který má 6 S-Blades • 5 ze 6 S-Blades vlastní 8 disků • Každý S-Blade má v sobě: • 8 jader CPU • 8 jader FPGA • => CPU:FPGA:disk je 1:1:1 • 6. S-Blade vlastní pouze 6 disků • 2 jádra CPU a FPGAjsounevyužitá • Protože 2 disky zůstavají volné do zálohy
Disk mirroring & řešení výpadku disku • V systému jsou použity 1TB disky • Ty jsou rozděleny na 1/3 • Všechna uživatelská data jsou replikována z Primary do Mirror oblasti • Výpadek disku je transparentní pro uživatelské dotazy • Na Spare (volný) disk jsou automaticky zreplikovaná data„nemocného“ disku • S využitím odpovídajícího disku z páru (jen se otočí Primary a Mirror oblasti)
Řešení výpadku jednotky S-Blade • Disky, které patřily „nemocné“ jednotce S-Blade jsou rovnoměrně rozdistribuovány zbývajícím jednotkám S-Blade • Read-only dotazy jsou automaticky restartovány • Všechny zápisové operace jsou přerušeny, označeny jako aborted a spustí se znovu od místa posledního checkpointu
Distribuce dat a její dopad na výkonnost • Data jsou na jednotlivé disky (a potažmo tedy i jádra CPU a FPGA) distribuována pomocí hashování dle tzv. distribučního klíče • Rovnoměrná distribuce je základem vysoké výkonnosti • Implicitní distribuce je RANDOM
Využití tzv. zónových map • Data jsou na disk ukládána po tzv. extentech • Má velikost 3 MB • Pro sloupce tabulek jsou udržovány tzv. zónové mapy • Udržují informace o minimální a maximální hodnotě v daném extentu
Jak mohouzónové mapy omezit čtení z disku Cust_ID = 300 Ext 1 Vysoká selektivita je především u tabulek, které jsou setřízené podle atributu z where klauzule Ext 3
Clustered Based Tables a jejich přínos • Jsou řešením pro časté situace, kdy se v … • Ve WHERE klauzulích • V JOINech … • … používá více než 1 atribut Data jsou v tabulce seřazena dle křivky vyplňující Hilbertův prostor 8 hodnot 2 hodnoty 4 hodnoty …. 2 atributy …. 3 atributy
Clustered Base Tables – ilustrační příklad 1 2 3 4 A B C D Myšlenka tzv. Clustered base tables je založena na křivce vyplňující hilbertův prostor
Implicitní výkonnost je vysoká Zónové mapy Clustered Base Tables Distribuční klíče Koncepty, které posouvají výkonnost ještě o kus dál Výkonnost systému je extrémně vysoká i bez nich Masivní paralelismus a FPGA
Realizace transakcí v Netezze sloupce Záznam je INSERTován Původní záznam je označen jako smazaný Záznam je UPDATEován Do tabulky je vložen nový záznam Záznam je DELETEován I „změněný“ záznam je označen jako smazaný