Replica dei dati da PostgreSQL a Snowflake

Impara a replicare i dati da PostgreSQL a Snowflake utilizzando OCI GoldenGate.

Prima di iniziare

Per completare correttamente questo QuickTart, è necessario disporre dei seguenti elementi:

  • Installazione PostgreSQL da utilizzare come database di origine (le istruzioni di installazione sono riportate nell'impostazione dell'ambiente).
  • Aprire la porta 5432 nella lista di sicurezza della VCN.
  • Un database Snowflake da utilizzare come database di destinazione.

Ambiente impostato: PostgreSQL

Per impostare l'ambiente per questo Quickstart:
  1. Eseguire i comandi seguenti per installare PostgreSQL.
    1. Installare il server PostgreSQL:
      sudo yum install postgresql-server
    2. Installare il modulo postgresql-contrib per evitare questa eccezione SQL:
      sudo yum install postgresql-contrib
    3. Creare un nuovo cluster di database PostgreSQL:
      sudo postgresql-setup --initdb
    4. Abilitare postgresql.service:
      sudo systemctl enable postgresql.service
    5. Avviare postgresql.service:
      sudo systemctl start postgresql.service
  2. Per impostazione predefinita, PostgreSQL consente solo connessioni locali. Consenti connettività remota a PostgreSQL.
    1. In /var/lib/pgsql/data/postgresql.conf, preparare il database per la replica.
    2. Individuare e decommentare listen_addresses = 'localhost' e modificare localhost in un asterisco (*):
      listen_addresses = '*'
    3. Impostare i parametri indicati di seguito:
      • wal_level = logical
      • max_replication_slots = 1
      • max_wal_senders = 1
      • track_commit_timestamp = on

      Nota

      Configurare /var/lib/pgsql/data/pg_hba.conf per assicurarsi che l'autenticazione client sia impostata per consentire le connessioni da un host Oracle GoldenGate. Ad esempio:
      #Allow connections from remote hosts
      host    all    all    0.0.0.0/0    md5
      Per ulteriori informazioni, vedere Il file pg_hba.conf.
    4. Riavviare il server PostgreSQL:
      sudo systemctl restart postgresql.service
  3. Se si utilizza Oracle Cloud Compute per ospitare PostgreSQL, aprire la porta 5432:
    sudo firewall-cmd --permanent --add-port=5432/tcp
    sudo firewall-cmd --reload
    sudo firewall-cmd --list-all
  4. Aprire la porta 5432 nella lista di sicurezza della VCN.
  5. Connetti a PostgreSQL.
    > sudo su - postgres
    > psql

    Nota

    In alternativa, è possibile immettere sudo su - postgres psql se l'esempio precedente non funziona.
  6. Impostare PostgreSQL.
    1. Scaricare ed eseguire seedSRCOCIGGLL_PostgreSQL.sql per impostare il database e caricare i dati di esempio.
    2. Eseguire i seguenti comandi per impostare l'utente (assicurarsi di sostituire <password> con una password effettiva):
      create user ggadmin with password '<password>';
      alter user ggadmin with SUPERUSER;
      GRANT ALL PRIVILEGES ON DATABASE ociggll TO ggadmin;

Ambiente impostato: Snowflake

  1. Creare un utente GoldenGate in Snowflake con privilegi appropriati.
  2. Creare tabelle di destinazione utilizzando lo schema di esempio.

Assicurarsi che le tabelle e l'utente siano stati creati correttamente.

Task 1: creare le risorse OCI GoldenGate

