Administrador de SAP HANA: partición de tabla

Con el particionamiento, puede dividir las tablas de almacenamiento de columnas en tablas más pequeñas en un sistema de host múltiple. Incluso puede dividir las tablas en partes más pequeñas y manejables utilizando particiones. El particionamiento se puede realizar utilizando sentencias DML SQL.

Cuando se particiona una tabla, contiene un conjunto diferente de filas para cada parte y el particionamiento se puede realizar en función de diferentes algoritmos: particionamiento hash, particionamiento de un solo nivel o multinivel.

A continuación se muestran las ventajas de usar el particionamiento de tablas:

Poda de partición

Puede determinar si una consulta se puede analizar en una partición en particular. Con este método, puede reducir la carga en el sistema y, por lo tanto, mejorar el tiempo de respuesta.

Example- Cuando particiona una tabla según el año, se ejecuta una consulta para analizar los datos de un año en particular. Puede usar una partición específica y, por lo tanto, se mejora el rendimiento de la consulta.

Balanceo de carga

Puede dividir particiones individuales en varios hosts y, por lo tanto, una consulta no es procesada por un solo servidor, lo que da como resultado un mejor equilibrio de carga en todos los servidores que albergan particiones de tabla.

Limitación de tamaño

En una tabla de almacenamiento de columnas, el número máximo de filas que se pueden ingresar es de alrededor de 2 mil millones. Puede superar esto distribuyendo las filas de una tabla de columnas en varias particiones y, por lo tanto, el límite de tamaño se incrementa a 2 mil millones para cada partición.

Operación de fusión delta mejorada

Durante la fusión delta, si los datos solo se modifican para algunas particiones, debe fusionar menos particiones en la fusión delta.

Procesamiento paralelo de consultas

Al utilizar particiones, puede ejecutar varias consultas en paralelo y, por lo tanto, mejorar el tiempo de respuesta.

Analicemos ahora los tipos de partición.

Partición de un solo nivel

Hay diferentes tipos de particiones de un solo nivel disponibles en el sistema SAP HANA:

  • Partición hash
  • Partición Round Robin
  • Partición de rango

En el particionamiento Hash, las filas se distribuyen por igual para realizar el equilibrio de carga. No necesita la información detallada sobre el contenido de la tabla en este tipo de particionamiento.

En comparación con el Particionamiento Hash, en el Particionamiento Round Robin las filas se distribuyen por igual a cada partición y las filas nuevas se asignan por igual a cada partición.

Para crear 4 particiones de una tabla usando Round Robin, puede usar las siguientes consultas SQL. No se deben definir claves primarias.

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

Este comando creará 4 particiones de una tabla.

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

Esto creará 4 particiones en la columna a y by debe especificar al menos una columna.

Partición de rango

En la partición de rango, usted crea particiones dedicadas para ciertos valores y debe tener un conocimiento profundo del contenido de la tabla para particionar columnas.

Example - Creación de una partición para cada mes calendario.

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)

Esto creará 4 particiones, una para el rango de partición 1 a 10, la de 10 a 20, la para el valor 50 y la para todos los demás valores.

Particionamiento multinivel

En el particionamiento multinivel, puede superar la limitación del particionamiento de un solo nivel HASH y RANGE para usar columnas clave como columnas de particionamiento. Con el particionamiento multinivel, puede particionar una columna que no sea una clave principal. El tipo más común de particiones multinivel esHASH-Range Partitioning.

En el particionamiento multinivel Hash-Range, se implementa el particionamiento Hash en el primer nivel para implementar el equilibrio de carga y el particionamiento Range en el segundo nivel para implementar el particionamiento basado en el tiempo.

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)

En lugar de utilizar la partición Hash en el primer nivel, también puede utilizar la partición Round Robin y se conoce como 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)