Implémentation des tables de réplication

Objective

After completing this lesson, you will be able to améliorez les performances avec des répliques.

Tables de réplication

Nous avons appris comment choisir entre la virtualisation et la réplication de vos données. Mais que se passe-t-il si vous décidez de commencer par la virtualisation, mais que vous voudrez peut-être passer ultérieurement à la réplication en raison de mauvaises performances ?

Dans un premier temps, la création d'un rapport au-dessus d'une table virtuelle peut sembler une bonne option car cette approche prend en charge une implémentation rapide et une maintenance facile.

La diapositive montre un rapport exécuté sur un tableau virtuel.

Mais dans certains cas, la réplication des données distantes vers le système SAP HANA local peut offrir de meilleures performances de requête que l'accès aux données dans une table distante. Vous pouvez donc envisager d'abandonner l'approche de virtualisation et de réimplémenter une approche de réplication.

Mais le problème avec le changement d'approche de mise à disposition de données est que vous auriez besoin d'ajuster toutes les applications pour pointer vers la nouvelle table cible où les données répliquées sont chargées. Cela générerait des tâches de transport et de test dont vous ne voudriez peut-être pas être accablé.

La solution pour ce scénario consiste à implémenter des tables de réplication. Il s'agit d'une fonctionnalité de réplication de données.

La diapositive montre un rapport exécuté sur une table répliquée.

Une table de réplication se trouve à côté d'une table virtuelle et a la même structure. La table de réplication capture et stocke les données en temps réel.

Cette diapositive compare un rapport exécuté par rapport à un tableau virtuel par rapport à un tableau répliqué.

La fonctionnalité clé de l'implémentation d'une table de réplication est un bouton à bascule qui vous permet de basculer facilement entre la table virtuelle et la table de réplication. Cela signifie que vous pouvez passer à la table de réplication si les performances commencent à se dégrader et revenir en arrière lorsque les performances s'améliorent.

Quand basculer ?

Vous pouvez facilement identifier les requêtes à distance problématiques et les cas dans lesquels il peut être avantageux de basculer à l'aide de deux vues de suivi :

  • M_EXPENSIVE_STATEMENTS
  • M_REMOTE_STATEMENTS

Lorsque la durée d'exécution d'une instruction SQL exécutée sur une table virtuelle dépasse un certain seuil, elle est incluse dans la vue de monitorage M_EXPENSIVE_STATEMENTS.

Les zones communes dans la vue de monitorage M_EXPENSIVE_STATEMENTS et la vue de monitorage M_REMOTE_STATEMENTS peuvent être utilisées pour rechercher les requêtes distantes d'instructions SQL lentes et donc les tables virtuelles qui bénéficieraient d'un basculement vers une réplique.

Définition de table de réplication

Pour basculer entre les données répliquées et la table virtuelle, une table de réplication correspondante doit être ajoutée à la table virtuelle.

Voici quelques caractéristiques des tables de réplication :

  • Chaque table virtuelle ne peut avoir qu'une seule table de réplication.
  • Une table de réplication est mise à jour en temps réel lorsque la table source est mise à jour.

    La réplication en temps réel est prise en charge uniquement pour les sources distantes qui prennent en charge la capture des données de modification en temps réel (CDM).

    Sinon, vous pouvez charger des données dans la table de temps en temps. Votre réplique serait alors une réplique d'instantané.

  • Les tables de réplication sont automatiquement générées et stockées dans un schéma interne, géré par un utilisateur interne. Ils sont cachés dans les coulisses.

Remarque

Il existe une fonctionnalité appelée Tables de réplication propres à l'utilisateur qui permettrait de modifier la structure de la table de réplication (par exemple, pour ajouter un partitionnement afin d'améliorer les performances de requête de la table répliquée).

Ce type de table de réplication est créé dans un schéma utilisateur et peut donc être modifié.

Basculer vers Réplique et Revenir à la table virtuelle

  • Pour ajouter une réplique à une table virtuelle, exécutez l'instruction suivante :
    Code Snippet
    12
    ALTER VIRTUAL TABLE <virtual_table_name> ADD SHARED [SNAPSHOT] REPLICA;
  • Pour accéder à nouveau directement à la table virtuelle, vous devez :
    • Pour une requête spécifique, utilisez un HINT pour remplacer le mode de lecture afin d'utiliser la table virtuelle et non la réplique.

      Code Snippet
      12
      SELECT * FROM <virtual_table_name> WITH HINT(NO_VIRTUAL_TABLE_REPLICA);

      ou utilisez une instruction SET avant d'exécuter la requête.

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

    • Désactivez temporairement la réplique à l'aide d'une instruction ALTER.

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

      Il peut ensuite être réactivé ultérieurement. (Remplacez DISABLE par ENABLE).

    • Supprimez la réplique à l'aide d'une commande DROP.

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

Vous êtes arrivé à la fin de ce chapitre et avez appris les différentes approches de réplication des données.