Questo esempio di avvio rapido richiede distribuzioni e connessioni sia per l'origine che per la destinazione.
  1. Creare una distribuzione per il database PostgreSQL di origine.
  2. Creare una distribuzione Big Data per il database Snowflake di destinazione.
  3. Creare una connessione PostgreSQL con i seguenti valori:
    1. Per Tipo, selezionare PostgreSQL Server dall'elenco a discesa.
    2. Per Nome database, immettere ociggll.
    3. Per l'host, immettere l'IP pubblico dell'istanza di computazione su cui viene eseguito PostgreSQL.
    4. Per Porta immettere 5432.
    5. Per Nome utente immettere ggadmin.
    6. In Password, immettere la password.
    7. Per Protocollo di sicurezza, selezionare Plain dall'elenco a discesa.
  4. Creare una connessione Snowflake con i seguenti valori:
    1. Per l'URL di connessione, immettere jdbc:snowflake://<account_identifier>.snowflakecomputing.com/?warehouse=<warehouse name>&db=OCIGGLL.

      Nota

      Assicurarsi di sostituire <account_identifier> e <warehouse name> con i valori appropriati.
    2. Per Tipo di autenticazione, selezionare Autenticazione di base dall'elenco a discesa.
    3. Per Nome utente, immettere un nome.
    4. In Password immettere una password.
  5. (Facoltativo) Se la distribuzione Big Data non dispone di un endpoint pubblico, creare una connessione a GoldenGate, quindi assegnare questa connessione alla distribuzione PostgreSQL di origine.
  6. Assegnare la connessione PostgreSQL di origine alla distribuzione PostgreSQL.
  7. Assegnare la connessione Snowflake alla distribuzione dei Big Data di destinazione.

Task 2: Abilita il log supplementare

Per abilitare il log supplementare:
  1. Avviare la console di distribuzione PostgreSQL GoldenGate:
    1. Nella pagina Distribuzioni, selezionare la distribuzione PostgreSQL per visualizzarne i dettagli.
    2. Nella pagina dei dettagli della distribuzione PostgreSQL fare clic su Avvia console.
    3. Nella pagina di collegamento della console di distribuzione, immettere le credenziali di amministrazione GoldenGate fornite nel task 1, passo 1.
  2. In GoldenGate 23ai, fare clic su Connessioni al database nella navigazione a sinistra, quindi sul database PostgreSQL di origine e infine su Trandata.
  3. Nella pagina TRANDATA, accanto alle informazioni TRANDATA, fare clic su Aggiungi TRANDATA (icona più).
  4. Nel pannello Trandata, in Nome schema, immettere src_ociggll.*, quindi fare clic su Sottometti.

    Nota

    Utilizzare il campo di ricerca per cercare src_ociggll e verificare che le tabelle siano state aggiunte.

Task 3: creare le estrazioni

  1. Aggiungere il file Change Data Capture Extract:
    1. Nella navigazione a sinistra, fare clic su Estrazioni,
    2. Nella pagina Estrazioni, fare clic su Aggiungi Estrazione (icona più), quindi completare i campi come indicato di seguito.
      • Nella pagina Informazioni estrazione:
        1. Per Tipo di estrazione, selezionare Modifica acquisizione dati Estrazione.
        2. In Nome processo, immettere un nome per Estrai, ad esempio ECDC.
        3. Fare clic su Successivo.
      • Nella pagina Opzioni estrazione:
        1. Per le credenziali di origine, selezionare Oracle GoldenGate dall'elenco a discesa Dominio
        2. Selezionare il database PostgreSQL di origine dall'elenco a discesa Alias.
        3. In Estrai nome trail, immettere un nome di trail di due caratteri, ad esempio C1.
        4. Fare clic su Successivo.
      • Nella pagina Parametri di estrazione sostituire MAP *.*, TARGET *.*; con gli elementi riportati di seguito.
        TABLE SRC_OCIGGLL.*;
    3. Fare clic su Crea ed esegui.
  2. Aggiungere l'estrazione del caricamento iniziale:
    1. Nella pagina Estrazioni, fare clic su Aggiungi Estrai, quindi completare il form Aggiungi Estrai nel modo seguente:
      • Nella pagina Estrai informazioni:
        1. Per il tipo Estrai, selezionare Caricamento iniziale Estrai.
        2. Per Nome processo, immettere un nome, ad esempio EIL.
        3. Fare clic su Successivo.
      • Nella pagina Opzioni estrazione:
        1. Per le credenziali di origine, selezionare Oracle GoldenGate dall'elenco a discesa Dominio.
        2. Selezionare il database PostgreSQL dall'elenco a discesa Alias.
        3. In Estrai nome trail, immettere un nome trail di due caratteri, ad esempio I1.
        4. Fare clic su Successivo.
      • Nella pagina Parametri Estrai, sostituire il contenuto dell'area di testo con i seguenti elementi:
        EXTRACT EIL
        USERIDALIAS PostgreSQL_Compute, DOMAIN OracleGoldenGate
        EXTFILE I1, PURGE
        TABLE src_ociggll.*;

        Nota

        Assicurarsi di rimuovere il parametro SOURCEDB davanti a USERIDALIAS prima di procedere.
    2. Fare clic su Crea ed esegui.
