Répliquer les données de PostgresSQL vers Snowflake à l'aide du programme de traitement de flux

Découvrez comment utiliser OCI GoldenGate pour répliquer des données de PostgreSQL vers Snowflake à l'aide du programme de traitement de diffusion en continu.

Avant de commencer

Pour suivre ce démarrage rapide, vous devez disposer des éléments suivants :

  • Accès à la base de données OCI avec PostgreSQL
  • Ouvrez le port 5432 dans la liste de sécurité du VCN utilisé par la base de données OCI avec PostgreSQL
  • Accès à Snowflake

Configurer la base de données OCI 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 d'utilisateur (lecture/écriture) et réglez-la à 'logique'.
      4. Cliquez sur Créer.
      5. Pour plus d'informations, voir Copie d'une configuration.
    2. Utilisez la configuration avec wal_level réglé à Vrai lors de la création du système de base de données. Pour plus d'informations, voir Création d'un système de base de données.
  2. Connectez-vous à OCI PostgreSQL. Pour plus d'informations, voir 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 la base de données ociggll;
      2. \c ociggll;
      3. créer le schéma src_ociggll;
      4. Charger un exemple de script (seedSRCOCIGGLL_PostgreSQL.sql)
    2. Utilisateur
      1. créer l'utilisateur ggadmin avec le mot de passe '<password>';
      2. DONNEZ TOUS LES PRIVILÈGES SUR L'OCIGGLE DE BASE DE DONNÉES À Ggadmin;
      3. SÉLECTIONNEZ TOUS LES TABLES DE SCHEMA src_ociggll À ggadmin;

Configurer 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 cibles à l'aide d'exemples de schéma.

Tâche 1 : Créer des ressources GoldenGate pour OCI

Cet exemple de démarrage rapide nécessite des déploiements et des connexions pour la source et la cible.
  1. GoldenGate pour PostgreSQL 23ai est requis.
  2. Créez un déploiement PostgreSQL pour la base de données PostgreSQL source.
  3. Créez un déploiement du service de mégadonnées pour la base de données Snowflake cible.
  4. Créez une connexion PostgreSQL avec les valeurs suivantes :
    1. Pour Type, sélectionnez OCI PostgreSQL dans la liste déroulante.
    2. Pour Nom de la base de données, entrez ociggll.
    3. Pour Nom d'utilisateur, entrez ggadmin.
    4. Pour Mot de passe, entrez votre mot de passe.
    5. Pour 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. Pour URL de connexion, entrez jdbc:snowflake://<account_identifier>.snowflakecomputing.com/?warehouse=<warehouse name>&db=OCIGGLL.

      Note :

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

      Note :

      L'authentification par paire de clés est le seul type d'authentification pris en charge pour le service de diffusion en continu Snowflake.
    3. Pour Nom d'utilisateur, entrez un nom.
    4. Chargez la clé privée que vous avez créée précédemment.
    5. Entrez la phrase secrète de la clé privée dans le champ Mot de passe de la clé privée.
  6. Créez une connexion à GoldenGate pour le déploiement du service de mégadonnées 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 du service de mégadonnées cible.

Tâche 2 : Activer la journalisation supplémentaire

