Répliquer les données de PostgresSQL vers Snowflake à l'aide du gestionnaire Streaming

Découvrez comment utiliser OCI GoldenGate pour répliquer des données de PostgreSQL vers Snowflake à l'aide du gestionnaire Streaming.

Avant de commencer

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

  • Accès à OCI Database avec PostgreSQL
  • Ouvrez le port 5432 dans la liste de sécurité du VCN utilisé par OCI Database with PostgreSQL.
  • Accès à Snowflake

Configuration d'OCI Database avec PostgreSQL

  1. Créez une base de données OCI avec PostgreSQL.
    1. Dans OCI PostgreSQL :
      1. Cliquez sur Configurations.
      2. Utilisez une configuration existante, telle que PostgreSQL.VM.Standard.E5.Flex-14-0_51.
      3. Cliquez sur Copier la configuration, renommez-la, ajoutez wal_level sous Variables utilisateur (lecture/écriture) et définissez-la sur "logique".
      4. Cliquez sur Créer.
      5. Pour plus d'informations, reportez-vous à Copie d'une configuration.
    2. Utilisez la configuration avec wal_level défini sur True lors de la création du système de base de données. Pour plus d'informations, reportez-vous à Création d'un système de base de données.
  2. Connectez-vous à OCI PostgreSQL. Pour plus d'informations, reportez-vous à Connexion à une base de données.
  3. Créez une base de données et un utilisateur pour GoldenGate dans OCI PostgreSQL :
    1. Base de données
      1. créer une base de données ociggll ;
      2. \c ociggll ;
      3. créer le schéma src_ociggll ;
      4. Chargez un exemple de script (seedSRCOCIGGLL_PostgreSQL.sql)
    2. Utilisateur
      1. créer l'utilisateur ggadmin avec le mot de passe '<password>' ;
      2. DONNER TOUTES LES PRIVILEGES SUR LA BASE DE DONNÉES ociggll À ggadmin ;
      3. DONNER SÉLECTIONNER SUR TOUS LES TABLEAUX DU SCHEMA src_ociggll À ggadmin ;

Configuration de la base de données Snowflake

  1. Créer une base de données Snowflake.
  2. Les utilisateurs doivent créer une paire de clés publique et privée pour s'authentifier dans Snowflake.
  3. Créez un utilisateur spécifiquement pour GoldenGate dans Snowflake avec des privilèges appropriés.
  4. Ajoutez la clé publique à l'utilisateur Snowflake, par exemple : ALTER USER example_user SET RSA_PUBLIC_KEY='MIIBIjANBgkqh...';
  5. Créez des tables cible à l'aide d'exemple de schéma.

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

Cet exemple de démarrage rapide nécessite des déploiements et des connexions pour la source et la cible.
  1. GoldenGate est requis pour PostgreSQL 23ai.
  2. Créez un déploiement PostgreSQL pour la base de données PostgreSQL source.
  3. Créez un déploiement Big Data pour la base de données Snowflake cible.
  4. Créez une connexion PostgreSQL avec les valeurs suivantes :
    1. Dans Type, sélectionnez OCI PostgreSQL dans la liste déroulante.
    2. Dans Nom de base de données, entrez ociggll.
    3. Dans Nom utilisateur, entrez ggadmin.
    4. Dans Mot de passe, entrez votre mot de passe.
    5. Dans Protocole de sécurité, sélectionnez TLS dans la liste déroulante, puis Préférer.
  5. Créez une connexion Snowflake avec les valeurs suivantes :
    1. Dans URL de connexion, entrez jdbc:snowflake://<account_identifier>.snowflakecomputing.com/?warehouse=<warehouse name>&db=OCIGGLL.

      Remarques :

      Veillez à remplacer <account_identifier> et <warehouse name> par les valeurs appropriées.
    2. Dans Type d'authentification, sélectionnez Authentification de paire de clés dans la liste déroulante.

      Remarques :

      L'authentification par paire de clés est le seul type d'authentification pris en charge pour Streaming Snowflake.
    3. Dans Nom utilisateur, entrez un nom.
    4. Téléchargez la clé privée que vous avez créée précédemment.
    5. Entrez la phrase de passe de clé privée dans le champ Mot de passe de clé privée.
  6. Créez une connexion à GoldenGate pour le déploiement Big Data cible, puis affectez cette connexion au déploiement PostgreSQL source.
  7. Affectez la connexion PostgreSQL source au déploiement PostgreSQL.
  8. Affectez la connexion Snowflake 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 des détails du déploiement PostgreSQL, cliquez sur Lancer la console.
    3. Sur la page de connexion à la console de déploiement, entrez les informations d'identification d'administrateur GoldenGate fournies à l'étape 1 de la tâche 1.

      Remarques :

      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 GoldenGate 23ai, cliquez sur Connexions de base de données dans la navigation de gauche, puis sur la base de données PostgreSQL source et sur Trandata.
  3. Sur la page TRANDATA, en regard de Informations sur TRANDATA, cliquez sur Ajouter TRANDATA (icône Plus).
  4. Dans le panneau Trandata, pour Nom de schéma, entrez src_ociggll.*, puis cliquez sur Soumettre.

    Remarques :

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