Si torna alla pagina Estrazioni, in cui è possibile osservare l'avvio di Estrazione.

Task 4: creare il file Distribution Path per Initial Load Extract

Per creare un Distribution Path per Initial Load Extract:
  1. Nella console di Oracle Cloud, nella pagina Distribuzioni, selezionare la distribuzione dei Big Data destinazione.
  2. Nella pagina dei dettagli della distribuzione, fare clic su Avvia console. Eseguire il login con i dettagli utente amministratore creati nel task 1, passo 2.
  3. Se si utilizza l'area di memorizzazione delle credenziali IAM, passare al passo Crea Distribution Path. Se si utilizza l'area di memorizzazione delle credenziali GoldenGate, creare un utente con cui utilizzare l'origine GoldenGate per connettersi alla destinazione GoldenGate.
    1. Nel menu di navigazione fare clic su Amministrazione utenti.
    2. Fare clic su Aggiungi nuovo utente (icona più), completare i campi come indicato di seguito, quindi fare clic su Sottometti:
      • In Nome utente immettere ggsnet.
      • In Ruolo, selezionare Operatore.
      • Immettere due volte la password per verifica.
  4. Nella console di distribuzione origine PostgreSQL creare una connessione percorso per l'utente creata nel passo precedente.
    1. Nel menu di navigazione fare clic su Connessioni percorso.
    2. Fare clic su Aggiungi connessione percorso (icona più), completare i campi come indicato di seguito, quindi fare clic su Sottometti:
      • Per Alias credenziale, immettere dpuser.
      • Per l'ID utente, immettere ggsnet
      • Per Password, immettere la stessa password utilizzata nel passo precedente.
  5. Creare un Distribution Path.
    1. Nella barra dei menu del servizio, fare clic su Distribution Service, quindi su Aggiungi Distribution Path (icona più).
    2. Completare il form Aggiungi percorso come riportato di seguito.
      • Nella pagina Informazioni percorso:
        1. Per Nome percorso, immettere un nome per questo percorso.
        2. Fare clic su Successivo.
      • Nella pagina Opzioni di origine:
        1. Per Origine Extract, lasciare vuoto.
        2. In Nome traccia, immettere il nome del trail Initial Load Extract (I1).
        3. Fare clic su Successivo.
      • Nella pagina Opzioni target:
        1. Per Target, selezionare wss.
        2. Per Host di destinazione, immettere l'URL di distribuzione di destinazione, senza l'https:// o le barre finali.
        3. In Numero porta, immettere 443.
        4. Per Nome percorso, immettere I1.
        5. Per Metodo di autenticazione target, selezionare Alias UserID.
        6. In Dominio, immettere il nome di dominio creato nel passo precedente.
        7. In Alias, immettere l'alias creato nel passo precedente (dpuser).
        8. Fare clic su Successivo.
    3. Fare clic su Crea ed esegui.
    Si torna alla pagina Distribution Service in cui è possibile rivedere il percorso creato.
  6. Nella console di distribuzione dei Big Data destinazione, esaminare il file Receiver Path creato come risultato del file Distribution path:
    1. Fare clic su Receiver Service.
    2. Esaminare i dettagli di Receiver Path.

Task 5: aggiungere Replicat per Initial Load

  1. Nella console di distribuzione dei Big Data destinazione, aggiungere Initial Load Replicat.
    1. Nel menu di navigazione, fare clic su Replicate, quindi su Aggiungi Replicat (icona più).
    2. Nella pagina Replicats, completare i campi Aggiungi Replicat come indicato di seguito.
      1. Nella pagina Informazioni replica:
        1. Per tipo Replicat, selezionare Classico o Coordinato.
        2. Per Nome processo, immettere un nome, ad esempio RIL.
        3. Fare clic su Successivo.
      2. Nella pagina Opzioni Replicat:
        1. In Nome trail replicato, immettere il nome del trail dal task 2 (I1).
        2. Per Credenziali di destinazione, selezionare Dominio e Alias per la connessione Snowflake.
        3. Per Alias disponibili, selezionare un alias dall'elenco a discesa, ad esempio Fiocco di neve.
        4. (Facoltativo) Abilita memoria esterna per selezionare una posizione area intermedia disponibile dall'elenco a discesa.
        5. Fare clic su Successivo.
      3. Nella pagina File parametri aggiungere il mapping seguente:
        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. Nella pagina Proprietà, esaminare le proprietà, quindi fare clic su Crea ed esegui.

    Si torna alla pagina Replicats, dove è possibile rivedere i dettagli di Replicat.

  2. Per verificare il file Initial Load, connettersi al database Snowflake ed eseguire le seguenti query:
    select * from SRCMIRROR_OCIGGLL.SRC_CITY;
    select * from SRCMIRROR_OCIGGLL.SRC_CUSTOMER;

    L'output deve restituire i dati caricati nelle tabelle del database di destinazione come risultato del comando Initial Load.

