Administrateur SAP HANA - Partition de table

À l'aide du partitionnement, vous pouvez diviser les tables de stockage de colonnes en tables plus petites dans un système hôte multiple. Vous pouvez même diviser les tables en parties plus petites et plus faciles à gérer en utilisant le partitionnement. Le partitionnement peut être effectué à l'aide d'instructions SQL DML.

Lorsqu'une table est partitionnée, elle contient différents ensembles de lignes pour chaque partie et le partitionnement peut être effectué en fonction de différents algorithmes - partitionnement par hachage, partitionnement à un niveau ou à plusieurs niveaux.

Voici les avantages de l'utilisation du partitionnement de table -

Partitionnement élagage

Vous pouvez déterminer si une requête peut être analysée dans une partition particulière. En utilisant cette méthode, vous pouvez réduire la charge sur le système et ainsi améliorer le temps de réponse.

Example- Lorsque vous partitionnez une table en fonction de l'année, une requête est exécutée pour analyser les données d'une année particulière. Vous pouvez utiliser une partition spécifique et par conséquent, les performances des requêtes sont améliorées.

L'équilibrage de charge

Vous pouvez diviser des partitions individuelles sur plusieurs hôtes et par conséquent, une requête n'est pas traitée par un seul serveur, ce qui se traduit par un meilleur équilibrage de charge sur tous les serveurs hébergeant des partitions de table.

Limitation de taille

Dans une table de stockage de colonnes, le nombre maximum de lignes pouvant être saisies est d'environ 2 milliards. Vous pouvez surmonter ce problème en distribuant les lignes d'une table de colonnes sur plusieurs partitions et, par conséquent, la limite de taille est augmentée à 2 milliards pour chaque partition.

Opération de fusion Delta améliorée

Pendant la fusion delta, si les données ne sont modifiées que pour certaines partitions, vous devez fusionner moins de partitions dans la fusion delta.

Traitement parallèle des requêtes

En utilisant des partitions, vous pouvez exécuter plusieurs requêtes en parallèle et ainsi améliorer le temps de réponse.

Parlons maintenant des types de partionining.

Partitionnement à un seul niveau

Il existe différents types de partitionnement à un niveau disponibles dans le système SAP HANA -

  • Partitionnement de hachage
  • Partitionnement à la ronde
  • Partitionnement de plage

Dans le partitionnement Hash, les lignes sont réparties de manière égale pour effectuer l'équilibrage de charge. Vous n'avez pas besoin des informations détaillées sur le contenu de la table dans ce type de partitionnement.

Par rapport au partitionnement par hachage, dans le partitionnement circulaire, les lignes sont également réparties sur chaque partition et de nouvelles lignes sont également affectées à chaque partition.

Pour créer 4 partitions d'une table à l'aide de Round Robin, vous pouvez utiliser les requêtes SQL suivantes. Aucune clé primaire ne doit être définie.

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

Cette commande créera 4 partitions d'une table.

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

Cela créera 4 partitions sur la colonne a et b, et vous devez spécifier au moins une colonne.

Partitionnement de plage

Dans le partitionnement par plage, vous créez des partitions dédiées pour certaines valeurs et vous devez avoir une connaissance approfondie du contenu de la table pour le partitionnement des colonnes.

Example - Création d'une partition pour chaque mois calendaire.

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)

Ceci créera 4 partitions, une partition pour la plage de 1 à 10, 2 ème de 10 à 20, 3 ème pour valeur 50, et 4 ème pour toutes les autres valeurs.

Partitionnement à plusieurs niveaux

Dans le partitionnement à plusieurs niveaux, vous pouvez surmonter la limitation du partitionnement à un niveau HASH et RANGE pour utiliser des colonnes clés comme colonnes de partitionnement. À l'aide du partitionnement à plusieurs niveaux, vous pouvez partitionner une colonne qui n'est pas une clé primaire. Le type le plus courant de partitionnement à plusieurs niveaux estHASH-Range Partitioning.

Dans le partitionnement multiniveau de plage de hachage, vous implémentez le partitionnement de hachage au premier niveau pour implémenter l'équilibrage de charge et le partitionnement de plage au deuxième niveau pour implémenter le partitionnement basé sur le temps.

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)

Au lieu d'utiliser le partitionnement Hash au premier niveau, vous pouvez également utiliser le partitionnement Round Robin et il est connu sous le nom de 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)