¿Qué es la partición de bases de datos?

La partición de bases de datos es el proceso de almacenar una base de datos grande en varias máquinas. Una sola máquina, o servidor de base de datos, puede almacenar y procesar únicamente una cantidad limitada de datos. La partición de bases de datos supera esta limitación al dividir los datos en trozos más pequeños, denominados particiones, y almacenarlos en varios servidores de bases de datos. Todos los servidores de bases de datos suelen tener las mismas tecnologías subyacentes y trabajan conjuntamente para almacenar y procesar grandes volúmenes de datos.

¿Por qué es importante la partición de bases de datos?

A medida que una aplicación crece, la cantidad de usuarios de la aplicación y la cantidad de datos que almacena aumentan con el tiempo. La base de datos se convierte en un cuello de botella si el volumen de datos se hace demasiado grande y demasiados usuarios intentan usar la aplicación para leer o guardar información de forma simultánea. La aplicación se ralentiza y afecta a la experiencia del cliente. La partición de bases de datos es uno de los métodos para resolver este problema porque permite el procesamiento paralelo de conjuntos de datos más pequeños en todas las particiones.

¿Cuáles son los beneficios de la partición de bases de datos?

Las organizaciones utilizan la partición de bases de datos para obtener los siguientes beneficios:

Mejorar el tiempo de respuesta

La recuperación de datos lleva más tiempo en una sola base de datos grande. El sistema de administración de bases de datos necesita buscar en muchas filas para recuperar los datos correctos. Por el contrario, las particiones de datos tienen menos filas que toda la base de datos. Por lo tanto, lleva menos tiempo recuperar información específica o ejecutar una consulta desde una base de datos particionada. 

Evitar la interrupción total del servicio

Si se produce un error en la computadora que aloja la base de datos, también se presenta un error en la aplicación que depende de la base de datos. La partición de bases de datos evita esto mediante la distribución de partes de la base de datos en diferentes computadoras. El fallo de una de las computadoras no cierra la aplicación porque puede funcionar con otras particiones funcionales. La partición también se suele aplicar en combinación con la replicación de datos entre particiones. Por lo tanto, si una partición deja de estar disponible, se puede acceder a los datos y restaurarlos desde una partición alternativa.

Escale eficientemente

Una base de datos en crecimiento consume más recursos de computación y, finalmente, alcanza la capacidad de almacenamiento. Las organizaciones pueden usar la partición de bases de datos para agregar más recursos de computación y admitir el escalado de la base de datos. Pueden agregar nuevas particiones en tiempo de ejecución sin suspender la aplicación para realizar tareas de mantenimiento.

¿Cómo funciona la partición de bases de datos?

Una base de datos almacena información en varios conjuntos de datos que constan de columnas y filas. La partición de bases de datos divide un único conjunto de datos en particiones o fragmentos. Cada partición contiene filas únicas de información que se puede almacenar por separado en varias computadoras, que se conocen como nodos. Todas las particiones se ejecutan en nodos separados, pero comparten el esquema o el diseño de la base de datos original. 

Por ejemplo, una base de datos sin particionar que contiene un conjunto de datos para los registros de clientes podría tener este aspecto.

ID de cliente

Nombre

Estado

1

Juan

California

2

María

Washington

3

Pablo

Arizona

4

Wang

Georgia

La partición implica separar diferentes filas de información de la tabla y almacenarlas en diferentes máquinas, como se muestra a continuación.

Computadora A

ID de cliente

Nombre

Estado

1

Juan

California

2

María

Washington

Computadora B

ID de cliente

Nombre

Estado

3

Pablo

Arizona

4

Wang

Georgia

Fragmentos

Los trozos de datos particionados se denominan particiones lógicas. La máquina que almacena la partición lógica se denomina partición física o nodo de base de datos. Una partición física puede contener varias particiones lógicas. 

Clave de partición

Los desarrolladores de software utilizan una clave de partición para determinar cómo particionar el conjunto de datos. Una columna del conjunto de datos determina qué filas de datos se agrupan para formar una partición. Los diseñadores de bases de datos eligen una clave de partición de una columna existente o crean una nueva.

Arquitectura de nada compartido