Task 6: creare il file Distribution Path per Change Data Capture

Per creare un Distribution Path per Change Data Capture:
  1. Nella console di distribuzione origine PostgreSQL, fare clic su Servizio di distribuzione.
  2. Fare clic su Aggiungi Distribution Path.
  3. Completare il form Aggiungi percorso come riportato di seguito.
    1. Nella pagina Informazioni percorso:
      1. Per Nome percorso, immettere un nome.
      2. Fare clic su Successivo.
    2. Nella pagina Opzioni di origine:
      1. Per Origine Extract, selezionare Change Data Capture Extract (ECDC)).
      2. In Nome percorso, selezionare il file trail Change Data Capture (C1).
      3. Fare clic su Successivo.
    3. Nella pagina Opzioni target:
      1. Per Target, selezionare wss.
      2. Per Host di destinazione, immettere l'URL della console di distribuzione di destinazione (è possibile trovarlo nella pagina dei dettagli della distribuzione, senza l'https:// o le barre finali.
      3. In Numero porta, immettere 443.
      4. Per Nome percorso, immettere C1.
      5. Per Metodo di autenticazione target, selezionare Alias UserID.
      6. Per Dominio, immettere il nome del dominio.
      7. Per Alias, immettere l'alias.
    4. Fare clic su Crea percorso ed esegui.
  4. Nella console di distribuzione dei Big Data di destinazione, fare clic su Receiver Service, quindi esaminare il file Receiver path creato.

Task 7: aggiungere un Replicat per Change Data Capture

Eseguire gli aggiornamenti al database PostgreSQL di origine per verificare la replica in Snowflake.
  1. Aggiungere Replicat.
    1. Nella console di distribuzione dei Big Data di destinazione, fare clic su Administration Service, quindi nel menu di navigazione fare clic su Replicats.
    2. Nella pagina Replicats, fare clic su Aggiungi Replicat (icona più), quindi completare il form Aggiungi Replicat come indicato di seguito.
      • Nella pagina Informazioni su Replicat:
        1. Per tipo Replicat, selezionare Classic o Coordinated.
        2. Per Nome processo, immettere un nome, ad esempio RCDC.
        3. Fare clic su Successivo.
      • Nella pagina Opzioni Replicat:
        1. In Replicat Nome trail, immettere il nome del trail dal task 3 (C1).
        2. In Credenziali di destinazione, selezionare il dominio e l'alias per la connessione Snowflake.
        3. (Facoltativo) Abilita memoria esterna per selezionare una posizione area intermedia disponibile dall'elenco a discesa.
      • Nella pagina File dei parametri aggiungere il mapping riportato di seguito, quindi fare clic su Avanti.
        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;
      • Nella pagina Proprietà, esaminare le proprietà, quindi fare clic su Crea ed esegui.

    Si torna alla pagina Replicats, dove è possibile rivedere i dettagli di Replicat.

  2. Verifica Change Data Capture:
    1. Eseguire gli aggiornamenti al database PostgreSQL di origine per verificare la replica in Snowflake. Eseguire lo script seguente per eseguire gli inserimenti nel database 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. Nella console di distribuzione PostgreSQL di origine, selezionare RCDC, quindi fare clic su Statistiche. Verificare che src_ociggll.src_city contenga 10 inserimenti.

      Nota

      Se Extract non ha acquisito alcun inserimento, riavviare ECDC Extract.
    3. Nella console di distribuzione dei Big Data di destinazione, selezionare RCDC, esaminare i relativi dettagli e Statistiche per verificare il numero di inserimenti.

Task 8: Monitorare e gestire i processi

  1. Monitorare le prestazioni.
  2. Gestisci file trail.