1 / 22

Partisi dalam Data Warehouse

Partisi dalam Data Warehouse. Wiratmoko Yuwono. Pengantar. Datawarehouse seringkali berisi data yang besar dan membutuhkan teknik untuk mengatur tabel yang besar ini dan untuk mendapatkan performa query yang bagus pada beberapa gabungan tabel yang besar . Diskusi : Tipe partisi

baby
Download Presentation

Partisi dalam Data Warehouse

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. PartisidalamData Warehouse WiratmokoYuwono

  2. Pengantar • Datawarehouseseringkaliberisi data yang besardanmembutuhkanteknikuntukmengaturtabel yang besarinidanuntukmendapatkanperforma query yang baguspadabeberapagabungantabel yang besar. • Diskusi : • Tipepartisi • Partition-Wise Joins • Maintenance partisi • Partisidan sub partisikolomdan key • Batas PartisiuntukRange Partitioning • Index partisi

  3. 1. TipePartisi • Range Partitioning • Hash Partitioning • List Partitioning • Composite Partitioning

  4. Range Partitioning • Range partitioning memetakandata kepartisiberbasisrentangnilaipadasebuah key partisi. • Contoh : CREATE TABLE sales_range (salesman_id NUMBER(5), salesman_name VARCHAR2(30), sales_amount NUMBER(10), sales_date DATE) COMPRESS PARTITION BY RANGE(sales_date) (PARTITION sales_jan2000 VALUES LESS THAN(TO_DATE('02/01/2000','DD/MM/YYYY')), PARTITION sales_feb2000 VALUES LESS THAN(TO_DATE('03/01/2000','DD/MM/YYYY')), PARTITION sales_mar2000 VALUES LESS THAN(TO_DATE('04/01/2000','DD/MM/YYYY')), PARTITION sales_apr2000 VALUES LESS THAN(TO_DATE('05/01/2000','DD/MM/YYYY')));

  5. Hash Partitioning • Hash partitioning memetakandata kepartisiberbasisalgoritma hashing dimana Oracle Mengaplikasikannyakedalampartisi key yang andaidentifikasi. • Algoritma hashing mendistribusikanbarissecara rata kedalampartisi yang disediakan, denganmemberikanukuranpartisi yang sama. • Hash partitioning adalahmetode ideal untukmendistribusikan data secara rata pada device yang berbeda, khususbilamana data bukanbersifathistorikal.

  6. Hash Partitioning • Contoh CREATE TABLE sales_hash (salesman_id NUMBER(5), salesman_name VARCHAR2(30), sales_amount NUMBER(10), week_no NUMBER(2)) PARTITION BY HASH(salesman_id) PARTITIONS 4;

  7. List Partitioning • List partitioning bergunabilamanaandadapatmengelompokanpartisi data dalamurutan list • Contoh : CREATE TABLE sales_list (salesman_id NUMBER(5), salesman_name VARCHAR2(30), sales_state VARCHAR2(20), sales_amount NUMBER(10), sales_date DATE) PARTITION BY LIST(sales_state) (PARTITION sales_west VALUES('California', 'Hawaii') COMPRESS, PARTITION sales_east VALUES('New York', 'Virginia', 'Florida'), PARTITION sales_central VALUES('Texas', 'Illinois'));

  8. Composite Partitioning • Andadapatmenggabungpartisi data pada range, hash dan list partitioning, inidinamakan composite partitioning.

  9. 2. Partition-Wise Joins • Partition-wise joins mengurangiwaktu query response time denganmeminimalkanpertukaran data padaeksekusiparalel servers dimanaeksekusi join dilakukansecarapararel. Inisecarasignifikanmengurangiwakturespondanmemperbaikipenggunaan resource CPU dan memory. • Partition-wise joins ada 2 tipeyaitu full ataupartial.

  10. Full Partition-Wise Joins • Full partition-wise join membagi large join kedalamsmaller joins diantarasepasangpartisidari 2 buah join tabel. Untukmenggunakan feature ini, andaharusmeng-equipartisidikeduatabelpada join key. • Sebagaicontoh, pada large join diantaratabelsales dantabel customer padakolomcustomerid. Query " mencarisemua records dari customer yang membelilebihdari 100 articles padaQuarter 3 tahun1999"

  11. Full Partition-Wise Joins: Hash-Hash • SQL-nyaSbb : SELECT c.cust_last_name, COUNT(*) FROM sales s, customers c WHERE s.cust_id = c.cust_id AND s.time_id BETWEEN TO_DATE('01-JUL-1999', 'DD-MON-YYYY') AND (TO_DATE('01-OCT-1999', 'DD-MON-YYYY')) GROUP BY c.cust_last_name HAVING COUNT(*) > 100; Large join ini typical dalamdata warehousing . keseluruhantabel customer dijoinkandengansatuquarter padasales data. Dalam large data warehouse, iniberartiMenjoinkanjutaanbaris. Metodejoin yang digunakanpadakasusinijelas hash join. Andadapatmengurangiwaktuprosesdarihash join inibilamanakeduabuahtabeldiequipartitionedpadakolomcustomerid. Enableskan full partition-wise join.

  12. Full Partition-Wise Joins: Hash-Hash • Iniadalahmetode yang sederhana: tabel customers dansales dipartisidengan hash kedalam16 partisi, padakoloms_customeriddanc_customerid.

  13. Full Partition-Wise Joins: (Composite-Hash)-Hash • Metodeiniadalahvariasidarimetode hash-hash. Tabelsales adalahtipikalcontohdaritabel yang menyimpan data histori. • Sebagaicontoh, asumsikanandainginmempartisitabel sales kedalam 8 partisidengan range padakoloms_salesdate.Jugaasumsikanandamempunyai 2 tahun data dan 1 partisimempresentasikan 1 quarter (1 quarter=3 bulan). • Partisitabel sales dengan range padas_salesdate • Dan kemudianbuatsubpartisipadatiappartisidenganhash padas_customerid using 16 subpartisidaritiappartisi, total menghasilkan128 subpartisi.

  14. Full Partition-Wise Joins: (Composite-Hash)-Hash

  15. Full Partition-Wise Joins • Andabisagunakanmetode yang lain sesuaidengankasusnya, spt : - Full Partition-Wise Joins: (Composite-List)-List - Full Partition-Wise Joins: (Composite-Composite (Hash/List Dimension) - Full Partition-Wise Joins: Range-Range and List-List - Full Partition-Wise Joins: Range-Composite, Composite-Composite (Range Dimension)

  16. Partial Partition-Wise Joins • Oracle dapatmenggunakan partial partition-wise joins hanyapadaparalel. Tidakseperti full partition-wise joins, partial partition-wise joins hanyamempartisisatutabeldalam join key, tidakkedua-duanya. • Untukmengeksekusi partial partition-wise join, Oracle secaradinamismerepartisitabel yang lain • Berdasarkanreferensitabel yang dipartisi. Ketikatabel yang lain direpartisi, makaeksekusinyamiripdengan full partition-wise join. • Padakondisi join Primary dan Foreign Key, partisihanya foreign key saja, karenabiasanyatabel yang berisi foreign key lebihbanyaktransaksididalamnya.

  17. Partial Partition-Wise Joins: Hash-List

  18. Partial Partition-Wise Joins: Hash-List • Contohmetodesederhanapadapartial partition-wise join adalahmempartisitabelsales dengan hash padas_customerid. Jumlahpartisimencerminkanmaksimumderajatpararelproses. • Padacontohjumlahpartisipadatabel sales berjumlah 16

  19. Partial Partition-Wise Joins • Andabisagunakanmetode yang lain seperti • Partial Partition-Wise Joins: Composite contoh : gunakan range partisipadatabel sales dikoloms_salesdate, kemudian sub partisidengan hash padakoloms_customerid - Partial Partition-Wise Joins: Range

  20. KeuntunganPartition-Wise Joins • Mengurangi Communications Overhead • Mengurangi Memory Requirements

  21. TUGAS • Dari desain DW diatas, buatpartisitabelnya, Dan Capture hasilnya, dandikumpulkan

  22. BERSAMBUNG MINGGU DEPAN

More Related