La partición de bases de datos funciona en una arquitectura de nada compartido. Cada partición física funciona de forma independiente y desconoce otras particiones.. Solo las particiones físicas que contienen los datos que se solicitan procesarán los datos en paralelo por usted. 

Una capa de software coordina el almacenamiento de datos y el acceso desde estas múltiples particiones. Por ejemplo, algunos tipos de tecnología de bases de datos tienen incorporadas características de partición automática. Los desarrolladores de software también pueden escribir código de partición en la aplicación para almacenar o recuperar información de la partición o particiones correctas. 

¿Cuáles son los métodos de partición de bases de datos?

Los métodos de partición de bases de datos aplican reglas diferentes a la clave de partición para determinar el nodo correcto para una fila de datos en particular. Las siguientes son arquitecturas de particiones comunes.

Partición basada en rangos

La partición basada en rangos, o partición dinámica, divide las filas de la base de datos en función de un rango de valores. A continuación, el diseñador de la base de datos asigna una clave de partición al rango correspondiente. Por ejemplo, el diseñador de la base de datos particiona los datos según la primera letra del nombre del cliente de la siguiente manera. 

 

Nombre

Clave de partición

Empieza con una letra de la A a la I

A

Empieza con una letra de la J a la S

B

Empieza con una letra de la T a la Z

C

 

Cuando se escribe un registro de cliente en la base de datos, la aplicación determina la clave de partición correcta al comprobar el nombre del cliente. A continuación, la aplicación relaciona la clave con su nodo físico y almacena la fila en esa máquina. Del mismo modo, la aplicación realiza una coincidencia inversa cuando busca un registro en particular.

Ventajas y desventajas

En función de los valores de los datos, la partición basada en rangos puede dar lugar a una sobrecarga de datos en un único nodo físico. En nuestro ejemplo, la partición A (que contiene nombres que comienzan con una letra de la A a la I) puede contener un número mucho mayor de filas de datos que la partición C (que contiene nombres que comienzan con una letra de la T a la Z). Sin embargo, es más fácil de implementar.

Partición con hash

La partición con hash asigna la clave de partición a cada fila de la base de datos mediante una fórmula matemática llamada función hash. La función hash toma la información de la fila y produce un valor hash. La aplicación utiliza el valor hash como clave de partición y almacena la información en la partición física correspondiente.

Los desarrolladores de software utilizan la partición con hash para distribuir uniformemente la información en una base de datos entre varias particiones. Por ejemplo, el software separa los registros de los clientes en dos particiones con valores hash alternativos de 1 y 2. 

Nombre

Valor hash

Juan

1

María

2

Pablo

1

Wang

2

Ventajas y desventajas

Si bien la partición con hash da como resultado una distribución uniforme de los datos entre las particiones físicas, no separa la base de datos en función del significado de la información. Por lo tanto, los desarrolladores de software podrían tener dificultades para reasignar el valor hash al agregar más particiones físicas al entorno ce computación. 

Partición de directorios

La partición de directorios utiliza una tabla de búsqueda para establecer una correspondencia entre la información de la base de datos y la partición física correspondiente. Una tabla de búsqueda es como una tabla de una hoja de cálculo que vincula una columna de base de datos a una clave de partición. Por ejemplo, el siguiente diagrama muestra una tabla de búsqueda de colores de ropa.

Color

Clave de partición

Azul

A

Rojo

B

Amarillo 

C

Negro

D

Cuando una aplicación almacena información de ropa en la base de datos, hace referencia a la tabla de búsqueda. Si un vestido es azul, la aplicación almacena la información en la partición correspondiente. 

Ventajas y desventajas

Los desarrolladores de software utilizan la partición de directorios porque es flexible. Cada partición es una representación significativa de la base de datos y no está limitada por rangos. Sin embargo, la partición de directorios falla si la tabla de búsqueda contiene información incorrecta. 

Partición geográfica

La partición geográfica divide y almacena la información de la base de datos según la ubicación geográfica. Por ejemplo, un sitio web de servicio de citas utiliza una base de datos para almacenar información de clientes de varias ciudades de la siguiente manera. 

Nombre

Clave de partición

Juan

California

María

Washington

Pablo

Arizona