Pour activer la journalisation supplémentaire :
  1. Lancez la console de déploiement de GoldenGate pour PostgreSQL :
    1. Dans la page Déploiements, sélectionnez le déploiement PostgreSQL pour en afficher les détails.
    2. Dans la page des détails du déploiement PostgreSQL, cliquez sur Lancer la console.
    3. Dans la page de connexion à la console de déploiement, entrez les données d'identification de l'administrateur GoldenGate fournies à l'étape 1 de la tâche 1.

      Note :

      La connexion est requise si le service IAM n'a pas été sélectionné en tant que magasin de données d'identification lors de la création d'un déploiement.
  2. Dans GoldenGate 23ai, cliquez sur Connexions à la base de données dans la barre de navigation de gauche, puis sur la base de données PostgreSQL source, puis sur Trandata.
  3. Dans la page TRANDATA, à côté de Données TRANDATA, cliquez sur Ajouter TRANDATA (icône plus).
  4. Dans le panneau Trandata, pour Nom du schéma, entrez src_ociggll.*, puis cliquez sur Soumettre.

    Note :

    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 extraits

  1. Ajoutez Change Data Capture Extract :
    1. Dans le menu de navigation de gauche, cliquez sur Extractions,
    2. Dans la page Extractions, cliquez sur Ajouter Extraire (icône plus), puis remplissez les champs comme suit :
      • Dans la page Extraction données :
        1. Pour le type Extraire, sélectionnez Changer la saisie de données Extraire.
        2. Pour Nom du processus, entrez un nom pour Extraire, par exemple ECDC.
        3. Cliquez sur Suivant.
      • Dans la page Options d'extraction :
        1. Pour les données d'identification sources, 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. Pour Extraire le nom de la piste, entrez un nom de piste à deux caractères, par exemple C1.
        4. Cliquez sur S'inscrire, puis sur Suivant.
      • Dans la page Paramètres d'extraction, ajoutez :
        TABLE src_ociggll.*;
    3. Cliquez sur Créer et exécuter.
  2. Ajoutez le chargement initial Extraire :
    1. Dans la page Extractions, cliquez sur Ajouter Extraire, puis remplissez le formulaire Ajouter Extraire comme suit :
      • Dans la page Extraire les informations :
        1. Pour le type Extraire, sélectionnez Chargement initial Extraire.
        2. Pour Nom du processus, entrez un nom, par exemple EIL.
        3. Cliquez sur Suivant.
      • Dans la page Options d'extraction :
        1. Pour les données d'identification sources, 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. Pour Extraire le nom de la piste, entrez un nom de piste à deux caractères, par exemple I1.
        4. Cliquez sur Suivant.
      • Dans la page Extraire les paramètres, remplacez TABLE *.* par ce qui suit :
        TABLE src_ociggll.*;
    2. Cliquez sur Créer et exécuter.
Vous retournez à la page Extractions, où vous pouvez observer le démarrage de l'extraction.

Tâche 4 : Créer Distribution Path pour Initial Load Extract

Pour créer une valeur Distribution Path pour Initial Load Extract :
  1. Dans la console Oracle Cloud, dans la page Déploiements, sélectionnez le déploiement de mégadonnées cible.
  2. Dans la page des détails du déploiement, cliquez sur Lancer la console. Connectez-vous avec les détails de l'utilisateur administrateur créés à la tâche 1, étape 2.
  3. Si vous utilisez le magasin de données d'identification IAM, passez à l'étape Créer une adresse Distribution Path. Si vous utilisez le magasin de données 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 utilisateur (icône plus), remplissez les champs comme suit, puis cliquez sur Soumettre :
      • Pour Nom d'utilisateur, entrez ggsnet.
      • Pour Rôle, sélectionnez Opérateur.
      • Entrez deux fois le mot de passe 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 (icône plus), remplissez les champs comme suit, puis cliquez sur Soumettre :
      • Pour l'alias de données d'identification, entrez dpuser.
      • Pour l'ID utilisateur, entrez ggsnet
      • Pour Mot de passe, entrez le même mot de passe que celui utilisé à l'étape précédente.
  5. Créez une valeur pour 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 Add Path comme suit :
      • Dans la page Path Information :
        1. Dans Nom du chemin, entrez un nom pour le chemin.
        2. Cliquez sur Suivant.
      • Dans la page Options sources :
        1. Pour Source Extract, laissez ce champ vide.
        2. Pour Nom de la piste, entrez le nom de la piste Initial Load Extract (I1).
        3. Cliquez sur Suivant.
      • Dans la page Target Options :
        1. Pour Protocole cible, sélectionnez wss.
        2. Pour Hôte cible, entrez l'URL de déploiement cible, sans https :// ni les barres obliques de fin.
        3. Pour Numéro de port, entrez 443.
        4. Pour Nom de la piste, entrez I1.
        5. Pour Méthode d'authentification cible, sélectionnez OAuth.

          Note :

          Sélectionnez UserID Alias si GoldenGate a été sélectionné comme magasin de données d'identification lors de la création d'un déploiement. Sinon, sélectionnez OAuth.
        6. Pour Nom, entrez le nom du domaine créé à l'étape précédente.
        7. Pour Alias, entrez l'alias créé à l'étape précédente (dpuser).
        8. Cliquez sur Suivant.
    3. Cliquez sur Créer et exécuter.
    Vous retournez à la page Distribution Service où vous pouvez vérifier le chemin créé.
  6. Dans la console de déploiement du service de mégadonnées cible, vérifiez la valeur Receiver Path créée à la suite 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 du service de mégadonnées cible, ajoutez Initial Load Replicat.
    1. Dans le menu de navigation, cliquez sur Réplicats, puis sur Ajouter un processus de réplication (icône plus).
    2. Dans la page Replicats, remplissez les champs Ajouter Replicat comme suit :
      1. Dans la page Replication Information :
        1. Pour Type Replicat, sélectionnez Réplication coordonnée.
        2. Pour Nom du processus, entrez un nom, par exemple RIL.
        3. Cliquez sur Suivant.
      2. Dans la page Replicat Options :
        1. Pour Nom de la piste de réplication, entrez le nom de la piste de la tâche 2 (I1).
        2. Pour Cible, sélectionnez Snowflake.
        3. Pour Données d'identification cibles, sélectionnez le domaine et les alias pour la connexion Snowflake.
        4. Pour Alias disponibles, sélectionnez un alias dans la liste déroulante, tel que 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. Dans 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 retournez à la page Replicats, où vous pouvez consulter les détails de Replicat.

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

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

