SAP HANA Admin - Tabellenpartition
Mithilfe der Partitionierung können Sie Spaltenspeichertabellen in kleinere Tabellen in einem System mit mehreren Hosts aufteilen. Sie können Tabellen mithilfe der Partitionierung sogar in kleinere, besser verwaltbare Teile unterteilen. Die Partitionierung kann mithilfe von DML-SQL-Anweisungen erfolgen.
Wenn eine Tabelle partitioniert ist, enthält sie unterschiedliche Zeilen für jedes Teil. Die Partitionierung kann auf der Grundlage verschiedener Algorithmen erfolgen - Hash-Partitionierung, einstufige oder mehrstufige Partitionierung.
Im Folgenden sind die Vorteile der Verwendung der Tabellenpartitionierung aufgeführt:
Partitionieren Beschneiden
Sie können bestimmen, ob eine Abfrage in einer bestimmten Partition analysiert werden kann. Mit dieser Methode können Sie die Systemlast reduzieren und damit die Reaktionszeit verbessern.
Example- Wenn Sie eine Tabelle basierend auf dem Jahr partitionieren, wird eine Abfrage ausgeführt, um die Daten für ein bestimmtes Jahr zu analysieren. Sie können eine bestimmte Partition verwenden, wodurch die Abfrageleistung verbessert wird.
Lastverteilung
Sie können einzelne Partitionen auf mehrere Hosts aufteilen. Daher wird eine Abfrage nicht von einem einzelnen Server verarbeitet. Dies führt zu einem besseren Lastausgleich auf allen Servern, auf denen Tabellenpartitionen gehostet werden.
Größenbeschränkung
In einer Spaltenspeichertabelle können maximal 2 Milliarden Zeilen eingegeben werden. Sie können dies überwinden, indem Sie die Zeilen einer Spaltentabelle auf mehrere Partitionen verteilen. Daher wird die Größenbeschränkung für jede Partition auf 2 Milliarden erhöht.
Verbesserter Delta Merge-Betrieb
Wenn während der Delta-Zusammenführung Daten nur für einige Partitionen geändert werden, müssen Sie bei der Delta-Zusammenführung weniger Partitionen zusammenführen.
Parallele Bearbeitung von Abfragen
Mithilfe von Partitionen können Sie mehrere Abfragen parallel ausführen und so die Antwortzeit verbessern.
Lassen Sie uns nun die Arten der Partionierung diskutieren.
Einstufige Partitionierung
Im SAP-HANA-System stehen verschiedene Arten der einstufigen Partitionierung zur Verfügung:
- Hash-Partitionierung
- Round Robin Partitionierung
- Bereichspartitionierung
Bei der Hash-Partitionierung werden Zeilen gleichmäßig verteilt, um einen Lastausgleich durchzuführen. Sie benötigen keine detaillierten Informationen zum Tabelleninhalt in diesem Partitionierungstyp.
Im Vergleich zur Hash-Partitionierung werden beim Round Robin-Partitionieren Zeilen gleichmäßig auf jede Partition verteilt und neue Zeilen jeder Partition gleichermaßen zugewiesen.
Um 4 Partitionen einer Tabelle mit Round Robin zu erstellen, können Sie die folgenden SQL-Abfragen verwenden. Es sollten keine Primärschlüssel definiert werden.
CREATE COLUMN TABLE TABLENAME (a INT, b INT, c INT)
PARTITION BY ROUNDROBIN PARTITIONS 4
Dieser Befehl erstellt 4 Partitionen einer Tabelle.
CREATE COLUMN TABLE Table_Name (a INT, b INT, c INT, PRIMARY KEY (a,b))
PARTITION BY HASH (a, b) PARTITIONS 4
Dadurch werden 4 Partitionen in der Spalte erstellt a und bund Sie müssen mindestens eine Spalte angeben.
Bereichspartitionierung
Bei der Bereichspartitionierung erstellen Sie dedizierte Partitionen für bestimmte Werte und sollten über fundierte Kenntnisse des Tabelleninhalts für die Partitionierung von Spalten verfügen.
Example - Erstellen einer Partition für jeden Kalendermonat.
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)
Dadurch werden 4 Partitionen erstellt, eine für den Partitionsbereich 1 bis 10, die zweite für 10 bis 20, die dritte für den Wert 50 und die vierte für alle anderen Werte.
Mehrstufige Partitionierung
Bei der mehrstufigen Partitionierung können Sie die Einschränkung der einstufigen HASH- und RANGE-Partitionierung überwinden, um Schlüsselspalten als Partitionierungsspalten zu verwenden. Mithilfe der mehrstufigen Partitionierung können Sie eine Spalte partitionieren, die kein Primärschlüssel ist. Die häufigste Art der mehrstufigen Partitionierung istHASH-Range Partitioning.
Bei der mehrstufigen Hash-Range-Partitionierung implementieren Sie die Hash-Partitionierung auf der ersten Ebene, um den Lastausgleich zu implementieren, und die Range-Partitionierung auf der zweiten Ebene, um die zeitbasierte Partitionierung zu implementieren.
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)
Anstatt die Hash-Partitionierung auf der ersten Ebene zu verwenden, können Sie auch die Round Robin-Partitionierung verwenden 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)