SAP HANA Admin - Tablo Bölümü

Bölümlemeyi kullanarak, birden çok ana bilgisayar sisteminde sütun deposu tablolarını daha küçük tablolara bölebilirsiniz. Hatta bölümlemeyi kullanarak tabloları daha küçük daha yönetilebilir parçalara bölebilirsiniz. Bölümleme, DML SQL deyimleri kullanılarak yapılabilir.

Bir tablo bölümlendiğinde, her bölüm için farklı satır kümeleri içerir ve Bölümleme farklı algoritmalara göre yapılabilir - Karma Bölümleme, Tek Düzey veya çok düzeyli Bölümleme.

Tablo Bölümlemeyi kullanmanın avantajları aşağıdadır -

Bölümleme Budama

Belirli bir bölümde bir sorgunun analiz edilip edilemeyeceğini belirleyebilirsiniz. Bu yöntemi kullanarak, sistem üzerindeki yükü azaltabilir ve dolayısıyla yanıt süresini iyileştirebilirsiniz.

Example- Bir tabloyu yıla göre bölümlediğinizde, belirli bir yıla ait verileri analiz etmek için bir sorgu yürütülür. Belirli bir bölümü kullanabilirsiniz ve bu nedenle sorgu performansı geliştirilir.

Yük dengeleme

Tek tek bölümleri birden çok ana bilgisayarda bölebilirsiniz ve bu nedenle bir sorgu tek bir sunucu tarafından işlenmez, bu da tablo bölümlerini barındıran tüm sunucularda daha iyi yük dengeleme sağlar.

Boyut Sınırlaması

Bir sütun saklama tablosunda, girilebilecek maksimum satır sayısı 2 milyar civarındadır. Bir sütun tablosunun satırlarını birden çok bölüme dağıtarak bunun üstesinden gelebilirsiniz ve böylece her bölüm için boyut sınırı 2 milyara çıkarılır.

Geliştirilmiş Delta Birleştirme İşlemi

Delta birleştirme sırasında, veriler yalnızca bazı bölümler için değiştirilirse, delta birleştirmede daha az bölümü birleştirmeniz gerekir.

Sorguların Paralel İşlenmesi

Bölümleri kullanarak, birden çok sorguyu paralel olarak çalıştırabilir ve böylece yanıt süresini iyileştirebilirsiniz.

Şimdi paylaşım türlerini tartışalım.

Tek Seviyeli Bölümleme

SAP HANA sisteminde farklı türde tek seviyeli bölümleme mevcuttur -

  • Hash Bölümleme
  • Round Robin Bölümleme
  • Aralık Bölümleme

Karma bölümlemede, yük dengeleme gerçekleştirmek için satırlar eşit olarak dağıtılır. Bu Bölümleme türünde tablo içeriği hakkında ayrıntılı bilgiye ihtiyacınız yoktur.

Hash Partitioning ile karşılaştırıldığında, Round Robin Partitioning'de satırlar her partisyona eşit olarak dağıtılır ve yeni satırlar her partisyona eşit olarak atanır.

Round Robin kullanarak bir tablonun 4 bölümünü oluşturmak için aşağıdaki SQL sorgularını kullanabilirsiniz. Birincil anahtar tanımlanmamalıdır.

CREATE COLUMN TABLE TABLENAME (a INT, b INT, c INT) 
PARTITION BY ROUNDROBIN PARTITIONS 4

Bu komut bir tablonun 4 bölümünü oluşturacaktır.

CREATE COLUMN TABLE Table_Name (a INT, b INT, c INT, PRIMARY KEY (a,b)) 
PARTITION BY HASH (a, b) PARTITIONS 4

Bu, sütunda 4 bölüm oluşturacak a ve bve en az bir sütun belirtmeniz gerekir.

Aralık Bölümleme

Aralık bölümlemede, belirli değerler için özel bölümler oluşturursunuz ve sütunların bölümlenmesi için tablo içeriği hakkında derinlemesine bilgiye sahip olmanız gerekir.

Example - Her takvim ayı için bir bölüm oluşturma.

CREATE COLUMN TABLE TABLE_NAME (a INT, b INT, c INT, PRIMARY KEY (a,b)) 
PARTITION BY RANGE (a) 
(PARTITION 1 <= VALUES < 10, PARTITION 10 <= VALUES < 20, 
PARTITION VALUE = 50, PARTITION  OTHERS)

Bu 4 bölüm, bölüm aralığı için bir tane oluşturacaktır 1 ila 10, 2 nci , 10 ile 20 arasında, 3 üncü değeri 50 ve 4 th tüm diğer değerleri için.

Çok Düzeyli Bölümleme

Çok düzeyli bölümlemede, bölümleme sütunları olarak anahtar sütunları kullanmak için HASH ve RANGE tek seviyeli bölümlemenin sınırlamasının üstesinden gelebilirsiniz. Çok düzeyli bölümlemeyi kullanarak, birincil anahtar olmayan bir sütunu bölümleyebilirsiniz. En yaygın çok düzeyli bölümleme türüHASH-Range Partitioning.

Hash-Range çok düzeyli bölümlemede, yük dengelemeyi uygulamak için ilk düzeyde Hash bölümlemeyi ve zaman tabanlı bölümlemeyi uygulamak için ikinci düzeyde Aralık bölümlemeyi uygularsınız.

CREATE COLUMN TABLE Table_name (a INT, b INT, c INT, PRIMARY KEY (a,b))
PARTITION BY HASH (a, b) PARTITIONS 4,
RANGE (c) (PARTITION 1 <= VALUES < 10, PARTITION 10 <= VALUES < 20)

Birinci düzeyde Hash bölümlemeyi kullanmak yerine Round Robin bölümlemeyi de kullanabilirsiniz ve bu, Round Robin-Range multilevel partitioning.

CREATE COLUMN TABLE Table_name (a INT, b INT, c INT) 
PARTITION BY ROUNDROBIN PARTITIONS 4,
RANGE (c) (PARTITION 1 <= VALUES < 10, PARTITION 10 <= VALUES < 20)