Almacenamiento de datos: estrategia de particionamiento

La partición se realiza para mejorar el rendimiento y facilitar la gestión de datos. El particionamiento también ayuda a equilibrar los diversos requisitos del sistema. Optimiza el rendimiento del hardware y simplifica la gestión del almacén de datos al dividir cada tabla de hechos en varias particiones independientes. En este capítulo, discutiremos diferentes estrategias de particionamiento.

¿Por qué es necesario realizar particiones?

La partición es importante por las siguientes razones:

  • Para una gestión sencilla,
  • Para ayudar en la copia de seguridad / recuperación,
  • Para mejorar el rendimiento.

Para una gestión sencilla

La tabla de hechos en un almacén de datos puede crecer hasta cientos de gigabytes de tamaño. Este enorme tamaño de tabla de hechos es muy difícil de administrar como una sola entidad. Por lo tanto, necesita particionamiento.

Para ayudar a la copia de seguridad / recuperación

Si no particionamos la tabla de hechos, entonces tenemos que cargar la tabla de hechos completa con todos los datos. El particionamiento nos permite cargar solo la cantidad de datos necesarios de forma regular. Reduce el tiempo de carga y también mejora el rendimiento del sistema.

Note- Para reducir el tamaño de la copia de seguridad, todas las particiones que no sean la partición actual se pueden marcar como de solo lectura. Luego podemos poner estas particiones en un estado en el que no se puedan modificar. Entonces se pueden respaldar. Significa que solo se realizará una copia de seguridad de la partición actual.

Para mejorar el rendimiento

Al dividir la tabla de hechos en conjuntos de datos, se pueden mejorar los procedimientos de consulta. El rendimiento de la consulta se mejora porque ahora la consulta escanea solo aquellas particiones que son relevantes. No tiene que escanear todos los datos.

Particionamiento horizontal

Hay varias formas de dividir una tabla de hechos. En la partición horizontal, debemos tener en cuenta los requisitos de manejabilidad del almacén de datos.

Partición por tiempo en segmentos iguales

En esta estrategia de partición, la tabla de hechos se divide en función del período de tiempo. Aquí, cada período de tiempo representa un período de retención significativo dentro de la empresa. Por ejemplo, si el usuario consultamonth to date dataentonces es apropiado dividir los datos en segmentos mensuales. Podemos reutilizar las tablas particionadas eliminando los datos que contienen.

Partición por tiempo en segmentos de diferentes tamaños

Este tipo de partición se realiza cuando se accede con poca frecuencia a los datos antiguos. Se implementa como un conjunto de particiones pequeñas para datos relativamente actuales, una partición más grande para datos inactivos.

Puntos a tener en cuenta

  • La información detallada permanece disponible en línea.

  • La cantidad de tablas físicas se mantiene relativamente pequeña, lo que reduce el costo operativo.

  • Esta técnica es adecuada cuando se requiere una combinación de datos que sumergen el historial reciente y minería de datos a lo largo del historial completo.

  • Esta técnica no es útil cuando el perfil de partición cambia de forma regular, porque la partición aumentará el costo operativo del almacén de datos.

Partición en una dimensión diferente

La tabla de hechos también se puede dividir en función de dimensiones distintas del tiempo, como grupo de productos, región, proveedor o cualquier otra dimensión. Pongamos un ejemplo.

Suponga que una función de mercado se ha estructurado en distintos departamentos regionales como en un state by statebase. Si cada región desea consultar la información capturada dentro de su región, resultaría más eficaz dividir la tabla de hechos en particiones regionales. Esto hará que las consultas se aceleren porque no requiere escanear información que no sea relevante.

Puntos a tener en cuenta

  • La consulta no tiene que escanear datos irrelevantes, lo que acelera el proceso de consulta.

  • Esta técnica no es apropiada cuando es poco probable que las dimensiones cambien en el futuro. Entonces, vale la pena determinar que la dimensión no cambia en el futuro.

  • Si la dimensión cambia, entonces toda la tabla de hechos debería volver a particionarse.

