Replicar datos de PostgreSQL a Google BigQuery

Descubre cómo utilizar OCI GoldenGate para replicar datos de PostgreSQL en Google BigQuery.

Antes de empezar

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

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

Configuración del entorno: PostgreSQL

Para configurar el entorno para este inicio rápido:

  1. Ejecute los siguientes comandos para instalar PostgreSQL.

    1. Instale el servidor PostgreSQL:

      sudo yum install postgresql-server
    2. Instale el módulo postgresql-contrib para evitar esta excepción SQL:

      sudo yum install postgresql-contrib
    3. Cree un nuevo cluster de base de datos PostgreSQL:

      sudo postgresql-setup --initdb
    4. Active postgresql.service:

      sudo systemctl enable postgresql.service
    5. Inicie postgresql.service:

      sudo systemctl start postgresql.service
  2. Por defecto, PostgreSQL solo permite conexiones locales. Permitir conectividad remota a PostgreSQL.

    1. En /var/lib/pgsql/data/postgresql.conf, prepare la base de datos para la replicación.

    2. Localice y quite el comentario de listen_addresses = 'localhost' y cambie localhost a un asterisco ("):

      listen_addresses = '*'
    3. Defina los siguientes parámetros de la siguiente manera:

      • wal_level = logical

      • max_replication_slots = 1

      • max_wal_senders = 1

      • track_commit_timestamp = on

      Nota:

      Configure /var/lib/pgsql/data/pg_hba.conf para asegurarse de que la autenticación de cliente está definida para permitir conexiones desde un host de Oracle GoldenGate. Por ejemplo, agregue lo siguiente:

      #Allow connections from remote hosts
      
      host all all 0.0.0.0/0 md5

      Consulte The pg_hba.conf File para obtener más información.

      1. Reinicie el servidor de PostgreSQL:
      sudo systemctl restart postgresql.service
      1. Si utiliza Oracle Cloud Compute para alojar PostgreSQL, abra el puerto 5432:
      sudo firewall-cmd --permanent --add-port=5432/tcp
      sudo firewall-cmd --reload
      sudo firewall-cmd --list-all
    4. Abra el puerto 5432 en la lista de seguridad de la VCN.

    5. Conéctese a PostgreSQL.

      > sudo su - postgres
      > psql

      Nota: También puede introducir sudo su - postgres psql si el ejemplo anterior no funciona.

    6. Definición de PostgreSQL.

      1. Descargue y ejecute seedSRCOCIGGLL_PostgreSQL.sql para configurar la base de datos y cargar los datos de ejemplo.

      2. Ejecute los siguientes comandos para configurar el usuario (asegúrese de sustituir <password> por una contraseña real):

      create user ggadmin with password '<password>';
      alter user ggadmin with SUPERUSER;
      GRANT ALL PRIVILEGES ON DATABASE ociggll TO ggadmin;

Tarea 1: Creación de recursos de OCI GoldenGate

  1. Cree un despliegue para la base de datos PostgreSQL de origen.

  2. Cree un despliegue de Big Data para el destino de Google BigQuery.

  3. Cree una conexión a Google BigQuery de destino.

  4. Cree una conexión a la base de datos PostgreSQL de origen.

    1. Para Tipo, asegúrese de seleccionar el servidor PostgreSQL.

    2. En Nombre de base de datos, introduzca ociggll.

    3. En Host, introduzca la IP pública de la instancia informática en la que se ejecuta PostgreSQL.

    4. En Puerto, introduzca 5432.

    5. En Nombre de usuario, introduzca ggadmin.

    6. En Contraseña, introduzca una contraseña.

    7. En Protocolo de seguridad, seleccione Plain.

  5. Cree una conexión a GoldenGate y, a continuación, asigne esta conexión al despliegue de PostgreSQL de origen.

  6. Asigne la conexión de origen al despliegue de PostgreSQL de destino..

  7. Asigne la Conexión de Destino 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 del despliegue de PostgreSQL, seleccione 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.

      Nota: La conexión es necesaria si IAM no se ha seleccionado como almacén de credenciales al crear un despliegue.

  2. En la consola de despliegue, seleccione Conexiones de base de datos en la navegación izquierda, la base de datos PostgreSQL de origen y, a continuación, Trandata.

  3. En la página Datos de Transacción, junto a Información de TRANDATA, seleccione Agregar Datos de Transacción (icono más).

  4. En el panel Datos de transacción, en Nombre de esquema, introduzca src_ociggll y, a continuación, seleccione Enviar.

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

Tarea 3: Creación del Extract

Para agregar la extracción de captura de datos de cambio:

  1. En la navegación izquierda, seleccione Extracts.

  2. En la página Extracts, seleccione Add Extract (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 el Extract, como ECDC.

      3. Seleccione Next (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 Nombre de pista de extracción, introduzca un nombre de pista de dos caracteres, como C1.

      4. Seleccione Next (Siguiente).

    • En la página Parámetros de Extract, sustituya MAP *.*, TARGET *.*; por lo siguiente:

      TABLE SRC_OCIGGLL.*;
  3. Seleccione Crear y ejecutar.

Volverá a la página Extracts, donde podrá observar el inicio de Extracts.

Tarea 4: Creación de la Ruta de Distribución para la Captura de Cambios en los Datos

Para crear una ruta de distribución para la captura de datos de cambio, complete lo siguiente:

  1. En la consola de Oracle Cloud, en la página Despliegues, seleccione el despliegue de Big Data del destino.

  2. Seleccione Agregar ruta de distribución.

  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. Seleccione Next (Siguiente).

    2. En la página Source Options:

      1. En Extracción de origen, seleccione la extracción de captura de datos de cambio (ECDC).

      2. En Nombre de la pista, seleccione el archivo del registro de captura del cambio de datos (C1).

      3. Seleccione Next (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 encontrarlo en la página de detalles del despliegue, sin https:// ni barras finales).

      3. En Número de puerto, introduzca 443.

      4. En Nombre de la pista, introduzca C1.

      5. En Método de autenticación del destino, seleccione Alias de ID de Usuario.

      6. En Dominio, introduzca el nombre de dominio.

      7. En Alias, introduzca el alias.

    4. Seleccione Create Path and Run.

Tarea 5: Adición de un Replicat

  1. En el menú de navegación de la consola de despliegue de Big Data del destino, seleccione Replicats y, a continuación, seleccione Add Replicat (icono más).

  2. En la página Replicats, seleccione Agregar Replicat (icono más) y, a continuación, complete el formulario Agregar Replicat de la siguiente manera:

    1. En la página Replicat Information:

      1. En Tipo de Replicat, seleccione Paralelo o Replicat Coordinado.

      2. En Nombre de proceso, introduzca un nombre, como RCDC.

      3. Seleccione Next (Siguiente).

    2. En la página Replicat Options:

      1. En Nombre de Pista de Replicat, introduzca el nombre de las pistas desde la tarea 3 (C1).

      2. En Credenciales de destino, seleccione el dominio y alias para la conexión de Google Big Query.

      3. En Ubicaciones temporales disponibles, seleccione Google Cloud Storage en la lista desplegable.

      4. En mediante alias de ubicación temporal, seleccione la conexión de Google Cloud Storage en la lista desplegable.

    3. En la página Archivo de parámetros, agregue la siguiente asignación y, a continuación, seleccione Siguiente:

      MAP *.*, TARGET *.*;
    4. En la página Archivo de propiedades, configure las propiedades necesarias según sea necesario. Busque los marcados como #TODO y, a continuación, seleccione Siguiente.

      Algunas propiedades cuya modificación se debe considerar son:

      • gg.eventhandler.gcs.bucketMappingTemplate: proporcione el nombre del cubo que se utilizará como almacenamiento temporal
  3. Seleccione Crear y ejecutar.

Volverá a la página Replicats, donde podrá revisar los detalles de Replicat.

Tarea 6: Verificación de la captura de cambios en los datos

Realice actualizaciones en la base de datos de PostgreSQL de origen para verificar la replicación en Google BigQuery.

  1. 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 de PostgreSQL de origen, seleccione el nombre de Extract (ECDC) y, a continuación, seleccione Estadísticas. Verifique que src_ocigll.src_city tenga 10 inserciones.

    Nota: Si el Extract no capturó ninguna inserción, reinicie el Extract ECDC.

  3. En la consola de despliegue de Big Data de destino, seleccione el nombre de Replicat, consulte sus detalles y compruebe las estadísticas para verificar el número de inserciones.