Implementación de tablas de réplica

Objective

After completing this lesson, you will be able to mejore el rendimiento con réplicas.

Tablas de réplica

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 al bajo rendimiento?

Al principio, crear un informe sobre una tabla virtual puede parecer una buena opción porque este enfoque admite una implementación rápida y un mantenimiento fácil.

La diapositiva muestra un informe que se ejecuta en una tabla virtual.

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 volver a implementar un enfoque de replicación.

Pero el problema con el cambio del enfoque de aprovisionamiento de datos es que necesitará ajustar todas las aplicaciones para apuntar a la nueva tabla de destino en la que se cargan los datos replicados. Esto generaría tareas de transporte y prueba con las que puede que no desee que se le cargue.

La solución para este escenario es implementar tablas de replicación. Esta es una característica de la replicación de datos.

La diapositiva muestra un informe que se ejecuta en una tabla replicada.

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

Esta diapositiva compara un informe que se ejecuta con una tabla virtual frente a una tabla replicada.

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 replicación si el rendimiento empieza a degradarse y volver cuando el rendimiento mejora.

¿Cuándo cambiar?

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 cambio 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 réplicas:

  • Cada tabla virtual solo puede tener una tabla de réplica.
  • Una tabla de replicación 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 y almacenan automáticamente 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éplica se crea en un esquema de usuario, por lo que se puede modificar.

Cambiar a Réplica y Volver a la tabla virtual

  • Para añadir una réplica a una tabla virtual, ejecute la siguiente sentencia:
    Code Snippet
    12
    ALTER 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 Snippet
      12
      SELECT * FROM <virtual_table_name> WITH HINT(NO_VIRTUAL_TABLE_REPLICA);

      o utilice una sentencia SET antes de ejecutar la consulta.

      Code Snippet
      12
      SET 'VIRTUAL_TABLE_REPLICA' = 'FALSE'; SELECT * FROM <virtual_table_name>;

    • Desactive temporalmente la réplica mediante una sentencia ALTER.

      Code Snippet
      1
      ALTER VIRTUAL TABLE <virtual_table_name> DISABLE REPLICA;

      A continuación, se puede volver a activar más tarde. (Sustituya DESASABLE por ENABLE).

    • Elimine la réplica mediante un comando DROP.

      Code Snippet
      12
      ALTER VIRTUAL TABLE <virtual_table_name> DROP REPLICA;

Ha llegado al final de esta unidad y ha aprendido sobre los diferentes enfoques para replicar datos.