Replica dei dati da PostgresSQL a Snowflake mediante l'handler di streaming

Scopri come utilizzare OCI GoldenGate per replicare i dati da PostgreSQL a Snowflake utilizzando l'handler di streaming.

Prima di iniziare

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

  • Accesso al database OCI con PostgreSQL
  • Aprire la porta 5432 nella lista di sicurezza della VCN utilizzata dal database OCI con PostgreSQL
  • Accesso a Snowflake

Impostare il database OCI con PostgreSQL

  1. Creare un database OCI con PostgreSQL.
    1. In OCI PostgreSQL:
      1. Fare clic su Configurazioni.
      2. Utilizzare una configurazione esistente, ad esempio PostgreSQL.VM.Standard.E5.Flex-14-0_51.
      3. Fare clic su Copia configurazione, rinominarla, aggiungere wal_level in Variabili utente (lettura/scrittura) e impostarla su 'logica'.
      4. Fare clic su Crea.
      5. Per ulteriori informazioni, vedere Copia di una configurazione.
    2. Utilizzare la configurazione con wal_level impostato su true quando si crea il sistema DB. Per ulteriori informazioni, vedere Creazione di un sistema di database.
  2. Connettiti a OCI PostgreSQL. Per ulteriori informazioni, vedere Connessione a un database.
  3. Creare un database e un utente per GoldenGate in OCI PostgreSQL:
    1. Database
      1. creare ociggll di database;
      2. \c ociggll;
      3. creare lo schema src_ociggll;
      4. Caricare uno script di esempio (seedSRCOCIGGLL_PostgreSQL.sql)
    2. Utente
      1. creare l'utente ggadmin con la password '<password>';
      2. GRANT ALL PRIVILEGES ON DATABASE ociggll TO ggadmin;
      3. GRANT SELEZIONA SU TUTTE LE TAVOLE IN SCHEMA src_ociggll A ggadmin;

Impostare il database Snowflake

  1. Crea database Snowflake.
  2. Gli utenti devono creare una coppia di chiavi pubblica e privata per l'autenticazione in Snowflake.
  3. Creare un utente specifico per GoldenGate in Snowflake con privilegi appropriati.
  4. Aggiungere la chiave pubblica all'utente Snowflake, ad esempio: ALTER USER example_user SET RSA_PUBLIC_KEY='MIIBIjANBgkqh...';
  5. Creare tabelle di destinazione utilizzando lo schema di esempio.

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. GoldenGate per PostgreSQL 23ai è obbligatorio.
  2. Creare una distribuzione PostgreSQL per il database PostgreSQL di origine.
  3. Creare una distribuzione Big Data per il database Snowflake di destinazione.
  4. Creare una connessione PostgreSQL con i seguenti valori:
    1. Per Tipo, selezionare OCI PostgreSQL dall'elenco a discesa.
    2. Per Nome database, immettere ociggll.
    3. Per Nome utente, immettere ggadmin.
    4. In Password, immettere la password.
    5. Per Security Protocol, selezionare TLS dall'elenco a discesa e quindi selezionare Preferisci.
  5. Creare una connessione Snowflake con i seguenti valori:
    1. Per 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 coppia di chiavi dall'elenco a discesa.

      Nota

      L'autenticazione tramite coppia di chiavi è l'unico tipo di autenticazione supportato per lo streaming Snowflake.
    3. Per Nome utente, immettere un nome.
    4. Carica la chiave privata creata in precedenza.
    5. Immettere la password della chiave privata nel campo Password della chiave privata.
  6. Creare una connessione a GoldenGate per la distribuzione dei Big Data di destinazione, quindi assegnare questa connessione alla distribuzione PostgreSQL di origine.
  7. Assegnare la connessione PostgreSQL di origine alla distribuzione PostgreSQL.
  8. Assegnare la connessione Snowflake alla distribuzione dei Big Data di destinazione.

Task 2: Abilita registrazione 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.

      Nota

      L'accesso è obbligatorio se IAM non è stato selezionato come area di memorizzazione delle credenziali durante la creazione di una distribuzione.
  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 Estrai, selezionare Modifica acquisizione dati Estrai.
        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 Registrati, quindi su Avanti.
      • Nella pagina Parametri Estrai aggiungere:
        TABLE src_ociggll.*;
    3. Fare clic su Crea ed esegui.
  2. Aggiungere il caricamento iniziale Estrazione:
    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 Carico iniziale Estrai.
        2. In 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 di estrazione sostituire TABLE *.* con gli elementi riportati di seguito.
        TABLE src_ociggll.*;
    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:
      • Per Nome utente, immettere ggsnet.
      • In Ruolo, selezionare Operatore.
      • Immettere due volte la password per la 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 modulo Aggiungi percorso come indicato di seguito.
      • Nella pagina Informazioni percorso:
        1. In 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 Protocollo di destinazione, 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 OAuth.

          Nota

          Selezionare UserID Alias se GoldenGate è stato selezionato come area di memorizzazione delle credenziali durante la creazione di una distribuzione. In caso contrario, selezionare OAuth.
        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 Replicat coordinato.
        2. In 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. In Destinazione, selezionare Fiocco di neve.
        3. Per Credenziali di destinazione, selezionare Dominio e Alias per la connessione Snowflake.
        4. Per Alias disponibili, selezionare un alias dall'elenco a discesa, ad esempio Fiocco di neve.
        5. Selezionare Streaming.
        6. 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à e aggiungere jvm.bootoptions= -Djdk.lang.processReaperUseDefaultStackSize=true.
      5. 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 modulo Aggiungi percorso come indicato di seguito.
    1. Nella pagina Informazioni percorso:
      1. In 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 Destinazione, 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 OAuth.

        Nota

        Selezionare UserID Alias se GoldenGate è stato selezionato come area di memorizzazione delle credenziali durante la creazione di una distribuzione. In caso contrario, selezionare OAuth.
      6. In 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 il file 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. In 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 Destinazione, selezionare Fiocco di neve.
        3. In Credenziali di destinazione, selezionare il dominio e l'alias per la connessione Snowflake.
        4. Selezionare Streaming.
      • Nella pagina File dei parametri aggiungere il mapping riportato di seguito, quindi fare clic su Avanti.
        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;
      • Nella pagina Proprietà esaminare le proprietà, aggiungere il mapping riportato di seguito, quindi fare clic su Crea ed esegui.
        jvm.bootoptions= -Djdk.lang.processReaperUseDefaultStackSize=true

    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.