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
Imposta il database OCI con PostgreSQL
-
Creare un database OCI con PostgreSQL.
-
Nel database OCI con PostgreSQL:
-
Selezionare Configurazioni.
-
Utilizzare una configurazione esistente, ad esempio
PostgreSQL.VM.Standard.E5.Flex-14-0_51. -
Selezionare Copia configurazione, rinominarla, aggiungere
wal_levelnelle variabili utente (lettura/scrittura) e impostarla su 'logica'. -
Selezionare Crea.
-
Per ulteriori informazioni, vedere Copia di una configurazione.
-
-
Utilizzare la configurazione con
wal_levelimpostato su true durante la creazione del sistema DB. Per ulteriori informazioni, vedere Creazione di un sistema di database.
-
-
Connettersi al database OCI con PostgreSQL. Per ulteriori informazioni, vedere Connessione a un database.
-
Creare un database e un utente per GoldenGate nel database OCI con PostgreSQL:
-
Database
-
creare ociggll di database;
-
\c ociggll;
-
creare lo schema src_ociggll;
-
-
User
-
creare l'utente
ggadmincon password<password>; -
GRANT TUTTI I PRIVILEGI SU DATABASE ociggll A ggadmin;
-
GRANT SELECT ON ALL TABLES IN SCHEMA src_ociggll TO ggadmin;
-
-
Imposta database Snowflake
-
Gli utenti devono creare una coppia di chiavi pubblica e privata da autenticare in Snowflake.
-
Creare un utente specifico per GoldenGate in Snowflake con privilegi appropriati.
-
Aggiungere la chiave pubblica all'utente Snowflake, ad esempio:
ALTER USER example_user SET RSA_PUBLIC_KEY='MIIBIjANBgkqh...'; -
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.
-
È necessario GoldenGate per PostgreSQL 26ai.
-
Creare una distribuzione PostgreSQL per il database PostgreSQL di origine.
-
Creare una distribuzione Big Data per il database Snowflake di destinazione.
-
Creare una connessione PostgreSQL con i valori seguenti:
-
Per Tipo, selezionare Database OCI con PostgreSQL dall'elenco a discesa.
-
Per Nome database, immettere
ociggll. -
Per Nome utente, immettere
ggadmin. -
In Password, immettere la password.
-
Per Security Protocol, selezionare TLS dall'elenco a discesa, quindi selezionare Prefer.
-
-
Creare una connessione con fiocco di neve con i valori seguenti:
-
Per URL 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. -
Per Tipo di autenticazione, selezionare Autenticazione coppia di chiavi dall'elenco a discesa.
Nota: l'autenticazione della coppia di chiavi è l'unico tipo di autenticazione supportato per lo streaming Snowflake.
-
Per Nome utente, immettere un nome.
-
Caricare la chiave privata creata in precedenza.
-
Immettere la passphrase per la chiave privata nel campo Password della chiave privata.
-
-
Creare una connessione a GoldenGate per la distribuzione Big Data di destinazione, quindi assegnare questa connessione alla distribuzione PostgreSQL di origine.
-
Assegnare la connessione PostgreSQL di origine alla distribuzione PostgreSQL.
-
Assegnare la connessione Snowflake alla distribuzione Big Data di destinazione.
Task 2: Abilita log supplementare
Per abilitare il log supplementare, procedere come segue.
-
Avviare la console di distribuzione PostgreSQL GoldenGate:
-
Nella pagina Distribuzioni selezionare la distribuzione PostgreSQL per visualizzarne i dettagli.
-
Nella pagina dei dettagli della distribuzione PostgreSQL selezionare Avvia console.
-
Nella pagina di connessione della console di distribuzione, immettere le credenziali di amministratore 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.
-
-
Nella console di distribuzione, selezionare Connessioni DB nella navigazione a sinistra, quindi nel database PostgreSQL di origine, quindi in Trandata.
-
Nella pagina TRANDATA, accanto a Informazioni TRANDATA, selezionare Aggiungi TRANDATA (icona più).
-
Nel pannello Trandata, per Nome schema, immettere
src_ociggll, quindi selezionare Sottometti.Nota: utilizzare il campo di ricerca per cercare
src_ocigglle verificare che le tabelle siano state aggiunte.
Task 3: Creazione delle estrazioni
-
Aggiungere l'estrazione di Change Data Capture:
-
Nella navigazione a sinistra selezionare Extracts,
-
Nella pagina Estrazioni, selezionare Aggiungi estrazione (icona più), quindi completare i campi come indicato di seguito.
-
Nella pagina Informazioni estrazione:
-
Per Tipo estrazione, selezionare Modifica estrazione acquisizione dati.
-
In Nome processo immettere un nome per l'estrazione, ad esempio
ECDC. -
Selezionare Next.
-
-
Nella pagina Opzioni estrazione:
-
Per le credenziali di origine, selezionare Oracle GoldenGate dall'elenco a discesa Dominio
-
Selezionare il database PostgreSQL di origine dall'elenco a discesa Alias.
-
Per Nome trail estrazione, immettere un nome trail di due caratteri, ad esempio
C1. -
Selezionare Next.
-
-
Nella pagina Parametri estrazione, sostituire
MAP *.*, TARGET *.*;con quanto segue:TABLE SRC_OCIGGLL.*;
-
-
Selezionare Crea ed esegui.
-
-
Aggiungi estrazione caricamento iniziale:
-
Nella pagina Estrazioni selezionare Aggiungi estrazione, quindi completare il form Aggiungi estrazione come indicato di seguito.
-
Nella pagina Informazioni estrazione:
-
Per il tipo di estrazione, selezionare Estrazione caricamento iniziale.
-
In Nome processo, immettere un nome, ad esempio
EIL. -
Selezionare Next.
-
-
Nella pagina Opzioni estrazione:
-
Per le credenziali di origine, selezionare Oracle GoldenGate dall'elenco a discesa Dominio.
-
Selezionare il database PostgreSQL dall'elenco a discesa Alias.
-
Per Nome trail estrazione, immettere un nome trail di due caratteri, ad esempio
I1. -
Selezionare Next.
-
-
Nella pagina Parametri estrazione, sostituire il contenuto dell'area di testo con quanto segue:
EXTRACT EIL USERIDALIAS PostgreSQL_Compute, DOMAIN OracleGoldenGate EXTFILE I1, PURGE TABLE src_ociggll.*;Nota: prima di passare al parametro
SOURCEDB, assicurarsi di rimuovere il parametroUSERIDALIAS.
-
-
Selezionare Crea ed esegui.
-
Si torna alla pagina Estrazioni, in cui è possibile osservare l'inizio dell'estrazione.
Task 4: Crea percorso di distribuzione per estrazione caricamento iniziale
Per creare un percorso di distribuzione per l'estrazione del caricamento iniziale:
-
Nella console di Oracle Cloud, nella pagina Distribuzioni, selezionare la distribuzione Big Data di destinazione.
-
Nella pagina dei dettagli della distribuzione, selezionare Avvia console, quindi eseguire il login come utente amministratore.
-
Se si utilizza l'area di memorizzazione delle credenziali IAM, passare al passo Crea percorso di distribuzione. Se si utilizza l'area di memorizzazione delle credenziali GoldenGate, creare un utente con il quale GoldenGate di origine utilizza per connettersi a GoldenGate di destinazione.
-
Nel menu di navigazione selezionare Amministrazione utente.
-
Selezionare Aggiungi nuovo utente (icona più), completare i campi come indicato di seguito, quindi selezionare Sottometti.
-
Per Nome utente, immettere
ggsnet. -
Per Ruolo, selezionare Operatore.
-
Immettere due volte la password per la verifica.
-
-
-
Nella console di distribuzione PostgreSQL origine creare una connessione percorso per l'utente creato nel passo precedente.
-
Nel menu di navigazione selezionare Connessioni percorso.
-
Selezionare Aggiungi connessione percorso (icona più), completare i campi come indicato di seguito, quindi selezionare Sottometti.
-
Per l'alias credenziali, immettere
dpuser. -
Per ID utente, immettere
ggsnet -
Per Password, immettere la stessa password utilizzata nel passo precedente.
-
-
-
Creare un percorso di distribuzione.
-
Nella barra dei menu del servizio, selezionare Percorsi, quindi selezionare Aggiungi percorso di distribuzione (icona più).
-
Completare il modulo Aggiungi percorso come indicato di seguito.
-
Nella pagina Informazioni percorso:
-
In Nome percorso, immettere un nome per questo percorso.
-
Selezionare Next.
-
-
Nella pagina Opzioni origine, effettuare le operazioni riportate di seguito.
-
Per Estrazione origine, lasciare vuoto.
-
In Nome percorso, immettere il nome trail estrazione caricamento iniziale (
I1). -
Selezionare Next.
-
-
Nella pagina Opzioni destinazione, effettuare le operazioni riportate di seguito.
-
Per Destinazione, selezionare wss.
-
Per Host di destinazione, immettere l'URL di distribuzione di destinazione senza le barre https:// o le barre finali.
-
In Numero porta, immettere
443. -
Per Nome percorso, immettere
I1. -
Per Metodo di autenticazione destinazione, selezionare Alias ID utente.
-
Per Dominio, immettere il nome di dominio creato nel passo precedente.
-
Per Alias, immettere l'alias creato nel passo precedente (
dpuser). -
Selezionare Next.
-
-
-
Selezionare Crea ed esegui.
Si torna alla pagina Servizio di distribuzione in cui è possibile rivedere il percorso creato.
-
-
Nella console di distribuzione destinazione, esaminare il percorso del destinatario creato come risultato del percorso di distribuzione:
-
Selezionare Percorsi.
-
Esaminare i dettagli del percorso.
-
Task 5: Aggiungi Replicat per caricamento iniziale
-
Nella console di distribuzione Big Data destinazione, aggiungere Replicat caricamento iniziale.
-
Nel menu di navigazione, selezionare Replicat, quindi selezionare Aggiungi Replicat (icona più).
-
Nella pagina Replicat, completare i campi Aggiungi Replicat come indicato di seguito.
-
Nella pagina Informazioni sulla replica:
-
Per Tipo Replicat, selezionare Replicat coordinato.
-
In Nome processo, immettere un nome, ad esempio
RIL. -
Selezionare Next.
-
-
Nella pagina Opzioni Replicat:
-
In Nome trail replica, immettere il nome del trail dal task 2 (
I1). -
Per Destinazione, selezionare Fiocco di neve.
-
Per Credenziali di destinazione, selezionare il dominio e l'opzione Alias per la connessione Snowflake.
-
Per Alias disponibili, selezionare un alias dall'elenco a discesa, ad esempio Snowflake.
-
Selezionare Streaming.
-
Selezionare Next.
-
-
Nella pagina File dei 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; -
Nella pagina Proprietà, rivedere le proprietà e aggiungere
jvm.bootoptions= -Djdk.lang.processReaperUseDefaultStackSize=true. -
Selezionare Crea ed esegui.
-
Si torna alla pagina Replicat, in cui è possibile rivedere i dettagli di Replicat.
-
-
Per verificare il caricamento iniziale, connettersi al database Snowflake ed eseguire le query riportate di seguito.
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 in seguito al caricamento iniziale.
Task 6: Creare il percorso di distribuzione per l'acquisizione dei dati di modifica
-
Nella console di distribuzione PostgreSQL origine, selezionare Servizio di distribuzione.
-
Selezionare Aggiungi percorso di distribuzione.
-
Completare il modulo Aggiungi percorso come indicato di seguito.
-
Nella pagina Informazioni percorso:
-
In Nome percorso, immettere un nome.
-
Selezionare Next.
-
-
Nella pagina Opzioni origine, effettuare le operazioni riportate di seguito.
-
Per Estrazione origine, selezionare Estrazione acquisizione dati modifica (
ECDC). -
In Nome percorso, selezionare il file trail di Change Data Capture (
C1). -
Selezionare Next.
-
-
Nella pagina Opzioni destinazione, effettuare le operazioni riportate di seguito.
-
Per Destinazione, selezionare wss.
-
Per Host di destinazione, immettere l'URL della console di distribuzione di destinazione, disponibile nella pagina dei dettagli della distribuzione, senza le barre https:// o le barre finali.
-
In Numero porta, immettere
443. -
Per Nome percorso, immettere
C1. -
Per Metodo di autenticazione destinazione, selezionare Alias ID utente.
-
Per Dominio, immettere il nome del dominio.
-
Per Alias, immettere l'alias.
-
-
Selezionare Crea percorso ed esegui.
-
Task 7: aggiungere un Replicat per Change Data Capture
Eseguire gli aggiornamenti al database PostgreSQL di origine per verificare la replica in Snowflake.
-
Aggiungere Replicat.
-
Nella console di distribuzione Big Data di destinazione selezionare Servizio di amministrazione, quindi nel menu di navigazione selezionare Replicat.
-
Nella pagina Replicat, selezionare Aggiungi Replicat (icona più), quindi completare il form Aggiungi Replicat come indicato di seguito.
- Nella pagina Informazioni Replicat:
-
Per Tipo Replicat, selezionare Classic o Coordinated.
-
In Nome processo, immettere un nome, ad esempio
RCDC. -
Selezionare Next.
-
- Nella pagina Opzioni Replicat:
-
In Nome trail replica, immettere il nome del trail dal task 3 (
C1). -
Per Destinazione, selezionare Fiocco di neve.
-
Per Credenziali di destinazione, selezionare il dominio e l'alias per la connessione Snowflake.
-
Selezionare Streaming.
-
-
Nella pagina File dei parametri aggiungere il mapping riportato di seguito, quindi selezionare Successivo.
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à rivedere le proprietà, aggiungere il mapping riportato di seguito, quindi selezionare Crea ed esegui.
jvm.bootoptions= -Djdk.lang.processReaperUseDefaultStackSize=true
- Nella pagina Informazioni Replicat:
Si torna alla pagina Replicat, in cui è possibile rivedere i dettagli di Replicat.
-
-
Verifica Change Data Acquisizione:
-
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); -
Nella console di distribuzione PostgreSQL di origine selezionare
RCDC, quindi selezionare Statistiche. Verificare che insrc_ociggll.src_citysiano presenti 10 inserimenti.Nota: se Extract non ha acquisito alcun inserimento, riavviare l'estrazione
ECDC. -
Nella console di distribuzione Big Data di destinazione selezionare
RCDC, esaminare i relativi Dettagli e Statistiche per verificare il numero di inserimenti.
-