Tâche 3 : créer les extractions

  1. Ajoutez Change Data Capture Extract :
    1. Dans la navigation de gauche, cliquez sur Extractions,
    2. Sur la page Extractions, cliquez sur Ajouter une extraction (icône Plus), puis renseignez les champs comme suit :
      • Sur la page Informations extraction :
        1. Pour le type Extraction, sélectionnez Extraction de la capture de données de modification.
        2. Dans Nom de processus, entrez le nom de l'extraction, par exemple ECDC.
        3. Cliquez sur Suivant.
      • Sur la page Options d'extraction :
        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. Cliquez sur Enregistrer, puis sur Suivant.
      • Sur la page Paramètres d'extraction, ajoutez :
        TABLE src_ociggll.*;
    3. Cliquez sur Créer et exécuter.
  2. Ajoutez l'extraction de chargement initial :
    1. Sur la page Extractions, cliquez sur Ajouter une extraction, puis remplissez le formulaire Ajouter une extraction comme suit :
      • Sur la page Informations sur l'extraction :
        1. Pour le type Extraire, sélectionnez Chargement initial Extraire.
        2. Dans Nom de processus, entrez un nom, tel que EIL.
        3. Cliquez sur Suivant.
      • Sur la page Options d'extraction :
        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 dans la liste déroulante Alias.
        3. Dans Nom de trace d'extraction, saisissez un nom de trace à deux caractères, tel que I1.
        4. Cliquez sur Suivant.
      • Sur la page Paramètres d'extraction, remplacez TABLE *.* par ce qui suit :
        TABLE src_ociggll.*;
    2. Cliquez sur Créer et exécuter.
Vous revenez à la page Extractions, où vous pouvez observer le début de l'extraction.

Tâche 4 : créer le fichier Distribution Path pour Initial Load Extract

