Home / MAKALELER / Veri Ambarı / Partitioning in Data Warehouse

Partitioning in Data Warehouse

Dwh sistemlerinin ayırtedici özelliği Partitioning
Dwh sistemlerinin önemli ayırtedici özelliklerinden biri olan partitioning konusuna biraz değinelim.

Partitioning faydaları ve bazı özellikleri:
Partitioning, büyük tablolarda datanın bir kısmını büyük tablodan ayrı bir objeymiş gibi alabilmemize olanak verir (Partition pruning).
SELECT * FROM table_a PARTITION(p_1);
Büyük tabloların join işlemlerinde performans artışı sağlar (partition wise join).
DDL işlemlerinin kolaylıkla yapılmasını, datanın en kısa sürede kullanıcılara erişimini sağlar.
Partition birleştirilmesi veya bölünmesi ile sistem yapısının kolaylıkla değiştirilmesine olanak verir (Sistem esnekliği).
ALTER TABLE table_a MERGE PARTITIONS p_1, p_2 INTO PARTITION p_3;
Önceden değindiğim Partition exchange loading yöntemiyle arşivleme veya etl sürecinde yükleme yapılabilir. (http://etlveveriambari.blogspot.com/2011/10/partition-exchange-loading.html)
ALTER TABLE table_a EXCHANGE PARTITION p_1 WITH TABLE table_p1;
Partition ların farklı tablespace lere yerleştirilmesi ile eski partitionların bulunduğu tablespace sadece okunabilir hale getirilerek performans artışı ve okunabilir tablespace lerin backup sırasında geçilmesi sağlanabilir.
ALTER TABLE table_a MOVE PARTITION p_1 TABLESPACE tbs_1 NOLOGGING COMPRESS;
Geçmiş partition tabloya yüklendikten sonra datada değişiklik ihtimali az ise sorgu performansının yükselmesi için sıkıştırılabilir ( compress edilebilir).
ALTER TABLE table_a MODIFY PARTITION p_1 COMPRESS FOR ALL OPERATIONS;

İlk geliştirme safhasında dwh sistemlerinde data, günlük olarak yüklenip geçmiş data tutuluyorsa veya varolan tablo 2 GB’dan büyükse partitioned tablo oluşturulması tavsiye ediliyor, fakat etl süreci ve server konfigürasyonuna göre testlerden sonra karar verilmesi daha iyi olabilir.

Partition oluşturulacak alan, datamartlar gibi kullanıcının sorguladığı tablolarda sorgulama kriterlerine göre tarih bazında, stage ve dwh tablolarında yükleme kolaylığına göre farklı alanlarda seçilmelidir.

Çoğunlukla kullanılan 3 tip partition kullanılır;

Range Partitioning: En sık görülen örneği tarih bazında parçalanmış fact tablolardır. Partition olarak seçilen alan tarih formatı bazında 01-Dec-2011 veya sayısal değere dönüştürülmüş 20111201 formatında olabilir. Range partition oluşturulurken VALUES LESS THAN ifadesi ile verilen değer, üst sınır, önceki partition ise alt sınırı oluşturur. Tablodaki ilk partitiondan daha küçük değerler için yeni bir partition ancak tablo yapısı değiştirilerek oluşturulabilir, fakat daha küçük değerler ilk partitiona insert edilebilir.

List Partitioning: Kullanıcı tanımlı bir liste bazında tablonun parçalanmasına dayanır, tarih bazında partition ve kaynak sistem bazında subpartition oluşturulmuş bir fact tablo örnek verilebilir. Bir gün için tabloya eklenen subpartitionlar aşağıdaki gibi olsun;

P_20111201_MARMARA
P_20111201_IC
P_20111201_AKDENIZ
P_20111201_KARADENIZ
P_20111201_EGE
P_20111201_DOGU
P_20111201_GUNEYDOGU
P_20111201_YURTDISI

Hash Partitioning: Belirli bir alan üzerinden partition oluşturulamayan veya geçmiş data bulundurmayan tablolar için primary key üzerinden hashing algoritmasıyla tablonun 32-16 veya 8 eşit parçaya bölünmesidir. Çoğunlukla büyük dimension tablolarda tercih edilir.

Partitioning yöntemleri, List partititoning örneğinde olduğu gibi ihtiyaca göre birlikte kullanılabilir. (Composite Partitioning; range-list)

Partition isimleri ve üst sınırları all_tab_partitions ve all_tab_subpartitions sistem tablolarından görülebilir;

SELECT *
FROM all_tab_partitions
WHERE table_owner = ‘SH’ AND table_name = ‘SALES’

SELECT *
FROM all_tab_subpartitions
WHERE table_name = ‘SAMPLE_REGIONAL_SALES’ AND table_owner = ‘HR’

Kaynaklar:

http://docs.oracle.com/cd/E11882_01/server.112/e25523/toc.htm
http://docs.oracle.com/cd/E11882_01/server.112/e25554/toc.htm

About Jale Ozgur

PL/SQL , ETL, BI Developer

İlginizi Çekebilir

Udemy Online Veri Ambarı Eğitimi

Yoğun emekler sonucunda “Türkçe” Veri Ambarı Eğitimi Udemy’de yayın hayatına başladı.Ömür boyu erişim,soru cevap bölümleri …

Bir Cevap Yazın