Note - Recomendamos realizar la partición solo sobre la base de la dimensión de tiempo, a menos que esté seguro de que la agrupación de dimensiones sugerida no cambiará durante la vida útil del almacén de datos.

Partición por tamaño de tabla

Cuando no hay una base clara para dividir la tabla de hechos en cualquier dimensión, entonces deberíamos partition the fact table on the basis of their size.Podemos establecer el tamaño predeterminado como un punto crítico. Cuando la tabla excede el tamaño predeterminado, se crea una nueva partición de tabla.

Puntos a tener en cuenta

  • Esta partición es compleja de administrar.

  • Requiere metadatos para identificar qué datos se almacenan en cada partición.

Dimensiones de partición

Si una dimensión contiene una gran cantidad de entradas, entonces es necesario dividir las dimensiones. Aquí tenemos que comprobar el tamaño de una dimensión.

Considere un diseño grande que cambia con el tiempo. Si necesitamos almacenar todas las variaciones para aplicar comparaciones, esa dimensión puede ser muy grande. Esto definitivamente afectaría el tiempo de respuesta.

Particiones Round Robin

En la técnica de round robin, cuando se necesita una nueva partición, se archiva la antigua. Utiliza metadatos para permitir que la herramienta de acceso del usuario haga referencia a la partición de tabla correcta.

Esta técnica facilita la automatización de las instalaciones de gestión de tablas dentro del almacén de datos.

Partición vertical

Partición vertical, divide los datos verticalmente. Las siguientes imágenes muestran cómo se realiza la partición vertical.

La partición vertical se puede realizar de las dos formas siguientes:

  • Normalization
  • División de filas

Normalización

La normalización es el método relacional estándar de organización de bases de datos. En este método, las filas se contraen en una sola fila, por lo que se reduce el espacio. Eche un vistazo a las siguientes tablas que muestran cómo se realiza la normalización.

Tabla antes de la normalización

Identificación de producto Cant. Valor sales_date Store_id Nombre de la tienda Ubicación Región
30 5 3,67 3-agosto-13 dieciséis soleado Bangalore S
35 4 5.33 3-sep-13 dieciséis soleado Bangalore S
40 5 2,50 3-sep-13 64 san Mumbai W
45 7 5.66 3-sep-13 dieciséis soleado Bangalore S

Tabla después de la normalización

Store_id Nombre de la tienda Ubicación Región
dieciséis soleado Bangalore W
64 san Mumbai S
Identificación de producto Cantidad Valor sales_date Store_id
30 5 3,67 3-agosto-13 dieciséis
35 4 5.33 3-sep-13 dieciséis
40 5 2,50 3-sep-13 64
45 7 5.66 3-sep-13 dieciséis

División de filas

La división de filas tiende a dejar un mapa uno a uno entre particiones. El motivo de la división de filas es acelerar el acceso a una mesa grande reduciendo su tamaño.

Note - Al utilizar la partición vertical, asegúrese de que no sea necesario realizar una operación de unión importante entre dos particiones.

Identificar la clave para la partición

Es muy importante elegir la clave de partición correcta. La elección de una clave de partición incorrecta conducirá a la reorganización de la tabla de hechos. Pongamos un ejemplo. Supongamos que queremos particionar la siguiente tabla.

Account_Txn_Table
transaction_id
account_id
transaction_type
value
transaction_date
region
branch_name

Podemos optar por particionar en cualquier clave. Las dos posibles claves podrían ser

  • region
  • transaction_date

Suponga que la empresa está organizada en 30 regiones geográficas y cada región tiene un número diferente de sucursales. Eso nos dará 30 particiones, lo cual es razonable. Esta partición es suficientemente buena porque nuestra captura de requisitos ha demostrado que una gran mayoría de consultas están restringidas a la propia región comercial del usuario.

Si particionamos por transaction_date en lugar de region, entonces la última transacción de cada región estará en una partición. Ahora, el usuario que quiere ver datos dentro de su propia región tiene que consultar en múltiples particiones.

Por lo tanto, vale la pena determinar la clave de partición correcta.