Administrator SAP HANA - Partycja tabeli
Korzystając z partycjonowania, można podzielić tabele magazynu kolumn na mniejsze tabele w systemie z wieloma hostami. Możesz nawet podzielić tabele na mniejsze, łatwiejsze w zarządzaniu części za pomocą partycjonowania. Partycjonowanie można wykonać za pomocą instrukcji DML SQL.
Kiedy tabela jest podzielona na partycje, zawiera inny zestaw wierszy dla każdej części, a partycjonowanie można wykonać w oparciu o różne algorytmy - partycjonowanie mieszane, partycjonowanie jednopoziomowe lub wielopoziomowe.
Oto zalety korzystania z partycjonowania tabel -
Przycinanie partycji
Możesz określić, czy zapytanie może być analizowane w określonej partycji. Korzystając z tej metody, można zmniejszyć obciążenie systemu, a tym samym poprawić czas odpowiedzi.
Example- Podczas dzielenia tabeli na podstawie roku wykonywane jest zapytanie w celu przeanalizowania danych z określonego roku. Można użyć określonej partycji, co zwiększa wydajność zapytań.
Równoważenie obciążenia
Możesz podzielić poszczególne partycje na wiele hostów, dzięki czemu zapytanie nie jest przetwarzane przez jeden serwer, co skutkuje lepszym równoważeniem obciążenia na wszystkich serwerach obsługujących partycje tabel.
Ograniczenie rozmiaru
W tabeli magazynu kolumn maksymalna liczba wierszy, które można wprowadzić, wynosi około 2 miliardy. Możesz temu zaradzić, dystrybuując wiersze tabeli kolumnowej na wielu partycjach, a zatem limit rozmiaru jest zwiększany do 2 miliardów dla każdej partycji.
Ulepszona operacja łączenia delta
Podczas scalania delta, jeśli dane są modyfikowane tylko dla niektórych partycji, musisz scalić mniej partycji w scalaniu delta.
Równoległe przetwarzanie zapytań
Korzystając z partycji, możesz uruchamiać wiele zapytań równolegle, a tym samym poprawić czas odpowiedzi.
Omówmy teraz rodzaje partioningu.
Partycjonowanie jednopoziomowe
W systemie SAP HANA dostępne są różne typy partycjonowania jednopoziomowego -
- Hash Partitioning
- Partycjonowanie okrężne
- Podział zakresu
W partycjonowaniu z użyciem skrótu wiersze są rozdzielane równo w celu równoważenia obciążenia. Nie potrzebujesz szczegółowych informacji o zawartości tabeli w tym typie partycjonowania.
W porównaniu do partycjonowania z haszowaniem, w przypadku partycjonowania metodą Round Robin wiersze są równo rozdzielane do każdej partycji, a nowe wiersze są równo przypisywane do każdej partycji.
Aby utworzyć 4 partycje tabeli przy użyciu metody Round Robin, możesz użyć następujących zapytań SQL. Nie należy definiować kluczy podstawowych.
CREATE COLUMN TABLE TABLENAME (a INT, b INT, c INT)
PARTITION BY ROUNDROBIN PARTITIONS 4
To polecenie utworzy 4 partycje tabeli.
CREATE COLUMN TABLE Table_Name (a INT, b INT, c INT, PRIMARY KEY (a,b))
PARTITION BY HASH (a, b) PARTITIONS 4
Spowoduje to utworzenie 4 partycji w kolumnie a i bi musisz określić co najmniej jedną kolumnę.
Podział zakresu
W partycjonowaniu zakresu tworzysz dedykowane partycje dla określonych wartości i powinieneś mieć dogłębną wiedzę na temat zawartości tabeli dla kolumn partycjonowania.
Example - Tworzenie jednej partycji na każdy miesiąc kalendarzowy.
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)
Spowoduje to 4 przegrody, jedną dla zakresu stref 1 do 10, 2 II od 10 do 20, 3 rd o wartości 50 i 4 p dla wszystkich innych wartości.
Partycjonowanie wielopoziomowe
W przypadku partycjonowania wielopoziomowego można przezwyciężyć ograniczenie partycjonowania jednopoziomowego HASH i RANGE, aby używać kolumn kluczy jako kolumn partycjonowania. Korzystając z partycjonowania wielopoziomowego, można podzielić kolumnę, która nie jest kluczem podstawowym. Najpopularniejszym typem partycjonowania wielopoziomowego jestHASH-Range Partitioning.
W wielopoziomowym partycjonowaniu z użyciem skrótu na pierwszym poziomie implementuje się partycjonowanie typu hash, aby zaimplementować równoważenie obciążenia i partycjonowanie zakresu na drugim poziomie, aby zaimplementować partycjonowanie oparte na czasie.
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)
Zamiast używać partycjonowania Hash na pierwszym poziomie, możesz również użyć partycjonowania Round Robin i jest znane jako 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)