Replicación de datos mediante tareas de replicación

Objective

After completing this lesson, you will be able to replicar datos mediante tareas de replicación.

Tareas de replicación

Ahora que está familiarizado con el proceso básico de replicación, implementemos la replicación de una manera más sostenible.

Es posible configurar y actualizar la replicación ejecutando sentencias SQL en la consola SQL. Pero este enfoque significa que los objetos que se crean en la base de datos serán propiedad de su ID de usuario y esto puede provocar problemas cuando otros necesiten hacerse cargo de los objetos. Además, el transporte de los objetos de base de datos no es posible.

Se recomienda desarrollar los objetos mediante archivos de origen y, a continuación, crear/desplegar para generar los artefactos de la base de datos en un contenedor HDI.

La tarea de replicación

Esta diapositiva muestra los diferentes pasos al definir una tarea de replicación.

Para gestionar replicaciones, cree un archivo .hdbreptask para definir los metadatos de la replicación. Los metadatos describen:

  • Fuente remota

    Nombre del objeto de fuente remota utilizado para acceder a los datos fuente.

  • Objeto fuente remoto

    Nombre de la tabla, vista o archivo al que desea acceder.

  • Tabla destino

    Nombre de la tabla en la que se almacenarán los datos replicados

  • Comportamiento de replicación

    Puede optar por replicar todos los datos solo una vez. Esto suele denominarse carga inicial. Esto es útil si desea una instantánea de sus datos. También podría seleccionar la replicación en tiempo real sin carga inicial si solo necesita datos futuros. A continuación, también podría querer replicar modificaciones en la estructura de la tabla.

Las opciones disponibles son las siguientes:

  • Sin transferencia de datos

    Si solo desea una copia de la estructura de datos fuente, pero sin los datos fuente. Esto equivale a una sentencia CREATE TABLE <...(new table)> like <...(existing table)>.

  • Solo carga inicial

    Si solo desea una copia de los datos actuales, pero no una replicación de datos futuros. Esto se denomina instantánea.

  • Inicial + tiempo real

    Lo más probable es que desee datos actuales y modificaciones futuras.

  • Inicial + tiempo real con estructura

    Es la misma que la opción anterior, pero también replicará las modificaciones en la estructura de la tabla de origen. Solo funciona para tablas.

  • Tiempo real

    Solo podría necesitar datos futuros, pero no datos actuales.

  • Solo en tiempo real con estructura

    Igual que la opción anterior, pero con la replicación de la estructura de tabla.

Una vez creada/desplegada, la tarea de replicación genera los diferentes objetos necesarios en la base de datos de SAP HANA. Esto incluye:

  • Una tabla virtual
  • Una tabla de destino
  • Un procedimiento de inicio (.START_REPLICATION) para configurar la replicación
  • Un segundo procedimiento (.RS_SP) para ejecutar comandos de suscripción individuales

Debe llamar el procedimiento de inicio principal para crear la suscripción remota, los desencadenadores, etc. La tarea de replicación solo ejecuta una carga inicial.

El segundo procedimiento se puede llamar para mantenimiento o para ejecutar comandos individuales como Restablecer, Soltar o cualquier otro paso de suscripción.

Configuración del proyecto

Si su destino es una base de datos SAP HANA local, utilice Web IDE para SAP HANA.

Si su destino es una base de datos de SAP HANA Cloud, utilice SAP Business Application Studio.

Para ambas herramientas, primero debe configurar un proyecto y un módulo HDB para gestionar sus objetos de desarrollo.

Para acceder a las fuentes remotas, se necesitan los siguientes pasos:

  • Cree y luego añada un servicio proporcionado por el usuario (UPS) como recurso en su archivo mta.yaml.
  • Añada privilegios en un archivo .hdbGrant.

Puede crear el servicio proporcionado por el usuario directamente en SAP Business Application Studio como se muestra en la siguiente captura de pantalla:

Esta diapositiva muestra cómo crear un servicio proporcionado por el usuario en Business Application Studio.

Nota

El nombre de esquema se introduce automáticamente al introducir el nombre de usuario. Pero puede cambiarlo por otro esquema o incluso no especificar ningún esquema.

Si su destino es una base de datos local, puede crear el servicio proporcionado por el usuario en XSA Cockpit:

Esta diapositiva muestra cómo crear un servicio proporcionado por el usuario en XSA Cockpit.

Nota

Tenga cuidado de añadir la etiqueta "hana" si la plantilla no la proporciona.

La plantilla no proporciona ningún parámetro de esquema, pero también puede especificar un nombre de esquema específico.

El archivo .hdbGrant debe incluir las autorizaciones necesarias tanto para el propietario del objeto como para el usuario de la aplicación como se muestra en el siguiente ejemplo:

Esta diapositiva muestra el contenido del archivo .hdbGrant.

Inicie el siguiente vídeo para aprender a configurar el proyecto en Business Application Studio:

Inicie el siguiente vídeo para aprender a configurar el proyecto en SAP Web IDE, si su destino es una base de datos local:

Creación de tarea de replicación

Una vez que su proyecto esté configurado correctamente, puede crear la tarea de replicación utilizando el editor basado en formularios:

Esta diapositiva muestra el editor de tareas de replicación.

Los pasos son los siguientes:

  • Conectarse a la fuente remota
  • Seleccione el objeto fuente deseado
  • Seleccionar propiedad de comportamiento de replicación
  • Crear/Desplegar
  • En el Explorador de base de datos, ejecute el procedimiento de inicio generado.
  • Modificar los datos fuente
  • Verifique la tabla de destino

Inicie el siguiente vídeo para aprender a crear una tarea de replicación: