Replicación de datos de PostgresSQL en Snowflake mediante el manejador Streaming

Descubra cómo utilizar OCI GoldenGate para replicar datos de PostgreSQL a Snowflake mediante el manejador de Streaming.

Antes de empezar

Para completar correctamente este inicio rápido, debe tener lo siguiente:

  • Acceso a OCI Database con PostgreSQL
  • Abra el puerto 5432 en la lista de seguridad de la VCN utilizada por OCI Database with PostgreSQL
  • Acceso a Snowflake

Configuración de OCI Database con PostgreSQL

  1. Cree una base de datos de OCI con PostgreSQL.
    1. En OCI PostgreSQL:
      1. Haga clic en Configuraciones.
      2. Utilice una configuración existente, como PostgreSQL.VM.Standard.E5.Flex-14-0_51.
      3. Haga clic en Copiar configuración, cambie el nombre, agregue wal_level en Variables de usuario (lectura/escritura) y defínalo en 'lógico'.
      4. Haga clic en Create.
      5. Consulte Copia de una configuración para obtener más información.
    2. Utilice la configuración con wal_level definido en true al crear el sistema de base de datos. Consulte Creación de un sistema de base de datos para obtener más información.
  2. Conéctese a OCI PostgreSQL. Consulte Conexión a una base de datos para obtener más información.
  3. Cree una base de datos y un usuario para GoldenGate en OCI PostgreSQL:
    1. Base de Datos
      1. crear ociggll de base de datos;
      2. \c ociggll;
      3. crear el esquema src_ociggll;
      4. Cargar secuencia de comandos de ejemplo (seedSRCOCIGGLL_PostgreSQL.sql)
    2. Usuario
      1. crear el usuario ggadmin con la contraseña '<password>';
      2. CONCEDE TODOS LOS PRIVILEGIOS SOBRE LA BASE DE DATOS ociggll A ggadmin;
      3. OTORGAR SELECCIONAR EN TODOS LOS CUADROS DEL ESQUEMA src_ociggll A ggadmin;

Configurar la base de datos Snowflake

  1. Cree la base de datos Snowflake.
  2. Los usuarios deben crear un par de claves pública y privada para autenticarse en Snowflake.
  3. Cree un usuario específicamente para GoldenGate en Snowflake con privilegios adecuados.
  4. Agregue la clave pública al usuario de Snowflake, por ejemplo: ALTER USER example_user SET RSA_PUBLIC_KEY='MIIBIjANBgkqh...';
  5. Cree tablas de destino mediante el esquema de ejemplo.

Tarea 1: Creación de recursos de OCI GoldenGate

En este ejemplo de inicio rápido se necesitan despliegues y conexiones tanto para el origen como para el destino.
  1. Se necesita GoldenGate para PostgreSQL 23ai.
  2. Cree un despliegue PostgreSQL para la base de datos PostgreSQL de origen.
  3. Cree un despliegue de Big Data para la base de datos Snowflake de destino.
  4. Cree una conexión PostgreSQL con los siguientes valores:
    1. En Tipo, seleccione OCI PostgreSQL en la lista desplegable.
    2. En Nombre de base de datos, introduzca ociggll.
    3. En Nombre de usuario, introduzca ggadmin.
    4. En Contraseña, introduzca su contraseña.
    5. En Protocolo de seguridad, seleccione TLS en la lista desplegable y, a continuación, seleccione Preferir.
  5. Cree una conexión de Snowflake con los siguientes valores:
    1. En URL de conexión, introduzca jdbc:snowflake://<account_identifier>.snowflakecomputing.com/?warehouse=<warehouse name>&db=OCIGGLL.

      Note:

      Asegúrese de sustituir <account_identifier> y <warehouse name> por los valores adecuados.
    2. En Tipo de autenticación, seleccione Autenticación de par de claves en la lista desplegable.

      Note:

      La autenticación de par de claves es el único tipo de autenticación soportado para el flujo de Snowflake.
    3. En Nombre de usuario, introduzca un nombre.
    4. Cargue la clave privada que ha creado anteriormente.
    5. Introduzca la contraseña de clave privada en el campo Contraseña de clave privada.
  6. Cree una conexión a GoldenGate para el despliegue de Big Data de destino y, a continuación, asigne esta conexión al despliegue de origen PostgreSQL.
  7. Asigne la conexión PostgreSQL de origen al despliegue PostgreSQL.
  8. Asigne la conexión de Snowflake al despliegue de Big Data de destino.

Tarea 2: Activar el registro complementario

Para activar el registro complementario:
  1. Inicie la consola de despliegue de PostgreSQL GoldenGate:
    1. En la página Despliegues, seleccione el despliegue de PostgreSQL para ver los detalles.
    2. En la página de detalles del despliegue PostgreSQL, haga clic en Iniciar consola.
    3. En la página de conexión de la consola de despliegue, introduzca las credenciales de administrador de GoldenGate proporcionadas en la tarea 1, paso 1.

      Note:

      Es necesario conectarse si no se ha seleccionado IAM como almacén de credenciales al crear un despliegue.
  2. En GoldenGate 23ai, haga clic en Conexiones de base de datos en la navegación izquierda, a continuación, en la base de datos PostgreSQL de origen y, por último, en Trandata.
  3. En la página TRANDATA, junto a Información de TRANDATA, haga clic en Agregar TRANDATA (ícono adicional).
  4. En el panel Trandata, en Nombre de esquema, introduzca src_ociggll.* y, a continuación, haga clic en Enviar.

    Note:

    Utilice el campo de búsqueda para buscar src_ociggll y verificar que se han agregado las tablas.

Tarea 3: Creación de Extracts

  1. Agregue Change Data Capture Extract:
    1. En la navegación izquierda, haga clic en Extractos.
    2. En la página Extractos, haga clic en Agregar extracción (icono más) y, a continuación, complete los campos de la siguiente manera:
      • En la página Información de Extracción:
        1. En Tipo de extracción, seleccione Cambiar extracción de captura de datos.
        2. En Nombre de proceso, introduzca un nombre para Extraer, como ECDC.
        3. Haga clic en Siguiente.
      • En la página Opciones de extracción:
        1. Para las credenciales de origen, seleccione Oracle GoldenGate en la lista desplegable Dominio.
        2. Seleccione la base de datos PostgreSQL de origen en la lista desplegable Alias.
        3. En Extraer nombre de pista, introduzca un nombre de pista de dos caracteres, como C1.
        4. Haga clic en Registrar y, a continuación, haga clic en Siguiente.
      • En la página Parámetros de extracción, agregue:
        TABLE src_ociggll.*;
    3. Haga clic en Crear y ejecutar.
  2. Agregue la extracción de carga inicial:
    1. En la página Extracts, haga clic en Agregar extracción y, a continuación, complete el formulario Agregar extracción de la siguiente manera:
      • En la página Información de extracción:
        1. Para el tipo Extraer, seleccione Extraer carga inicial.
        2. En Nombre de proceso, introduzca un nombre, como EIL.
        3. Haga clic en Siguiente.
      • En la página Opciones de extracción:
        1. Para las credenciales de origen, seleccione Oracle GoldenGate en la lista desplegable Dominio.
        2. Seleccione la base de datos PostgreSQL en la lista desplegable Alias.
        3. For Extract Trail Name, enter a two-character trail name, such as I1.
        4. Haga clic en Siguiente.
      • En la página Parámetros de extracción, sustituya TABLE *.* por lo siguiente:
        TABLE src_ociggll.*;
    2. Haga clic en Crear y ejecutar.
Vuelva a la página Extractos, donde puede observar el inicio de Extract.

Tarea 4: Creación de Distribution Path para Initial Load Extract

Para crear un Distribution Path para Initial Load Extract:
  1. En la consola de Oracle Cloud, en la página Despliegues, seleccione el despliegue de Big Data de destino.
  2. En la página de detalles del despliegue, haga clic en Iniciar consola. Conéctese con los detalles del usuario administrador creados en la tarea 1, paso 2.
  3. Si utiliza el almacén de credenciales de IAM, continúe con el paso Crear Distribution Path. Si utiliza el almacén de credenciales GoldenGate, cree un usuario con el que el origen GoldenGate utilice para conectarse al destino GoldenGate.
    1. En el menú de navegación, haga clic en Administración de usuarios.
    2. Haga clic en Agregar nuevo usuario (icono de más), complete los campos de la siguiente manera y, luego, haga clic en Enviar:
      • En Nombre de usuario, introduzca ggsnet.
      • En Rol, seleccione Operador.
      • Introduzca la contraseña dos veces para su verificación.
  4. En la consola de despliegue de origen PostgreSQL, cree una conexión de ruta para el usuario creado en el paso anterior.
    1. En el menú de navegación, haga clic en Conexiones de ruta.
    2. Haga clic en Agregar conexión de ruta de acceso (icono de signo más), complete los campos como sigue y, después, haga clic en Enviar:
      • En Alias de credencial, introduzca dpuser.
      • En ID de usuario, introduzca ggsnet
      • En Contraseña, introduzca la misma contraseña utilizada en el paso anterior.
  5. Crear Distribution Path.
    1. En la barra de menús del servicio, haga clic en Distribution Service y, a continuación, en Agregar Distribution Path (icono más).
    2. Complete el formulario Agregar ruta de la siguiente manera:
      • En la página Path Information:
        1. En Nombre de ruta, introduzca un nombre para esta ruta.
        2. Haga clic en Siguiente.
      • En la página Opciones de Origen:
        1. En Source Extract (Origen), déjelo en blanco.
        2. En Nombre de pista, introduzca el nombre de pista Initial Load Extract (I1).
        3. Haga clic en Siguiente.
      • En la página Opciones de Destino:
        1. En Protocolo de destino, seleccione wss.
        2. En Host de destino, introduzca la URL de despliegue de destino, sin https:// ni barras inclinadas finales.
        3. En Número de puerto, introduzca 443.
        4. En Nombre de pista, introduzca I1.
        5. En Método de autenticación de destino, seleccione OAuth.

          Note:

          Seleccione UserID Alias si se ha seleccionado GoldenGate como almacén de credenciales al crear un despliegue. De lo contrario, seleccione OAuth.
        6. En Dominio, introduzca el nombre de dominio creado en el paso anterior.
        7. En Alias, introduzca el alias creado en el paso anterior (dpuser).
        8. Haga clic en Siguiente.
    3. Haga clic en Crear y ejecutar.
    Vuelva a la página Distribution Service, donde puede revisar la ruta de acceso creada.
  6. En la consola de despliegue de Big Data de destino, consulte Receiver Path creado como resultado de Distribution path:
    1. Haga clic en Receiver Service.
    2. Revise los detalles de Receiver Path.

Tarea 5: Adición de Replicat para Initial Load

  1. En la consola de despliegue de Big Data de destino, agregue Initial Load Replicat.
    1. En el menú de navegación, haga clic en Replicats y, a continuación, en Add Replicat (icono más).
    2. En la página Replicats, complete los campos Agregar Replicat de la siguiente manera:
      1. En la página Replication Information (Información de replicación):
        1. Para Replicat type, seleccione Coordinated Replicat.
        2. En Nombre de proceso, introduzca un nombre, como RIL.
        3. Haga clic en Siguiente.
      2. En la página Replicat Options:
        1. En Nombre de pista de replicación, introduzca el nombre de la pista de la tarea 2 (I1).
        2. En Destino, seleccione Copo de nieve.
        3. En Credenciales de destino, seleccione el Dominio y el Alias para la conexión Snowflake.
        4. Para Alias disponibles, seleccione un alias en la lista desplegable, como Copo de nieve.
        5. Seleccione Streaming.
        6. Haga clic en Siguiente.
      3. En la página Archivo de parámetros, agregue la siguiente asignación:
        INSERTALLRECORDS
        MAP src_ociggll.src_city, TARGET SRCMIRROR_OCIGGLL.SRC_CITY;
        MAP src_ociggll.src_region, TARGET SRCMIRROR_OCIGGLL.SRC_REGION;
        MAP src_ociggll.src_customer, TARGET SRCMIRROR_OCIGGLL.SRC_CUSTOMER;
        MAP src_ociggll.src_orders, TARGET SRCMIRROR_OCIGGLL.SRC_ORDERS;
        MAP src_ociggll.src_order_lines, TARGET SRCMIRROR_OCIGGLL.SRC_ORDER_LINES;
        MAP src_ociggll.src_product, TARGET SRCMIRROR_OCIGGLL.SRC_PRODUCT;
      4. En la página Properties, revise las propiedades y agregue jvm.bootoptions= -Djdk.lang.processReaperUseDefaultStackSize=true.
      5. Haga clic en Crear y ejecutar.

    Vuelva a la página Replicats, donde puede revisar los detalles de Replicat.

  2. Para verificar Initial Load, conéctese a la base de datos Snowflake y ejecute las siguientes consultas:
    select * from SRCMIRROR_OCIGGLL.SRC_CITY;
    select * from SRCMIRROR_OCIGGLL.SRC_CUSTOMER;

    La salida debe devolver los datos que se han cargado en las tablas de la base de datos de destino como resultado de Initial Load.

Tarea 6: Creación de Distribution Path para Change Data Capture

Para crear un Distribution Path para Change Data Capture:
  1. En la consola de despliegue de origen PostgreSQL, haga clic en Servicio de distribución.
  2. Haga clic en Agregar Distribution Path.
  3. Complete el formulario Agregar ruta de la siguiente manera:
    1. En la página Path Information:
      1. En Nombre de ruta, introduzca un nombre.
      2. Haga clic en Siguiente.
    2. En la página Opciones de Origen:
      1. En Origen Extract, seleccione Change Data Capture Extract (ECDC)).
      2. En Nombre de pista, seleccione el archivo de pista Change Data Capture (C1).
      3. Haga clic en Siguiente.
    3. En la página Opciones de Destino:
      1. En Destino, seleccione wss.
      2. En Host de Destino, introduzca la URL de la consola de despliegue de destino (puede encontrarla en la página de detalles del despliegue, sin https:// ni barras diagonales.
      3. En Número de puerto, introduzca 443.
      4. En Trail Name (Nombre de pista), introduzca C1.
      5. En Método de autenticación de destino, seleccione OAuth.

        Note:

        Seleccione UserID Alias si se ha seleccionado GoldenGate como almacén de credenciales al crear un despliegue. De lo contrario, seleccione OAuth.
      6. En Dominio, introduzca el nombre de dominio.
      7. En Alias, introduzca el alias.
    4. Haga clic en Crear ruta y ejecutar.
  4. En la consola de despliegue de Big Data de destino, haga clic en Receiver Service y, a continuación, revise el Receiver path creado.

Tarea 7: adición de Replicat para Change Data Capture

Realice actualizaciones en la base de datos PostgreSQL de origen para verificar la replicación en Snowflake.
  1. Agregue Replicat.
    1. En la consola de despliegue de Big Data de destino, haga clic en Administration Service y, a continuación, en el menú de navegación, haga clic en Replicats.
    2. En la página Replicats, haga clic en Agregar Replicat (icono más) y, a continuación, complete el formulario Agregar Replicat de la siguiente manera:
      • En la página Replicat Information:
        1. Para tipo Replicat, seleccione Classic o Coordinated.
        2. En Nombre de proceso, introduzca un nombre, como RCDC.
        3. Haga clic en Siguiente.
      • En la página Opciones de Replicat:
        1. En Replicat Nombre de pista, introduzca el nombre de la pista de la tarea 3 (C1).
        2. En Destino, seleccione Copo de nieve.
        3. En Credenciales de destino, seleccione el dominio y el alias para la conexión Snowflake.
        4. Seleccione Streaming.
      • En la página Archivos de parámetros, agregue la siguiente asignación y, a continuación, haga clic en Siguiente:
        INSERTALLRECORDS 
        MAP src_ociggll.src_city, TARGET SRCMIRROR_OCIGGLL.SRC_CITY;
        MAP src_ociggll.src_region, TARGET SRCMIRROR_OCIGGLL.SRC_REGION;
        MAP src_ociggll.src_customer, TARGET SRCMIRROR_OCIGGLL.SRC_CUSTOMER;
        MAP src_ociggll.src_orders, TARGET SRCMIRROR_OCIGGLL.SRC_ORDERS;
        MAP src_ociggll.src_order_lines, TARGET SRCMIRROR_OCIGGLL.SRC_ORDER_LINES;
        MAP src_ociggll.src_product, TARGET SRCMIRROR_OCIGGLL.SRC_PRODUCT;
      • En la página Propiedades, revise las propiedades, agregue la siguiente asignación y, a continuación, haga clic en Crear y ejecutar:
        jvm.bootoptions= -Djdk.lang.processReaperUseDefaultStackSize=true

    Vuelva a la página Replicats, donde puede revisar los detalles de Replicat.

  2. Verifique Change Data Capture:
    1. Realice actualizaciones en la base de datos PostgreSQL de origen para verificar la replicación en Snowflake. Ejecute el siguiente script para realizar inserciones en la base de datos PostgreSQL:
      Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1000,'Houston',20,743113);
      Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1001,'Dallas',20,822416);
      Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1002,'San Francisco',21,157574);
      Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1003,'Los Angeles',21,743878);
      Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1004,'San Diego',21,840689);
      Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1005,'Chicago',23,616472);
      Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1006,'Memphis',23,580075);
      Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1007,'New York City',22,124434);
      Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1008,'Boston',22,275581);
      Insert into src_ociggll.src_city (CITY_ID,CITY,REGION_ID,POPULATION) values (1009,'Washington D.C.',22,688002);
    2. En la consola de despliegue PostgreSQL de origen, seleccione RCDC y, a continuación, haga clic en Estadísticas. Verifique que src_ociggll.src_city tenga 10 inserciones.

      Note:

      Si Extract no ha capturado ninguna inserción, reinicie ECDC Extract.
    3. En la consola de despliegue de Big Data de destino, seleccione RCDC, revise sus detalles y estadísticas para verificar el número de inserciones.

Tarea 8: Supervisión y mantenimiento de procesos

  1. Supervise el rendimiento.
  2. Gestione los archivos de pista.