Los desarrolladores de software utilizan las ciudades como claves de partición. Almacenan la información de cada cliente en particiones físicas que se encuentran geográficamente en las ciudades respectivas. 

Ventajas y desventajas

La partición geográfica permite que las aplicaciones recuperen información más rápido debido a la distancia más corta entre la partición y el cliente que hace la solicitud. Si los patrones de acceso a los datos se basan predominantemente en la geografía, esto funciona bien. Sin embargo, la partición geográfica también puede provocar una distribución desigual de los datos. 

Cómo optimizar la partición de bases de datos para una distribución uniforme de datos

Cuando se produce una sobrecarga de datos en particiones físicas específicas, aunque otras permanecen subcargadas, se generan puntos de acceso a la base de datos. Los puntos de acceso ralentizan el proceso de recuperación en la base de datos, lo que frustra el propósito de la partición de datos. 

Una buena selección de claves de partición puede distribuir los datos de manera uniforme en varios particiones. Al elegir una clave de partición, los diseñadores de bases de datos deben tener en cuenta los factores que se indican a continuación. 

Cardinalidad

La cardinalidad describe los posibles valores de la clave de partición. Determina el número máximo de particiones posibles en bases de datos separadas orientadas a columnas. Por ejemplo, si el diseñador de la base de datos elige un campo de datos sí/no como clave de partición, el número de particiones se limita a dos.

Frecuencia

La frecuencia es la probabilidad de almacenar información específica en una partición en particular. Por ejemplo, un diseñador de bases de datos elige la edad como clave de partición para un sitio web de acondicionamiento físico. La mayoría de los registros pueden ir a nodos para suscriptores de entre 30 y 45 años y generar puntos de acceso a la base de datos. 

Cambio monótono

El cambio monótono es la velocidad de cambio de la clave de partición. Una clave de partición que aumenta o disminuye monótonamente da como resultado particiones desequilibradas. Por ejemplo, una base de datos de comentarios se divide en tres particiones físicas diferentes, de la siguiente manera:

  • La partición A almacena los comentarios de los clientes que han realizado de 0 a 10 compras.
  • La partición B almacena los comentarios de los clientes que han realizado entre 11 y 20 compras.
  • La partición C almacena los comentarios de los clientes que han realizado 21 o más compras.

A medida que la empresa crezca, los clientes realizarán más de 21 o más compras. La aplicación almacena sus comentarios en la partición C. Esto da como resultado una partición desequilibrada porque la partición C contiene más registros de comentarios que otras particiones.

¿Qué alternativas existen a la partición de bases de datos?

La partición de bases de datos es una estrategia de escalado horizontal que asigna nodos o computadoras adicionales para compartir la carga de trabajo de una aplicación. Las organizaciones se benefician del escalamiento horizontal debido a su arquitectura tolerante a fallas. Cuando se produce un error en una computadora, las demás se mantienen en funcionamiento sin interrupciones. Para reducir el tiempo de inactividad, los diseñadores de bases de datos distribuyen las particiones lógicas en varios servidores. 

Sin embargo, la partición es una de las muchas estrategias de escalado de bases de datos. Explore otras técnicas y comprenda cómo se comparan.

Escalado vertical

El escalado vertical aumenta la potencia de computación de una sola máquina. Por ejemplo, el equipo de TI agrega una CPU, una RAM y un disco duro a un servidor de base de datos para gestionar el aumento del tráfico. 

Partición de bases de datos frente al uso del escalado vertical

El escalado vertical es menos costoso, pero existe un límite en cuanto a los recursos de computación que se pueden escalar verticalmente. Mientras tanto, la partición, una estrategia de escalado horizontal, es más fácil de implementar. Por ejemplo, el equipo de TI instala varias computadoras en lugar de actualizar el hardware de la computadora anterior.

Replicación

La replicación es una técnica que hace copias exactas de la base de datos y las almacena en diferentes computadoras. Los diseñadores de bases de datos utilizan la replicación para diseñar un sistema de administración de bases de datos relacionales tolerante a errores. Cuando se produce un error en uno de los equipos que aloja la base de datos, otras réplicas permanecen operativas. La replicación es una práctica común en los sistemas de computación distribuida.

