La virtualización de la base de datos es el desacoplamiento de la capa de la base de datos, que se encuentra entre las capas de almacenamiento y aplicación dentro de la pila de aplicaciones. La virtualización de la capa de la base de datos permite un cambio de lo físico a lo lógico o virtual. La virtualización permite agrupar y asignar recursos informáticos y de almacenamiento a pedido. Esto permite compartir recursos de un solo servidor para tenencia múltiple, así como la agrupación de recursos del servidor en una única base de datos lógica o clúster. En ambos casos, la virtualización de bases de datos proporciona una mayor flexibilidad, una asignación más granular y eficiente de recursos agrupados y una informática más escalable.
Partición de datos virtuales
El acto de particionar los almacenes de datos a medida que crece una base de datos se ha utilizado durante varias décadas. Hay dos formas principales de particionar los datos dentro de los sistemas de gestión de datos heredados :
- Bases de datos de datos compartidos: una arquitectura que asume que todos los nodos del clúster de bases de datos comparten una sola partición. Las comunicaciones entre nodos se utilizan para sincronizar las actividades de actualización realizadas por diferentes nodos en el clúster. Los sistemas de gestión de datos de datos compartidos están limitados a clústeres de nodos de un solo dígito.
- Bases de datos Shared-Nothing: una arquitectura en la que todos los datos se segregan en particiones administradas internamente con límites de ubicación de datos claros y bien definidos. Las bases de datos no compartidas requieren una gestión manual de particiones.
En el particionamiento virtual, los datos lógicos se extraen de los datos físicos mediante la creación y gestión autónoma de grandes cantidades de particiones de datos (de 100 a 1000). Debido a que se mantienen de forma autónoma, los recursos necesarios para administrar las particiones son mínimos. Este tipo de partición masiva da como resultado:
- particiones pequeñas, administradas de manera eficiente y con equilibrio de carga; y
- sistemas que no requieren eventos de re-particionamiento para definir particiones adicionales, incluso cuando se cambia el hardware
Las arquitecturas de “datos compartidos” y “nada compartido” permiten la escalabilidad a través de múltiples particiones de datos y procesamiento de transacciones y consultas entre particiones sin escaneo completo de particiones.
Partición de datos horizontal
Particionar las fuentes de bases de datos de los consumidores es un concepto fundamental. Con un mayor número de fuentes de bases de datos, la inserción de una capa de virtualización de datos horizontal entre las fuentes y los consumidores ayuda a abordar esta complejidad. Rick van der Lans, autor de varios libros sobre SQL y bases de datos relacionales, ha definido la virtualización de datos como "el proceso de ofrecer a los consumidores de datos una interfaz de acceso a los datos que oculta los aspectos técnicos de los datos almacenados, como la ubicación, la estructura de almacenamiento, API, acceder al idioma y la tecnología de almacenamiento ". [1]
Ventajas
- Mayor flexibilidad y agilidad para la infraestructura informática existente
- Rendimiento mejorado de la base de datos
- Agrupar y compartir recursos informáticos, ya sea dividiéndolos (tenencia múltiple) o combinándolos (agrupación en clústeres)
- Simplificación de la administración y gestión.
- Mayor tolerancia a fallas