Réplication de données de PostgreSQL vers Snowflake
Découvrez comment répliquer des données de PostgreSQL vers Snowflake à l'aide d'OCI GoldenGate.
Avant de commencer
Pour mener à bien ce démarrage rapide, vous devez disposer des éléments suivants :
-
Installation de PostgreSQL pour servir de base de données source (voir Configuration de l'environnement)
-
Ouvrez le port 5432 dans la liste de sécurité de votre VCN
-
Une base de données Snowflake servant de base de données cible.
Configuration de l'environnement : PostgreSQL
Afin de configurer l'environnement pour ce démarrage rapide, procédez comme suit :
-
Exécutez les commandes suivantes pour installer PostgreSQL.
-
Installez le serveur PostgreSQL :
sudo yum install postgresql-server -
Installez le module postgresql-contrib pour éviter cette exception SQL :
sudo yum install postgresql-contrib -
Créez un cluster de base de données PostgreSQL :
sudo postgresql-setup --initdb -
Activez le service postgresql.service :
sudo systemctl enable postgresql.service -
Démarrez postgresql.service :
sudo systemctl start postgresql.service
-
-
Par défaut, PostgreSQL n'autorise que les connexions locales. Autoriser la connectivité à distance à PostgreSQL.
-
Dans
/var/lib/pgsql/data/postgresql.conf, préparez la base de données pour la réplication. -
Localisez et supprimez le commentaire
listen_addresses = 'localhost'et remplacez localhost par un astérisque (`) :listen_addresses = '*' -
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.confpour 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 md5Pour plus d'informations, reportez-vous à Fichier pg_hba.conf.
- Redémarrez le serveur PostgreSQL :
sudo systemctl restart postgresql.service- 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 -
-
Ouvrez le port 5432 dans la liste de sécurité de votre VCN.
-
> sudo su - postgres > psqlRemarque : vous pouvez également saisir
sudo su - postgres psqlsi l'exemple ci-dessus ne fonctionne pas. -
Paramétrer PostgreSQL.
-
Téléchargez et exécutez seedSRCOCIGGLL_PostgreSQL.sql pour configurer la base de données et charger les données échantillon.
-
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; -
-
Environnement mis en place : Snowflake
-
Créez un utilisateur GoldenGate dans Snowflake avec les privilèges appropriés.
-
Créez des tables cible à l'aide de l'exemple de schéma.
Assurez-vous que les tables et l'utilisateur ont bien été créés.
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.
-
Créez un déploiement pour la base de données PostgreSQL source.
-
Créez un déploiement Big Data pour la base de données Snowflake cible.
-
Créez une connexion PostgreSQL avec les valeurs suivantes :
-
Pour Type, sélectionnez Serveur PostgreSQL dans la liste déroulante.
-
Dans Nom de base de données, entrez
ociggll. -
Pour Hôte, entrez l'adresse IP publique de l'instance Compute sur laquelle PostgreSQL s'exécute.
-
Dans Port, saisissez
5432. -
Dans Nom utilisateur, entrez
ggadmin. -
Pour Mot de passe, entrez votre mot de passe.
-
Pour Protocole de sécurité, sélectionnez Plain dans la liste déroulante.
-
-
Créez une connexion Snowflake avec les valeurs suivantes :
-
Pour URL de connexion, entrez
jdbc:snowflake://<account_identifier>.snowflakecomputing.com/?warehouse=<warehouse name>&db=OCIGGLL.Remarque : veillez à remplacer
<account_identifier>et<warehouse name>par les valeurs appropriées. -
Pour Type d'authentification, sélectionnez Authentification de base dans la liste déroulante.
-
Dans Nom utilisateur, entrez un nom.
-
Pour Mot de passe, entrez un mot du passe.
-
-
(Facultatif) Si votre déploiement Big Data n'a pas d'adresse publique, créez une connexion à GoldenGate, puis affectez cette connexion au déploiement PostgreSQL source.
-
Affectez la connexion PostgreSQL source au déploiement PostgreSQL.
-
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 :
-
Lancez la console de déploiement PostgreSQL GoldenGate :
-
Sur la page Déploiements, sélectionnez le déploiement PostgreSQL pour en visualiser les détails.
-
Sur la page de détails de déploiement PostgreSQL, sélectionnez Lancement de la console.
-
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.
-
-
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.
-
Sur la page TRANDATA, en regard des informations TRANDATA, sélectionnez Ajouter TRANDATA (icône Plus).
-
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_ociggllet vérifier que les tables ont été ajoutées.
Tâche 3 : créer les extractions
-
Ajoutez l'extraction de capture de données de modification :
-
Dans la navigation de gauche, sélectionnez Extractions,
-
Sur la page Extractions, sélectionnez Ajouter une extraction (icône Plus), puis renseignez les champs comme suit :
-
Dans la page Extract Information :
-
Pour Type d'extraction, sélectionnez Extraction de capture de données de modification.
-
Dans Nom de processus, entrez un nom pour l'extraction, par exemple
ECDC. -
Sélectionnez Suivant.
-
-
Dans la page Extract Options :
-
Pour les informations d'identification source, sélectionnez Oracle GoldenGate dans la liste déroulante Domaine.
-
Sélectionnez la base de données PostgreSQL source dans la liste déroulante Alias.
-
Dans Nom de trace d'extraction, saisissez un nom de trace à deux caractères, tel que
C1. -
Sélectionnez Suivant.
-
-
Sur la page Paramètres d'extraction, remplacez
MAP *.*, TARGET *.*;par l'élément suivant :TABLE SRC_OCIGGLL.*;
-
-
Sélectionnez Créer et exécuter.
-
-
Ajoutez l'extraction de chargement initial :
-
Sur la page Extractions, sélectionnez Ajouter une extraction, puis remplissez le formulaire Ajouter une extraction comme suit :
-
Dans la page Extract Information :
-
Pour le type d'extraction, sélectionnez Extraction de chargement initial.
-
Dans Nom de processus, entrez un nom, tel que
EIL. -
Sélectionnez Suivant.
-
-
Dans la page Extract Options :
-
Pour les informations d'identification source, sélectionnez Oracle GoldenGate dans la liste déroulante Domaine.
-
Sélectionnez la base de données PostgreSQL dans la liste déroulante Alias.
-
Dans Nom de piste d'extraction, saisissez un nom de piste à deux caractères, tel que
I1. -
Sélectionnez Suivant.
-
-
Dans la page Extract Parameters, remplacez le contenu de la zone de texte par ce qui suit :
EXTRACT EIL USERIDALIAS PostgreSQL_Compute, DOMAIN OracleGoldenGate EXTFILE I1, PURGE TABLE src_ociggll.*;Remarque : avant de passer à l'étape suivante, veillez à enlever le paramètre
SOURCEDBdevantUSERIDALIAS.
-
-
Sélectionnez Créer et exécuter.
-
Vous revenez à la page Extractions, où vous pouvez voir le début de l'extraction.
Tâche 4 : créer le chemin de distribution pour l'extraction du chargement initial
Pour créer un chemin de distribution pour l'extraction de chargement initial, procédez comme suit :
-
Sur la page Déploiements de la console Oracle Cloud, sélectionnez le déploiement Big Data cible.
-
Sur la page de détails du déploiement, sélectionnez Lancer la console, puis connectez-vous en tant qu'administrateur.
-
Si vous utilisez la banque d'informations d'identification IAM, passez à l'étape Créer un chemin de distribution. Si vous utilisez la banque d'informations d'identification GoldenGate, créez un utilisateur avec lequel GoldenGate source se connecte à GoldenGate cible.
-
Dans le menu de navigation, sélectionnez Administration des utilisateurs.
-
Sélectionnez Ajouter un nouvel utilisateur (icône Plus), renseignez les champs comme suit, puis sélectionnez Soumettre :
-
Dans Nom utilisateur, entrez
ggsnet. -
Dans Rôle, sélectionnez Opérateur.
-
Indiquez le mot de passe à deux reprises pour vérification.
-
-
-
Dans la console de déploiement PostgreSQL source, créez une connexion de chemin pour l'utilisateur créé à l'étape précédente.
-
Dans le menu de navigation, sélectionnez Connexions de chemin.
-
Sélectionnez Ajouter une connexion de chemin (icône Plus), renseignez les champs comme suit, puis sélectionnez Soumettre :
-
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.
-
-
-
Créer un chemin de distribution.
-
Dans la barre de menus du service, sélectionnez Chemins, puis Ajouter un chemin de distribution (icône Plus).
-
Remplissez le formulaire Ajouter un chemin comme suit :
-
Dans la page Path Information :
-
Dans Nom du chemin, saisissez un nom pour ce chemin.
-
Sélectionnez Suivant.
-
-
Dans la page Source Options :
-
Pour Extraction source, laissez ce champ vide.
-
Dans Nom de piste, saisissez le nom du suivi de l'extraction de chargement initial (
I1). -
Sélectionnez Suivant.
-
-
Dans la page Target Options :
-
Dans Cible, sélectionnez WSS.
-
Dans Hôte cible, entrez l'URL du déploiement cible, sans https :// ni barre oblique de fin.
-
Dans Numéro de port, saisissez
443. -
Dans Nom de la trace, entrez
I1. -
Dans Méthode d'authentification cible, sélectionnez Alias d'ID utilisateur.
-
Dans Domaine, entrez le nom de domaine créé à l'étape précédente.
-
Dans Alias, entrez l'alias créé à l'étape précédente (
dpuser). -
Sélectionnez Suivant.
-
-
-
Sélectionnez Créer et exécuter.
Vous revenez à la page Distribution Service où vous pouvez consulter le chemin créé.
-
-
Dans la console de déploiement cible cible, vérifiez le chemin de destinataire créé consécutifment au chemin de distribution :
-
Sélectionnez Chemins.
-
Consultez les détails du parcours.
-
Tâche 5 : ajouter la réplication pour le chargement initial
-
Dans la console de déploiement Big Data cible, ajoutez le processus de réplication de chargement initial.
-
Dans le menu de navigation, sélectionnez Réplications, puis Ajouter une réplication (icône Plus).
-
Dans la page Replicats, renseignez les champs Ajouter une réplication comme suit :
-
Dans la page Replication Information :
-
Pour Type de réplication, sélectionnez Classique ou Coordonné.
-
Dans Nom de processus, entrez un nom, tel que
RIL. -
Sélectionnez Suivant.
-
-
Dans la page Replicat Options :
-
Dans Nom de traçabilité Replicat, saisissez le nom de l'arborescence de traçabilité à partir de l'étape 2 (
I1). -
Pour Informations d'identification cible, sélectionnez le domaine et l'alias de la connexion Snowflake.
-
Pour Alias disponibles, sélectionnez un alias dans la liste déroulante, tel que Snowflake.
-
(Facultatif) Activez le stockage externe pour sélectionner un emplacement intermédiaire disponible dans la liste déroulante.
-
Sélectionnez Suivant.
-
-
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; -
Sur la page Propriétés, vérifiez les propriétés, puis sélectionnez Créer et exécuter.
Vous revenez à la page Replicats, dans laquelle vous pouvez consulter les détails de la réplication.
-
-
-
Pour vérifier le chargement initial, 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 au chargement initial.
Tâche 6 : créer le chemin de distribution pour la capture des données de modification
-
Dans la console de déploiement PostgreSQL source, sélectionnez Service de distribution.
-
Sélectionnez Ajouter un chemin de distribution.
-
Remplissez le formulaire Ajouter un chemin comme suit :
-
Dans la page Path Information :
-
Dans Nom de chemin, entrez un nom.
-
Sélectionnez Suivant.
-
-
Dans la page Source Options :
-
Pour Extraction source, sélectionnez l'extraction de capture des données de modification (
ECDC). -
Dans Nom de la trace, sélectionnez le fichier trace de capture de données de modification (
C1). -
Sélectionnez Suivant.
-
-
Dans la page Target Options :
-
Dans Cible, sélectionnez WSS.
-
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).
-
Dans Numéro de port, saisissez
443. -
Dans Nom de la trace, entrez
C1. -
Dans Méthode d'authentification cible, sélectionnez Alias d'ID utilisateur.
-
Dans Domaine, saisissez le nom de domaine.
-
Saisissez l'alias dans Alias.
-
-
Sélectionnez Créer un chemin et exécuter.
-
-
Dans la console de déploiement Big Data cible, sélectionnez Service de destinataire, puis vérifiez le chemin du destinataire créé.
Tâche 7 : ajouter une réplication pour 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 Snowflake.
-
Ajoutez la réplication.
-
Dans la console de déploiement Big Data cible, sélectionnez Service d'administration, puis dans le menu de navigation, sélectionnez Réplications.
-
Sur la page Réplications, sélectionnez Ajouter une réplication (icône Plus), puis complétez le formulaire Ajouter une réplication comme suit :
-
Dans la page Replicat Information :
-
Pour Type de réplication, sélectionnez Classique ou Coordonné.
-
Dans Nom de processus, entrez un nom, tel que
RCDC. -
Sélectionnez Suivant.
-
-
Dans la page Replicat Options :
-
Dans Nom de traces Replicat, saisissez le nom de l'arborescence de traces de l'étape 3 (
C1). -
Pour Informations d'identification cible, sélectionnez le domaine et l'alias de la connexion Snowflake.
-
(Facultatif) Activez le stockage externe pour sélectionner un emplacement intermédiaire disponible dans la liste déroulante.
-
-
Sur la page Fichiers de paramètres, ajoutez le mapping suivant, puis sélectionnez Suivant :
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, puis sélectionnez Créer et exécuter.
Vous revenez à la page Replicats, dans laquelle vous pouvez consulter les détails de la réplication.
-
-
-
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 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);
-
-
Dans la console de déploiement PostgreSQL source, sélectionnez
RCDC, puis Statistiques. Vérifiez quesrc_ociggll.src_citycomporte 10 insertions.Remarque : si l'extraction n'a capturé aucune insertion, redémarrez l'extraction
ECDC. -
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.