Netezza Teknolojisine Presentation Name Kısa Bir Yolculuk Name Surname Ayhan Önder NetezzaTitle Teknik Uzmanı 0 IBM Corporation
Saatlerce süren sorgular düzenli optimizasyon Mevcut Veri Ambarlarının yaklaşık %70 i farklı tiplerde performans problemleri yaşamakta. - Gartner Magic Quadrant yetkin personel gereksinimi aylarca süren geliştirmeler
Geleneksel sistemlerle Veri Ambarı çözümü
Netezza Yaklaşımı
Netezza AMPP mimarisi IO Stream SQL FPGA CPU Result Yüzlerce snippet çalıştırıcısı ile doğrusal ölçeklenebilirlik Advanced Analytics Memory IO Stream SQL FPGA CPU Memory IO Stream SQL FPGA CPU Memory Disks BI Result Result SQL Host Result Network s Fabric IBM Netezza Appliance Hosts SQL ODBC.X JDBC Type 4 OLE-DB SQL/9 ETL Loader Uygulamalar
IBM Netezza 000 Appliance Disk Katmanı SMP Hosts Blades (s) Kullanıcı verisi Ek ve Yedekleme Bölümleri Yüksek Hızlı Veri Akışı SQL Derleyici Sorgu Planlayıcı Optimize edici Yönetim İşlemci & Akan veri mantığı Yüksek performanslı veritabanı motoru, streaming joins, aggregations, sorts vb.
Netezza AMPP mimarisi SOLARIS AIX TRU64 HP-UX Client WINDOWS Netezza 000 Appliance LINUX ODBC.X JDBC Type 4 OLE-DB SQL/9 & SQL SQL Compiler Compiler & Execution Engine Query Query Plan Plan & Optimize Optimize Admin Admin ETL Server DBA CLI Source Systems High-Performance Database Engine Streaming joins, aggregations, sorts High-Speed Loader/Unloader 90 & Front End rd Party Apps High Performance Loader SMP Host Network Fabric Massively Parallel Intelligent Storage
Netezza AMPP mimarisi SOLARIS AIX TRU64 HP-UX Client WINDOWS Netezza 000 Appliance LINUX s & SQL SQL Compiler Compiler & Execution Engine Query Query Plan Plan & Optimize Optimize Admin Admin ETL Server DBA CLI Source Systems High-Performance Database Engine Streaming joins, aggregations, sorts High-Speed Loader/Unloader 90 Front End & rd Party Apps High Performance Loader SMP Host Network Fabric Massively Parallel Intelligent Storage
Derlenmiş kodlar, bütünüyle Paralel bir mimaride çalıştırılır select c_name, sum(o_totalprice) price from customer, orders where select c_name, sum(o_totalprice) price from customer, orders where o_orderkey in (select l_orderkey from lineitem where o_orderkey in (select l_orderkey from lineitem where o_orderkey=l_orderkey l_shipdate>='0-0-995' and /********* Codeand **********/ o_orderkey=l_orderkey and l_shipdate>='0-0-995' and /********* Code **********/ l_shipdate<='0--995') and c_custkey=o_custkey group by c_name;" l_shipdate<='0--995') and c_custkey=o_custkey group by c_name;" test_tim >test.out void GenPlan(CPlan *plan, char *bufstarts,char *bufends, bool lastcall) { test_tim >test.out void GenPlan(CPlan *plan, char *bufstarts,char *bufends, bool lastcall) { c_name c_name price price --------------------+------------------------------+----------Customer#000000796 856.97 Customer#000000796 856.97 // // Customer#0000005 9680.56 Customer#0000005 9680.56 // Setup for next loop (nodes 00..07) // Setup for next loop (nodes 00..07) Customer#00000949 580.98 Customer#00000949 580.98 // // Customer#0000009 85.9 Customer#0000009 85.9 // node 00 (TScanNode) // node 00 (TScanNode) Customer#000005656 597. Customer#000005656 597. TScanNode *node0 = (TScanNode*)plan->m_nodeArray[0]; TScanNode *node0 = (TScanNode*)plan->m_nodeArray[0]; Customer#00000586 69.0 Customer#00000586 69.0 // For ScanNode: // For ScanNode: Customer#00000600 67000.9 Customer#00000600 67000.9 TScan0 *Scan0 = BADPTR(TScan0*); TScan0 *Scan0 = BADPTR(TScan0*); Customer#0000064 59589.8 Customer#0000064 59589.8 CTable *tscan0 = plan->m_nodearray[0]->m_result; CTable *tscan0 = plan->m_nodearray[0]->m_result; Customer#0000065 4454.9 Customer#0000065 4454.9 char *nullsscan0p = BADPTR(char *); char *nullsscan0p = BADPTR(char *);.. // node 0 (TRestrictNode) real // node 0 (TRestrictNode) real 00000000000000000000000000000000 00000000000000000000000000000000 TRestrictNode *node = (TRestrictNode*)plan->m_nodeArray[]; user TRestrictNode 0000000000000000000000000000000 *node = (TRestrictNode*)plan->m_nodeArray[]; user 0000000000000000000000000000000 // node 0 (TProjectNode) sys // node 0 (TProjectNode) sys 00000000000000000000000000000000 00000000000000000000000000000000 TProjectNode *node = (TProjectNode*)plan->m_nodeArray[]; TProjectNode *node = (TProjectNode*)plan->m_nodeArray[]; 0000000000000000000000000000000000000 0000000000000000000000000000000000000 // node 0 (TSaveTempNode) // node 0 (TSaveTempNode) 00000000000 00000000000 TSaveTempNode *node = (TSaveTempNode*)plan->m_nodeArray[]; TSaveTempNode *node = (TSaveTempNode*)plan->m_nodeArray[]; // For SaveTemp Node: // For SaveTemp Node: 0m0.55s 0m0.55s 0m0.00s 0m0.00s 0m0.000s 0m0.000s
Ölçeklenebilir Mimari : IBM Netezza
Bileşenleri 4 GB DRAM SAS Expander Module Dual-Core FPGA Intel Quad-Core.4 GHz CPU IBM BladeCenter Sunucusu Netezza VT Hızlandırıcısı
Netezza Veritabanı Hızlandırıcısı, İş Paylaşımı Memory CPUs FPGA
Akan Veri İşlemesi FPGA Core CPU Core Stream via Zone Map Decompress Project Restrict Visibility SQL & Advanced Analytics From From Select Where Group by Select SelectIlce, Ilce,Yas Yas,,Cinsiyet, Cinsiyet,count(*) count(*)from FromMilyarlarcaKayitIcerenTablo MilyarlarcaKayitIcerenTabloWhere WhereDogumTarihi DogumTarihi< < 0/0/960 0/0/960 And Andililin in ( Istanbul, ( Istanbul, Ankara ) Ankara )Group by Ilce, OrderOrder by Ilce, byyas, Ilce,Cinsiyet Yas, Cinsiyet ) Group byyas, Ilce,Cinsiyet Yas, Cinsiyet
Netezza AMPP mimarisi SOLARIS AIX TRU64 HP-UX Client WINDOWS Netezza 000 Appliance LINUX Consolidate ODBC.X JDBC Type 4 OLE-DB SQL/9 & SQL SQL Compiler Compiler & Execution Engine Query Query Plan Plan & Optimize Optimize Admin Admin ETL Server DBA CLI Source Systems High-Performance Database Engine Streaming joins, aggregations, sorts, etc. High-Speed Loader/Unloader 960 Front End & rd Party Apps High Performance Loader SMP Host Network Fabric Massively Parallel Intelligent Storage
Netezza AMPP mimarisi IO Stream SQL FPGA CPU Result Yüzlerce snippet çalıştırıcısı ile doğrusal ölçeklenebilirlik Advanced Analytics Memory IO Stream SQL FPGA CPU Memory IO Stream SQL FPGA CPU Memory Disks BI Result Result SQL Host Result Network s Fabric IBM Netezza Appliance Hosts SQL ODBC.X JDBC Type 4 OLE-DB SQL/9 ETL Loader Uygulamalar
ro B (mir Disk Yüzeyine Bakış r) Par Pa Swap tition rtition Partitio Core A n rt ry) Pa (prima ition
Zone Maps: Gereksiz veri trafiğini önlemek Tablodaki alanlara ait min ve maksimum değerler diskteki her extend için hesaplanmaktadır Veri yükleme, güncelleme ve silme işlemlerinde zone maps otomatik olarak güncellenir Yükleme / silme / güncelleme performasından ödün verilmez
Zone Maps: Gereksiz veri trafiğini önlemek Aşağıdaki örnekte sadece. disk bölümü (extent) verileri okunuyor olacaktır. Extent Extent Extent
Verilerin disk yüzeyinde organize edilmesi select MUSTERI, TUTAR from SATIS where YIL = 009 or YIL = 00 and URUN = LOTUS CBT benzer verileri disk yüzeyinde birbirine yakın bölümlere yerleştirirerek optimum sıralı okumayı sağlar Mevcut tablo üzerinde gerçekleşir ve ekstra bir yer kaybı söz konusu olmaz Netezza Clustered Base Table Tarih Bazlı Yüklenen bir Tablo 008 Lotus IM Rational Tivoli IM Rational Tivoli Lotus IM Tivoli Rational Lotus Tivoli Rational Lotus IM Tarih Ürün IM 0 Tivoli Lotus 0 0 Tarih 008 008 008 009 009 009 009 00 00 00 00 0 0 0 0 Tivoli 00 Tivoli 009 Tivoli 008 IM 00 Lotus 00 Lotus 009 Lotus 008 IM 009 Rational 0 Rational 00 Rational 009 Rational IM 008 008 Ürün
Clustered Base Tables: Örnek ORDER BY C, C Extent. Extent. Extent. A A A A 4 B B B B 4 C C C C 4 D D D D 4 ORGANIZE ON C, C 0 A A B B 4 C 5 D 6 D 7 C B 8 C 9 D A 0 D 4 C 4 B 4 B 4 A 5 A 4 Çok boyutlu verileri optimum doğrusal sıraya sokar D C 4 Arka planda Hilbert Curve Algoritması kullanılmaktadır
Veri hayat döngüsü için farklı çözümler IBM Netezza 00 IBM Netezza 000 High Capacity Giriş Seviyesi Data Warehouse Sorgulanabilir Arşivleme Departmantal Test, Geliştirme Ortamı Yüksek Performanslı Analitik TB to 0 TB TB to.5 PB 00 TB to 0 PB
IBM Netezza 000 Ölçekleme 0...... 000-48... 000-000-6 000-000-4 4 48 96 9 84 960 Kapasite (TB) 8 6 64 8 0 Sıkıştr ı m a (TB) 64 8 56 5 80 s Kapasite = Kullanıcı verisi alanı Sıkıştırma = Sıkıştıma sonrası kullanıcı verisi alanı 000-0
Teşekkürler Soru ve Cevaplar