Répliquer des données de PostgreSQL vers Google BigQuery

Découvrez comment utiliser OCI GoldenGate pour répliquer des données de PostgreSQL vers Google BigQuery.

Avant de commencer

Pour mener à bien ce démarrage rapide, vous devez disposer des éléments suivants :

Pour mener à bien ce démarrage rapide, vous devez disposer des éléments suivants :

Configuration de l'environnement : PostgreSQL

Afin de configurer l'environnement pour ce démarrage rapide, procédez comme suit :

  1. Exécutez les commandes suivantes pour installer PostgreSQL.

    1. Installez le serveur PostgreSQL :

      sudo yum install postgresql-server
    2. Installez le module postgresql-contrib pour éviter cette exception SQL :

      sudo yum install postgresql-contrib
    3. Créez un cluster de base de données PostgreSQL :

      sudo postgresql-setup --initdb
    4. Activez le service postgresql.service :

      sudo systemctl enable postgresql.service
    5. Démarrez postgresql.service :

      sudo systemctl start postgresql.service
  2. Par défaut, PostgreSQL n'autorise que les connexions locales. Autoriser la connectivité à distance à PostgreSQL.

    1. Dans /var/lib/pgsql/data/postgresql.conf, préparez la base de données pour la réplication.

    2. Localisez et supprimez le commentaire listen_addresses = 'localhost' et remplacez localhost par un astérisque (`) :

      listen_addresses = '*'
    3. Définissez les paramètres suivants comme suit :

      • wal_level = logical

      • max_replication_slots = 1

      • max_wal_senders = 1

      • track_commit_timestamp = on

      Remarque :

      Configurez /var/lib/pgsql/data/pg_hba.conf pour vous assurer que l'authentification client est définie de manière à autoriser les connexions à partir d'un hôte Oracle GoldenGate. Par exemple, ajoutez ce qui suit :

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

      Pour plus d'informations, reportez-vous à Fichier pg_hba.conf.

      1. Redémarrez le serveur PostgreSQL :
      sudo systemctl restart postgresql.service
      1. Si vous utilisez Oracle Cloud Compute pour héberger PostgreSQL, ouvrez le port 5432 :
      sudo firewall-cmd --permanent --add-port=5432/tcp
      sudo firewall-cmd --reload
      sudo firewall-cmd --list-all
    4. Ouvrez le port 5432 dans la liste de sécurité de votre VCN.

    5. Connectez-vous à PostgreSQL.

      > sudo su - postgres
      > psql

      Remarque : vous pouvez également saisir sudo su - postgres psql si l'exemple ci-dessus ne fonctionne pas.

    6. Paramétrer PostgreSQL.

      1. Téléchargez et exécutez seedSRCOCIGGLL_PostgreSQL.sql pour configurer la base de données et charger les données échantillon.

      2. Exécutez les commandes suivantes pour configurer l'utilisateur (veillez à remplacer <password> par un mot de passe réel) :

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

Tâche 1 : créer les ressources OCI GoldenGate

  1. Créez un déploiement pour la base de données PostgreSQL source.

  2. Créez un déploiement Big Data pour le Google BigQuery cible.

  3. Créez une connexion à la Google BigQuery cible.

  4. Créez une connexion à la base de données PostgreSQL source.

    1. Pour Type, assurez-vous de sélectionner PostgreSQL Server.

    2. Dans Nom de base de données, entrez ociggll.

    3. Pour Hôte, entrez l'adresse IP publique de l'instance Compute sur laquelle PostgreSQL s'exécute.

    4. Dans Port, saisissez 5432.

    5. Dans Nom utilisateur, entrez ggadmin.

    6. Pour Mot de passe, entrez un mot du passe.

    7. Pour Protocole de sécurité, sélectionnez Plain.

  5. Créez une connexion à GoldenGate, puis affectez cette connexion au déploiement PostgreSQL source.

  6. Affectez la connexion source au déploiement PostgreSQL source.

  7. Affectez la connexion cible au déploiement Big Data cible.

Tâche 2 : activer la journalisation supplémentaire

Pour activer la journalisation supplémentaire, procédez comme suit :

  1. Lancez la console de déploiement PostgreSQL GoldenGate :

    1. Sur la page Déploiements, sélectionnez le déploiement PostgreSQL pour en visualiser les détails.

    2. Sur la page de détails de déploiement PostgreSQL, sélectionnez Lancement de la console.

    3. Dans la page de connexion à la console de déploiement, entrez les informations d'identification d'administration GoldenGate fournies à l'étape 1 de la tâche 1.

      Remarque : la connexion est requise si IAM n'a pas été sélectionné en tant que banque d'informations d'identification lors de la création d'un déploiement.

  2. Dans la console de déploiement, sélectionnez Connexions de base de données dans la navigation de gauche, puis la base de données PostgreSQL source et Trandata.

  3. Sur la page TRANDATA, en regard des informations TRANDATA, sélectionnez Ajouter TRANDATA (icône Plus).

  4. Dans le panneau Trandata, dans Nom du schéma, entrez src_ociggll, puis sélectionnez Soumettre.

    Remarque : utilisez le champ de recherche pour rechercher src_ociggll et vérifier que les tables ont été ajoutées.

Tâche 3 : créer l'extraction

Pour ajouter une extraction de capture des données de modification :

  1. Dans la navigation de gauche, sélectionnez Extractions.

  2. Sur la page Extractions, sélectionnez Ajouter une extraction (icône Plus), puis renseignez les champs comme suit :

    • Dans la page Extract Information :

      1. Pour Type d'extraction, sélectionnez Extraction de capture de données de modification.

      2. Dans Nom de processus, entrez un nom pour l'extraction, par exemple ECDC.

      3. Sélectionnez Suivant.

    • Dans la page Extract Options :

      1. Pour les informations d'identification source, sélectionnez Oracle GoldenGate dans la liste déroulante Domaine.

      2. Sélectionnez la base de données PostgreSQL source dans la liste déroulante Alias.

      3. Dans Nom de trace d'extraction, saisissez un nom de trace à deux caractères, tel que C1.

      4. Sélectionnez Suivant.

    • Sur la page Paramètres d'extraction, remplacez MAP *.*, TARGET *.*; par l'élément suivant :

      TABLE SRC_OCIGGLL.*;
  3. Sélectionnez Créer et exécuter.

Vous revenez à la page Extractions, où vous pouvez observer le début des extractions.

Tâche 4 : créer le chemin de distribution pour la capture des données de modification

Pour créer un chemin de distribution pour la capture des données de modification, procédez comme suit :

  1. Sur la page Déploiements de la console Oracle Cloud, sélectionnez le déploiement Big Data cible.

  2. Sélectionnez Ajouter un chemin de distribution.

  3. Remplissez le formulaire Ajouter un chemin comme suit :

    1. Dans la page Path Information :

      1. Dans Nom de chemin, entrez un nom.

      2. Sélectionnez Suivant.

    2. Dans la page Source Options :

      1. Pour Extraction source, sélectionnez l'extraction de capture des données de modification (ECDC).

      2. Dans Nom de la trace, sélectionnez le fichier trace de capture de données de modification (C1).

      3. Sélectionnez Suivant.

    3. Dans la page Target Options :

      1. Dans Cible, sélectionnez WSS.

      2. Pour Hôte cible, entrez l'URL de la console de déploiement cible (vous pouvez la trouver sur la page de détails du déploiement, sans https :// ni barre oblique de fin).

      3. Dans Numéro de port, saisissez 443.

      4. Dans Nom de la trace, entrez C1.

      5. Dans Méthode d'authentification cible, sélectionnez Alias d'ID utilisateur.

      6. Dans Domaine, saisissez le nom de domaine.

      7. Saisissez l'alias dans Alias.

    4. Sélectionnez Créer un chemin et exécuter.

Tâche 5 : ajouter une réplication

  1. Dans le menu de navigation de la console de déploiement Big Data cible, sélectionnez Réplications, puis Ajouter une réplication (icône Plus).

  2. Sur la page Réplications, sélectionnez Ajouter une réplication (icône Plus), puis remplissez le formulaire Ajouter une réplication comme suit :

    1. Dans la page Replicat Information :

      1. Pour Type de réplication, sélectionnez Parallèle ou Réplication coordonnée.

      2. Dans Nom de processus, entrez un nom, tel que RCDC.

      3. Sélectionnez Suivant.

    2. Dans la page Replicat Options :

      1. Dans Nom de traces Replicat, saisissez le nom de l'arborescence de traces de l'étape 3 (C1).

      2. Pour Informations d'identification cible, sélectionnez le domaine et l'alias de la connexion Google Big Query.

      3. Pour Emplacements intermédiaires disponibles, sélectionnez Google Cloud Storage dans la liste déroulante.

      4. Pour via l'alias intermédiaire, sélectionnez la connexion Google Cloud Storage dans la liste déroulante.

    3. Sur la page Fichier de paramètres, ajoutez le mapping suivant, puis sélectionnez Suivant :

      MAP *.*, TARGET *.*;
    4. Dans la page Properties File, configurez les propriétés requises selon vos besoins. Recherchez ceux marqués comme #TODO, puis sélectionnez Suivant.

      Voici quelques propriétés que vous pouvez envisager de modifier :

      • gg.eventhandler.gcs.bucketMappingTemplate : indiquez le nom du bucket qui sera utilisé en tant que stockage intermédiaire
  3. Sélectionnez Créer et exécuter.

Vous revenez à la page Replicats, dans laquelle vous pouvez consulter les détails de la réplication.

Tâche 6 : vérifier la capture des données de modification

Effectuez des mises à jour de la base de données PostgreSQL source pour vérifier la réplication vers Google BigQuery.

  1. Exécutez le script suivant pour effectuer des insertions dans la base de données 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. Dans la console de déploiement PostgreSQL source, sélectionnez le nom de l'extraction (ECDC), puis sélectionnez Statistiques. Vérifiez que src_ociggll.src_city comporte 10 insertions.

    Remarque : si l'extraction n'a capturé aucune insertion, redémarrez l'extraction ECDC.

  3. Dans la console de déploiement Big Data cible, sélectionnez le nom du processus Replicat, affichez ses détails et cochez la case Statistiques pour vérifier le nombre d'insertions.