Blog
¿Cuáles son las características de una base de datos HANA?
- 08/04/2022
- Escrito por: Grazia Masulli
- Categoría: SAP S/4HANA
La base de datos HANA es el corazón de la plataforma SAP HANA. ¿Cuáles son sus principales características? A lo largo de este texto vamos a explicar detalladamente el tema.
¿Qué es la base de datos HANA?
En primer lugar, es una solución de almacenamiento en memoria. En la práctica, los datos no se almacenan en discos duros, sino que están contenidos en la memoria principal de los servidores. Esta solución permite acceder a los datos mucho más rápido (hablamos de velocidades hasta 100.000 veces superiores a las de los discos duros).
Además, la memoria está conectada a la CPU (la parte del servidor que realiza las operaciones procesando los datos) mediante enlaces de alta velocidad (“buses”), lo que mejora aún más el rendimiento.
¿Dónde se almacenan los datos de HANA?
Además, en HANA, la mayoría de los datos se organizan en tablas de columnas. Las bases de datos tradicionales se organizan en filas, y en este caso los datos son en general rápidos de escribir, pero más lentos de leer: si una tabla tiene muchas columnas y buscamos un dato concreto contenido en sólo unas pocas columnas, será necesario leer toda la fila -incluidas las columnas innecesarias- y descartar después los datos inútiles.
¿Cómo son las bases de datos HANA?
Por supuesto, las bases de datos tradicionales organizadas por filas también tienen ventajas: por ejemplo, la escritura es muy rápida. Sin embargo, una desventaja de la gestión de datos en bases de datos columnares es que las operaciones de introducción y actualización de datos son más complejas y utilizan más memoria y CPU.
Pongamos un ejemplo práctico con una simple tabla de datos (por supuesto, hay que imaginar que en la realidad las tablas son mucho más grandes, con miles o incluso millones de datos).
Una mesa tradicional tiene este tipo de estructura:
Marca | Modelo | Color |
Ferrari | Portofino | Rojo |
Ferrari | Portofino | Negro |
Ferrari | Portofino | Plata |
Ferrari | California | Rojo |
Ferrari | California | Negro |
Lamborghini | Aventador | Amarillo |
Lamborghini | Aventador | Rojo |
Lamborghini | Gallardo | Amarillo |
Esta sería la estructura de la misma tabla organizada por columnas:
Marca 0- Ferrari 1-Lamborghini | Modelo 0- Portofino 1- California 2- Aventador 3- Gallardo | Color 0-Rojo 1- Negro 2- 3- |
0 | 0 | 0 |
0 | 0 | 1 |
0 | 0 | 2 |
0 | 1 | 0 |
0 | 1 | 1 |
1 | 2 | 3 |
1 | 2 | 0 |
1 | 3 | 3 |
Como puede ver, las columnas comienzan con un “diccionario” que explica cómo interpretar el contenido de los diferentes atributos (“Marca”, “Modelo”, “Color”, etc.).
¿Cómo se registran los datos HANA?
Posteriormente, los datos se registran de forma más compacta gracias a la codificación. Además, HANA utiliza algoritmos de compresión de datos: el algoritmo más adecuado se evalúa en función de la estructura de cada columna.
Una ventaja adicional de esta estructura es que cada columna puede ser procesada en paralelo por un núcleo de procesador diferente (CPU Core): en los buenos tiempos, cada procesador tenía sólo un núcleo, ahora tienen varios independientes y cada uno de ellos puede trabajar en una tarea diferente.
Para agilizar aún más las cosas, los servidores también pueden tener varios procesadores, cada uno con varios núcleos: esta configuración hace que el acceso paralelo a varias columnas sea muy rápido y eficiente.
HANA y el uso de bases de datos distribuidas
Por último, HANA permite el uso de bases de datos distribuidas: los datos se dividen entre varios grupos de servidores (o incluso una sola tabla, si es muy grande, puede dividirse en varias particiones y almacenarse en varios servidores).
Esta solución técnica permite analizar rápidamente enormes cantidades de datos y realizar cálculos complejos.
¿Cuál es la capacidad máxima de una tabla HANA?
Actualmente, el tamaño máximo de una tabla HANA es de dos mil millones de registros. Si la tabla supera este límite, toda la base de datos puede dejar de funcionar.
Escalabilidad de HANA
En cuanto a la escalabilidad de HANA (es decir, la posibilidad de ampliar las capacidades de la base de datos) existen básicamente dos soluciones:
- Escala hacia arriba (extensión “vertical”). Con esta estrategia, se aumenta la memoria RAM de la base de datos. La CPU también debe aumentar proporcionalmente. El nivel máximo de memoria que se puede gestionar depende del hardware utilizado (por ejemplo, IBM, Cisco, HP tienen diferentes límites).
- Escala hacia fuera (extensión “horizontal“). Con esta estrategia, se agrupan varios sistemas HANA más pequeños. El resultado final es una base de datos en clúster con almacenamiento compartido.
La recomendación estándar es ampliar el sistema verticalmente hasta alcanzar la máxima memoria posible (el límite físico). En ese momento, es el momento de añadir nuevos servidores con una extensión horizontal.
Además, incluso cuando se empieza a extender el sistema horizontalmente, es una buena práctica elegir la configuración con el menor número de nodos posible.
Tablas HANA
También es importante tener en cuenta que las tablas están relacionadas semánticamente, y que todas las que pertenecen al mismo grupo deben estar en el mismo nodo.
Capacidad de recuperación de una base de datos HANA
La recuperabilidad de una base de datos significa que, en caso de fallo, la información puede restaurarse hasta el punto en que se produjo el error. Esta es una de las consideraciones más importantes para un sistema como SAP S/4HANA y debe planificarse correctamente.
Hemos comentado al principio del artículo que HANA es una base de datos de almacenamiento en memoria, es decir, con los datos almacenados en la RAM.
¿Qué sucede si se llegan a perder los datos HANA?
Dado que los datos podrían perderse en caso de un fallo de alimentación (la RAM se borraría), también hay un almacenamiento persistente en el disco duro para protegerse de posibles fallos. Durante el funcionamiento normal, los datos pasan de hecho de la memoria RAM al disco duro a intervalos regulares. Esto crea un punto de guardado.
Además, se generan registros para cada cambio de datos después de cada operación. Los datos del registro también se guardan en el disco duro después de cada transacción.
Por lo tanto, en caso de un corte de energía, la base de datos puede reiniciarse sin ningún problema. De hecho, mantendrá el seguimiento de los datos de registro después del punto de guardado. Este mecanismo evita la pérdida de datos en caso de problemas como las caídas de tensión y los cortes de energía.