Tâche 6 : Créez Distribution Path pour Change Data Capture

Pour créer une valeur Distribution Path pour Change Data Capture :
  1. Dans la console du déploiement source PostgreSQL, cliquez sur Service de répartition.
  2. Cliquez sur Ajouter Distribution Path.
  3. Remplissez le formulaire Add Path comme suit :
    1. Dans la page Path Information :
      1. Pour Nom du chemin, entrez un nom.
      2. Cliquez sur Suivant.
    2. Dans la page Options sources :
      1. Pour Source Extract, sélectionnez Change Data Capture Extract (ECDC)).
      2. Pour Nom de la piste, sélectionnez le fichier de piste Change Data Capture (C1).
      3. Cliquez sur Suivant.
    3. Dans la page Target Options :
      1. Pour Cible, sélectionnez wss.
      2. Pour Hôte cible, entrez l'URL de la console de déploiement cible (vous pouvez le trouver dans la page des détails du déploiement, sans barre oblique https :// ni barre oblique de fin.
      3. Pour Numéro de port, entrez 443.
      4. Pour Nom de la piste, entrez C1.
      5. Pour Méthode d'authentification cible, sélectionnez OAuth.

        Note :

        Sélectionnez UserID Alias si GoldenGate a été sélectionné comme magasin de données d'identification lors de la création d'un déploiement. Sinon, sélectionnez OAuth.
      6. Pour Domaine, entrez le nom du domaine.
      7. Pour Alias, entrez l'alias.
    4. Cliquez sur Créer un chemin et exécuter.
  4. Dans la console de déploiement du service de mégadonnées cible, cliquez sur Receiver Service, puis vérifiez la valeur Receiver path créée.

Tâche 7 : Ajouter une valeur 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 du service de mégadonnées cible, cliquez sur Administration Service, puis dans le menu de navigation, cliquez sur Replicats.
    2. Dans la page Replicats, cliquez sur Ajouter Replicat (icône plus), puis remplissez le formulaire Ajouter Replicat comme suit :
      • Dans la page Replicat Information :
        1. Pour Type Replicat, sélectionnez Classic ou Coordinated.
        2. Pour Nom du processus, entrez un nom, par exemple RCDC.
        3. Cliquez sur Suivant.
      • Dans la page Options Replicat :
        1. Pour Nom de la piste Replicat, entrez le nom de la piste de la tâche 3 (C1).
        2. Pour Cible, sélectionnez Snowflake.
        3. Pour Données d'identification cibles, sélectionnez le domaine et l'alias de la connexion Snowflake.
        4. Sélectionnez Diffusion en continu.
      • Dans la page Fichiers de paramètres, ajoutez le mappage 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;
      • Dans la page Propriétés, vérifiez les propriétés, ajoutez le mappage suivant, puis cliquez sur Créer et exécuter :
        jvm.bootoptions= -Djdk.lang.processReaperUseDefaultStackSize=true

    Vous retournez à la page Replicats, où vous pouvez consulter les détails de Replicat.

  2. Vérifiez Change Data Capture :
    1. Effectuez des mises à jour de 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 insertions.

      Note :

      Si Extract n'a saisi aucune insertion, redémarrez ECDC Extract.
    3. Dans la console de déploiement du service de mégadonnées cible, sélectionnez RCDC, consultez ses détails et ses statistiques pour vérifier le nombre d'insertions.

Tâche 8 : Surveiller et tenir à jour les processus

  1. Surveillez la performance.
  2. Gérez les fichiers de piste.