Hemos aprendido cómo puede elegir entre la virtualización y la replicación de sus datos. Pero, ¿qué pasa si decide comenzar con la virtualización, pero más tarde podría querer cambiar a la replicación debido a un rendimiento deficiente?
Al principio, crear un informe en la parte superior de una tabla virtual puede parecer una buena opción porque este enfoque admite una implementación rápida y un mantenimiento fácil.

Pero en algunas situaciones, replicar los datos remotos en el sistema SAP HANA local puede ofrecer un mejor rendimiento de consulta que acceder a los datos en una tabla remota. Por lo tanto, puede considerar abandonar el enfoque de virtualización y reimplementar un enfoque de replicación.
Pero el problema con cambiar el enfoque de aprovisionamiento de datos es que necesitará ajustar todas las aplicaciones para que apunten a la nueva tabla de destino en la que se cargan los datos replicados. Esto generaría tareas de transporte y prueba que puede que no desee cargar.
La solución para este escenario es implementar tablas de replicación. Esta es una función de la replicación de datos.

Una tabla de réplica se encuentra junto a una tabla virtual y tiene la misma estructura. La tabla de réplica captura y almacena los datos en tiempo real.

La función clave de implementar una tabla de replicación es un conmutador que le permite cambiar fácilmente entre la tabla virtual y la tabla de replicación. Esto significa que puede cambiar a la tabla de réplicas si el rendimiento empieza a degradarse y volver a cambiar cuando mejora el rendimiento.
¿Cuándo alternar?
Puede identificar fácilmente consultas remotas problemáticas y casos en los que puede ser beneficioso alternar utilizando dos vistas de supervisión:
- M_EXPENSIVE_STATEMENTS
- M_REMOTE_STATEMENTS
Cuando el tiempo de ejecución de una sentencia SQL que se ejecuta en una tabla virtual supera un determinado umbral, se incluye en la vista de supervisión M_EXPENSIVE_STATEMENTS.
Los campos comunes en la vista de supervisión M_EXPENSIVE_STATEMENTS y la vista de supervisión M_REMOTE_STATEMENTS se pueden utilizar para encontrar las consultas remotas de sentencias SQL lentas y, por lo tanto, las tablas virtuales que se beneficiarían de un conmutador a una réplica.
Definición de tabla de réplica
Para alternar entre los datos replicados y la tabla virtual, la tabla virtual debe tener añadida una tabla de replicación correspondiente.
Estas son algunas características de las tablas de replicación:
- Cada tabla virtual solo puede tener una tabla de replicación.
- Una tabla de réplicas se actualiza en tiempo real cuando se actualiza la tabla de origen.
La replicación en tiempo real solo se admite para fuentes remotas que admiten la captura de datos de modificaciones en tiempo real (CDC).
De lo contrario, podría cargar datos en la tabla de vez en cuando. Su réplica sería una réplica de instantánea.
- Las tablas de réplica se generan automáticamente y se almacenan en un esquema interno, gestionado por un usuario interno. Están escondidos detrás de escena.
Nota
Hay una función llamada Tablas de replicación propiedad del usuario que permitiría modificaciones en la estructura de la tabla de replicación (por ejemplo, para añadir particiones para mejorar el rendimiento de la consulta de la tabla de replicación).
Este tipo de tabla de réplicas se crea en un esquema de usuario, por lo que se puede modificar.
Cambiar a réplica y volver a tabla virtual
- Para añadir una réplica a una tabla virtual, ejecute la siguiente sentencia:Code Snippet12ALTER VIRTUAL TABLE <virtual_table_name> ADD SHARED [SNAPSHOT] REPLICA;
- Para volver a acceder directamente a la tabla virtual, debe:
- Para una consulta específica, utilice un HINT para sustituir el modo de lectura para utilizar la tabla virtual y no la réplica.Code Snippet12SELECT * FROM <virtual_table_name> WITH HINT(NO_VIRTUAL_TABLE_REPLICA);
o utilice una sentencia SET antes de ejecutar la consulta.
Code Snippet12SET 'VIRTUAL_TABLE_REPLICA' = 'FALSE'; SELECT * FROM <virtual_table_name>; - Desactive temporalmente la réplica mediante una instrucción ALTER. Code Snippet1ALTER VIRTUAL TABLE <virtual_table_name> DISABLE REPLICA;
A continuación, se puede volver a activar más tarde. (Sustituya DISABLE por ENABLE).
- Elimine la réplica con un comando DROP.Code Snippet12ALTER VIRTUAL TABLE <virtual_table_name> DROP REPLICA;
- Para una consulta específica, utilice un HINT para sustituir el modo de lectura para utilizar la tabla virtual y no la réplica.
Ha llegado al final de esta unidad y ha aprendido sobre los diferentes enfoques para replicar datos.