Partición de bases de datos frente al uso de la replicación

La fragmentación de bases de datos no crea copias de la misma información. En su lugar, divide una base de datos en varias partes y las almacena en diferentes computadoras. A diferencia de la replicación, la partición de bases de datos no genera una alta disponibilidad. La partición se puede usar en combinación con la replicación para lograr escalabilidad y alta disponibilidad.

En algunos casos, la partición de bases de datos puede consistir en replicaciones de conjuntos de datos específicos. Por ejemplo, una tienda minorista que vende productos a clientes de EE. UU. y Europa puede almacenar réplicas de tablas de conversión de tallas en particiones diferentes para ambas regiones. La aplicación puede usar las copias duplicadas de la tabla de conversión para convertir el tamaño de medición sin acceder a otros servidores de bases de datos. 

Particionado

La fragmentación es el proceso de dividir una tabla de la base de datos en varios grupos. La fragmentación se clasifica en dos tipos: 

  • La fragmentación horizontal divide la base de datos por filas.
  • La fragmentación vertical crea diferentes fragmentos de las columnas de la base de datos. 

Partición de bases de datos frente al uso de la fragmentación

La partición de bases de datos es como la fragmentación horizontal. Ambos procesos dividen la base de datos en múltiples grupos de filas únicas. La fragmentación almacena todos los grupos de datos en la misma computadora, pero la partición de la base de datos los distribuye en diferentes computadoras.

¿Cuáles son los desafíos de la partición de bases de datos?

Las organizaciones pueden enfrentarse a los desafíos que se indican a continuación al implementar la partición de bases de datos.

Puntos de acceso de datos

Algunos de las particiones se desequilibran debido a la distribución desigual de los datos. Por ejemplo, una única partición física que contiene nombres de clientes que comienzan con A recibe más datos que otros. Esta partición física utilizará más recursos informáticos que otras.

Solución

Es posible distribuir los datos de manera uniforme mediante el uso de claves de partición óptimas. Algunos conjuntos de datos son más adecuados para la partición que otros.

Complejidad operativa

La partición de bases de datos crea complejidad operativa. En lugar de administrar una sola base de datos, los desarrolladores tienen que administrar varios nodos de base de datos. Al recuperar información, los desarrolladores deben consultar varias particiones y combinar la información. Estas operaciones de recuperación pueden complicar los análisis.

Solución

En la cartera de bases de datos de AWS, la configuración y las operaciones de las bases de datos se han automatizado en gran medida. Esto hace que trabajar con una arquitectura de base de datos particionada sea una tarea más sencilla.

Costos de infraestructura

Las organizaciones tienen más costos de infraestructura cuando agregan más computadoras como particiones físicas. Los costos de mantenimiento pueden aumentar si se incrementa el número de máquinas en el centro de datos local.

Solución

Los desarrolladores utilizan Amazon Elastic Compute Cloud (Amazon EC2) para alojar y escalar particiones en la nube. Puede ahorrar dinero mediante el uso de una infraestructura virtual que AWS administra por completo.

Complejidad de aplicaciones

La mayoría de los sistemas de administración de bases de datos no tienen características de partición integradas. Esto significa que los diseñadores de bases de datos y los desarrolladores de software deben dividir, distribuir y administrar la base de datos de forma manual.

Solución

Puede migrar los datos a las bases de datos personalizadas de AWS adecuadas, que disponen de varias características integradas que admiten el escalado horizontal.

¿Cómo puede ayudar AWS con la partición de bases de datos?

AWS es una plataforma de administración de datos global que se puede utilizar para crear una estrategia de datos moderna. Al utilizar AWS, puede elegir la base de datos personalizada adecuada, lograr un rendimiento a escala, ejecutar bases de datos completamente administradas y confiar en la alta disponibilidad y seguridad.

Para comenzar a administrar datos en AWS, cree una cuenta de AWS hoy mismo.

Siguientes pasos de AWS

Descubra otros recursos relacionados con el producto
Más información sobre los servicios de bases de datos 
Regístrese para obtener una cuenta gratuita

Ver servicios de bases de datos gratuitos.

Regístrese 
Comenzar a crear en la consola

Comience a crear en la consola de administración de AWS.

Iniciar sesión