Afin de créer un fichier Distribution Path pour Initial Load Extract, procédez comme suit :
  1. Sur la page Déploiements de la console Oracle Cloud, sélectionnez le déploiement Big Data cible.
  2. Sur la page des détails du déploiement, cliquez sur Lancer la console. Connectez-vous avec les détails de l'utilisateur admin créés à l'étape 2 de la tâche 1.
  3. Si vous utilisez la banque d'informations d'identification IAM, passez à l'étape Créer une Distribution Path. Si vous utilisez la banque d'informations d'identification GoldenGate, créez un utilisateur avec lequel la source GoldenGate utilise pour se connecter à la cible GoldenGate.
    1. Dans le menu de navigation, cliquez sur Administration des utilisateurs.
    2. Cliquez sur Ajouter un nouvel utilisateur (icône Plus), renseignez les champs ci-dessous, puis cliquez sur Envoyer :
      • Dans Nom utilisateur, entrez ggsnet.
      • Dans Rôle, sélectionnez Opérateur.
      • Indiquez le mot de passe à deux reprises pour vérification.
  4. Dans la console de déploiement source PostgreSQL, créez une connexion de chemin pour l'utilisateur créé à l'étape précédente.
    1. Dans le menu de navigation, cliquez sur Connexions de chemin.
    2. Cliquez sur Ajouter une connexion de chemin d'accès (icône plus), renseignez les champs comme suit, puis cliquez sur Envoyer :
      • Dans Alias d'informations d'identification, entrez dpuser.
      • Dans ID utilisateur, entrez ggsnet.
      • Dans Mot de passe, entrez le mot de passe utilisé à l'étape précédente.
  5. Créez un fichier Distribution Path.
    1. Dans la barre de menus du service, cliquez sur Distribution Service, puis sur Ajouter Distribution Path (icône Plus).
    2. Remplissez le formulaire Ajouter un chemin comme suit :
      • Sur la page Informations sur le chemin :
        1. Dans Nom de chemin, saisissez le nom de ce chemin.
        2. Cliquez sur Suivant.
      • Sur la page Options source :
        1. Pour Source Extract, laissez ce champ vide.
        2. Dans Nom de trace, saisissez le nom de trace Initial Load Extract (I1).
        3. Cliquez sur Suivant.
      • Dans la page Target Options :
        1. Pour Protocole cible, sélectionnez WSS.
        2. Dans Hôte cible, entrez l'URL de déploiement cible, sans https :// ni barres obliques de fin.
        3. Dans Nombre de port, saisissez 443.
        4. Dans Nom de trace, entrez I1.
        5. Dans Méthode d'authentification cible, sélectionnez OAuth.

          Remarques :

          Sélectionnez UserID Alias si GoldenGate a été sélectionné en tant que banque d'informations d'identification lors de la création d'un déploiement. Sinon, sélectionnez OAuth.
        6. Dans Domaine, entrez le nom de domaine créé à l'étape précédente.
        7. Dans Alias, entrez l'alias créé à l'étape précédente (dpuser).
        8. Cliquez sur Suivant.
    3. Cliquez sur Créer et exécuter.
    Vous revenez à la page Distribution Service sur laquelle vous pouvez vérifier le chemin créé.
  6. Dans la console de déploiement Big Data cible, vérifiez le fichier Receiver Path créé suite à la création de Distribution path :
    1. Cliquez sur Receiver Service.
    2. Vérifiez les détails de Receiver Path.

Tâche 5 : ajouter Replicat pour Initial Load

  1. Dans la console de déploiement Big Data cible, ajoutez Initial Load Replicat.
    1. Dans le menu de navigation, cliquez sur Réplications, puis sur Ajouter une réplication (icône Plus).
    2. Sur la page Replicats, renseignez les champs Ajouter Replicat comme suit :
      1. Sur la page Informations sur la réplication :
        1. Pour Replicat, type, sélectionnez Réplication coordonnée.
        2. Dans Nom de processus, entrez un nom, tel que RIL.
        3. Cliquez sur Suivant.
      2. Sur la page Options de réplication :
        1. Dans Nom de trace de réplication, saisissez le nom de la trace de la tâche 2 (I1).
        2. Pour Cible, sélectionnez Flocon de neige.
        3. Pour Informations d'identification cible, sélectionnez le domaine et l'alias de la connexion Snowflake.
        4. Pour Alias disponibles, sélectionnez un alias dans la liste déroulante, par exemple Snowflake.
        5. Sélectionnez Diffusion en continu.
        6. Cliquez sur Suivant.
      3. Dans la page Parameter File, ajoutez le mapping suivant :
        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. Sur la page Propriétés, vérifiez les propriétés et ajoutez jvm.bootoptions= -Djdk.lang.processReaperUseDefaultStackSize=true.
      5. Cliquez sur Créer et exécuter.

    Vous revenez à la page Replicats, sur laquelle vous pouvez consulter les détails Replicat.

  2. Pour vérifier Initial Load, connectez-vous à la base de données Snowflake et exécutez les requêtes suivantes :
    select * from SRCMIRROR_OCIGGLL.SRC_CITY;
    select * from SRCMIRROR_OCIGGLL.SRC_CUSTOMER;

    La sortie doit renvoyer les données chargées dans les tables de base de données cible suite à Initial Load.

Tâche 6 : créez le fichier Distribution Path pour Change Data Capture.

Afin de créer un fichier Distribution Path pour Change Data Capture, procédez comme suit :
  1. Dans la console de déploiement source PostgreSQL, cliquez sur Service de distribution.
  2. Cliquez sur Ajouter Distribution Path.
  3. Remplissez le formulaire Ajouter un chemin comme suit :
    1. Sur la page Informations sur le chemin :
      1. Dans Nom de chemin, entrez un nom.
      2. Cliquez sur Suivant.
    2. Sur la page Options source :
      1. Pour Source Extract, sélectionnez Change Data Capture Extract (ECDC)).
      2. Dans Nom de trace, sélectionnez le fichier de trace Change Data Capture (C1).
      3. Cliquez sur 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 Nombre de port, saisissez 443.
      4. Dans Nom de trace, entrez C1.
      5. Dans Méthode d'authentification cible, sélectionnez OAuth.

        Remarques :

        Sélectionnez UserID Alias si GoldenGate a été sélectionné en tant que banque d'informations d'identification lors de la création d'un déploiement. Sinon, sélectionnez OAuth.
      6. Pour Domaine, saisissez le nom de domaine.
      7. Dans Alias, saisissez l'alias.
    4. Cliquez sur Créer un chemin et exécuter.
  4. Dans la console de déploiement Big Data cible, cliquez sur Receiver Service, puis vérifiez le fichier Receiver path créé.

Tâche 7 : ajoutez Replicat pour Change Data Capture.

Effectuez des mises à jour de la base de données PostgreSQL source pour vérifier la réplication vers Snowflake.
  1. Ajoutez Replicat.
    1. Dans la console de déploiement Big Data cible, cliquez sur Administration Service, puis dans le menu de navigation, cliquez sur Replicats.
    2. Sur la page Replicats, cliquez sur Ajouter Replicat (icône Plus), puis remplissez le formulaire Ajouter Replicat comme suit :
      • Sur la page Informations sur la réplication :
        1. Pour Replicat type, sélectionnez Classic ou Coordinated.
        2. Dans Nom de processus, entrez un nom, tel que RCDC.
        3. Cliquez sur Suivant.
      • Sur la page Options Replicat :
        1. Dans Replicat Nom de trace, saisissez le nom de la trace de la tâche 3 (C1).
        2. Pour Cible, sélectionnez Flocon de neige.
        3. Pour Informations d'identification cible, sélectionnez le domaine et l'alias de la connexion Snowflake.
        4. Sélectionnez Diffusion en continu.
      • Sur la page Fichiers de paramètres, ajoutez le mapping suivant, puis cliquez sur Suivant :
        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;
      • Sur la page Propriétés, vérifiez les propriétés, ajoutez le mapping suivant, puis cliquez sur Créer et exécuter :
        jvm.bootoptions= -Djdk.lang.processReaperUseDefaultStackSize=true

    Vous revenez à la page Replicats, sur laquelle vous pouvez consulter les détails Replicat.

  2. Vérifiez Change Data Capture :
    1. Effectuez des mises à jour sur la base de données PostgreSQL source pour vérifier la réplication vers Snowflake. 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 RCDC, puis cliquez sur Statistiques. Vérifiez que src_ociggll.src_city comporte 10 insérations.

      Remarques :

      Si Extract n'a capturé aucune insertion, redémarrez ECDC Extract.
    3. Dans la console de déploiement Big Data cible, sélectionnez RCDC, consultez ses détails et ses statistiques pour vérifier le nombre d'insertions.

Tâche 8 : surveiller les processus et en assurer la maintenance

  1. Surveillez les performances.
  2. Gérez les fichiers de trace.