Daten aus PostgreSQL in Snowflake replizieren

Hier erfahren Sie, wie Sie Daten mit OCI GoldenGate von PostgreSQL in Snowflake replizieren.

Bevor Sie beginnen

Um diesen Schnellstart erfolgreich abzuschließen, benötigen Sie Folgendes:

  • Eine PostgreSQL-Installation, die als Quelldatenbank dient (Installationsanweisungen folgen in der Einrichtung der Umgebung).
  • Öffnen Sie Port 5432 in der Sicherheitsliste des VCN.
  • Eine Snowflake-Datenbank, die als Zieldatenbank verwendet werden soll.

Umgebung einrichten: PostgreSQL

So richten Sie die Umgebung für diesen Schnellstart ein:
  1. Führen Sie die folgenden Befehle aus, um PostgreSQL zu installieren.
    1. Installieren Sie den PostgreSQL-Server:
      sudo yum install postgresql-server
    2. Installieren Sie das postgresql-contrib-Modul, um diese SQL-Ausnahme zu vermeiden:
      sudo yum install postgresql-contrib
    3. Erstellen Sie ein neues PostgreSQL-Datenbankcluster:
      sudo postgresql-setup --initdb
    4. Aktivieren Sie postgresql.service:
      sudo systemctl enable postgresql.service
    5. Starten Sie postgresql.service:
      sudo systemctl start postgresql.service
  2. Standardmäßig lässt PostgreSQL nur lokale Verbindungen zu. Remotekonnektivität zu PostgreSQL zulassen.
    1. Bereiten Sie die Datenbank in /var/lib/pgsql/data/postgresql.conf für die Replikation vor.
    2. Suchen und entfernen Sie die Kommentarzeichen für listen_addresses = 'localhost', und ändern Sie localhost in ein Sternchen (*):
      listen_addresses = '*'
    3. Legen Sie die folgenden Parameter folgendermaßen fest:
      • wal_level = logical
      • max_replication_slots = 1
      • max_wal_senders = 1
      • track_commit_timestamp = on

      Hinweis:

      Konfigurieren Sie /var/lib/pgsql/data/pg_hba.conf, um sicherzustellen, dass die Clientauthentifizierung so festgelegt ist, dass Verbindungen von einem Oracle GoldenGate-Host zulässig sind. Beispiel: Fügen Sie Folgendes hinzu:
      #Allow connections from remote hosts
      host    all    all    0.0.0.0/0    md5
      Weitere Informationen finden Sie unter Datei pg_hba.conf.
    4. Starten Sie den PostgreSQL-Server neu:
      sudo systemctl restart postgresql.service
  3. Wenn Sie PostgreSQL mit Oracle Cloud Compute hosten, öffnen Sie Port 5432:
    sudo firewall-cmd --permanent --add-port=5432/tcp
    sudo firewall-cmd --reload
    sudo firewall-cmd --list-all
  4. Öffnen Sie Port 5432 in der Sicherheitsliste des VCN.
  5. Stellen Sie eine Verbindung zu PostgreSQL her.
    > sudo su - postgres
    > psql

    Hinweis:

    Alternativ können Sie sudo su - postgres psql eingeben, wenn das obige Beispiel nicht funktioniert.
  6. Richten Sie PostgreSQL ein.
    1. Laden Sie seedSRCOCIGGLL_PostgreSQL.sql herunter, und führen Sie es aus, um die Datenbank einzurichten und die Beispieldaten zu laden.
    2. Führen Sie die folgenden Befehle aus, um den Benutzer einzurichten (stellen Sie sicher, dass Sie <password> durch ein tatsächliches Kennwort ersetzen):
      create user ggadmin with password '<password>';
      alter user ggadmin with SUPERUSER;
      GRANT ALL PRIVILEGES ON DATABASE ociggll TO ggadmin;

Umgebung einrichten: Snowflake

  1. Erstellen Sie einen GoldenGate-Benutzer in Snowflake mit angemessenen Berechtigungen.
  2. Erstellen Sie Zieltabellen mit dem Beispielschema.

Stellen Sie sicher, dass die Tabellen und der Benutzer erfolgreich erstellt wurden.

Aufgabe 1: OCI GoldenGate-Ressourcen erstellen

Für dieses Schnellstartbeispiel sind Deployments und Verbindungen sowohl für die Quelle als auch für das Ziel erforderlich.
  1. Erstellen Sie ein Deployment für die Quelldatenbank PostgreSQL.
  2. Erstellen Sie ein Big Data Deployment für die Zieldatenbank Snowflake.
  3. Erstellen Sie eine PostgreSQL-Verbindung mit den folgenden Werten:
    1. Wählen Sie in der Dropdown-Liste unter Typ die Option PostgreSQL Server aus.
    2. Geben Sie unter Datenbankname ociggll ein.
    3. Geben Sie unter Host die öffentliche IP der Compute-Instanz ein, auf der PostgreSQL ausgeführt wird.
    4. Geben Sie unter Port die Nummer 5432 ein.
    5. Geben Sie unter Benutzername ggadmin ein.
    6. Geben Sie unter Kennwort Ihr Kennwort ein.
    7. Wählen Sie unter Sicherheitsprotokoll in der Dropdown-Liste die Option Einfach aus.
  4. Erstellen Sie eine Snowflake-Verbindung mit den folgenden Werten:
    1. Geben Sie als Verbindungs-URL jdbc:snowflake://<account_identifier>.snowflakecomputing.com/?warehouse=<warehouse name>&db=OCIGGLL ein.

      Hinweis:

      Stellen Sie sicher, dass Sie <account_identifier> und <warehouse name> durch die entsprechenden Werte ersetzen.
    2. Wählen Sie in der Dropdown-Liste unter Authentifizierungstyp die Option Basisauthentifizierung aus.
    3. Geben Sie unter Benutzername einen Namen ein.
    4. Geben Sie unter Kennwort ein Kennwort ein.
  5. (Optional) Wenn das Big Data-Deployment keinen öffentlichen Endpunkt aufweist, erstellen Sie eine Verbindung zu GoldenGate, und weisen Sie diese Verbindung dem Deployment der Quelle PostgreSQL zu.
  6. Weisen Sie die Quellverbindung PostgreSQL dem Deployment PostgreSQL zu.
  7. Weisen Sie die Snowflake-Verbindung dem Ziel-Big Data Deployment zu.

Aufgabe 2: Zusätzliches Logging aktivieren

So aktivieren Sie zusätzliches Logging:
  1. Starten Sie die PostgreSQL GoldenGate-Deployment-Konsole:
    1. Wählen Sie auf der Seite "Deployments" das PostgreSQL-Deployment aus, um die zugehörigen Details anzuzeigen.
    2. Klicken Sie auf der Seite mit den Details des Deployments PostgreSQL auf Konsole starten.
    3. Geben Sie auf der Anmeldeseite der Deployment-Konsole die in Aufgabe 1, Schritt 1 angegebenen Admin-Zugangsdaten GoldenGate ein.
  2. Klicken Sie in GoldenGate 23ai in der linken Navigation auf DB-Verbindungen, dann auf die Quelldatenbank PostgreSQL und dann auf Trandata.
  3. Klicken Sie auf der Seite "TRANDATA" neben "TRANDATA-Informationen" auf TRANDATA hinzufügen (Plussymbol).
  4. Geben Sie im Trandata-Bereich unter Schemaname src_ociggll.* ein, und klicken Sie auf Weiterleiten.

    Hinweis:

    Suchen Sie src_ociggll mit dem Suchfeld, und prüfen Sie, ob die Tabellen hinzugefügt wurden.

Aufgabe 3: Extracts erstellen

  1. Fügen Sie die Change Data Capture Extract hinzu:
    1. Klicken Sie in der linken Navigationsleiste auf Extrakte.
    2. Klicken Sie auf der Seite Extrakte auf Extrahieren hinzufügen (Plussymbol), und füllen Sie die Felder wie folgt aus:
      • Gehen Sie auf der Seite "Daten extrahieren" wie folgt vor:
        1. For Extract type, select Change Data Capture Extract.
        2. Geben Sie unter Prozessname einen Namen wie ECDC für den Extrakt ein.
        3. Klicken Sie auf Weiter.
      • Gehen Sie auf der Seite Optionen extrahieren wie folgt vor:
        1. Wählen Sie unter "Quellzugangsdaten" in der Dropdown-Liste Domain die Option Oracle GoldenGate aus
        2. Wählen Sie die Quelldatenbank PostgreSQL in der Dropdown-Liste Alias aus.
        3. Geben Sie unter Extrahieren einen aus zwei Zeichen bestehenden Trailnamen wie C1 ein.
        4. Klicken Sie auf Weiter.
      • Ersetzen Sie auf der Seite Extract-Parameter MAP *.*, TARGET *.*; durch Folgendes:
        TABLE SRC_OCIGGLL.*;
    3. Klicken Sie auf Erstellen und ausführen.
  2. Erstmaliges Laden Extrahieren hinzufügen:
    1. Klicken Sie auf der Seite "Exporte" auf Extrahieren hinzufügen, und füllen Sie das Formular "Extrahieren hinzufügen" wie folgt aus:
      • Gehen Sie auf der Seite "Informationen zum Extrahieren" wie folgt vor:
        1. Wählen Sie unter Extract die Option Initial Load Extract aus.
        2. Geben Sie unter Prozessname einen Namen wie EIL ein.
        3. Klicken Sie auf Weiter.
      • Gehen Sie auf der Seite Optionen extrahieren wie folgt vor:
        1. Wählen Sie unter "Quellzugangsdaten" in der Dropdown-Liste Domain die Option Oracle GoldenGate aus.
        2. Wählen Sie in der Dropdown-Liste Alias die Datenbank PostgreSQL aus.
        3. Geben Sie unter Extrahieren Trailname einen aus zwei Zeichen bestehenden Trailnamen wie I1 ein.
        4. Klicken Sie auf Weiter.
      • Ersetzen Sie auf der Seite "Parameter Extrahieren" den Inhalt des Textbereichs durch Folgendes:
        EXTRACT EIL
        USERIDALIAS PostgreSQL_Compute, DOMAIN OracleGoldenGate
        EXTFILE I1, PURGE
        TABLE src_ociggll.*;

        Hinweis:

        Stellen Sie sicher, dass Sie den Parameter SOURCEDB vor USERIDALIAS entfernen, bevor Sie fortfahren.
    2. Klicken Sie auf Erstellen und ausführen.
Sie kehren zur Seite Extrakte zurück, auf der Sie den Extract-Vorgang starten können.

Aufgabe 4: Distribution Path für Initial Load Extract erstellen

So erstellen Sie eine Distribution Path für Initial Load Extract:
  1. Wählen Sie in der Oracle Cloud-Konsole auf der Seite "Deployments" das Ziel-Big Data-Deployment aus.
  2. Klicken Sie auf der Seite "Deployment" auf Konsole starten. Melden Sie sich mit den Details des Admin-Benutzers an, die in Aufgabe 1, Schritt 2 erstellt wurden.
  3. Wenn Sie den IAM-Zugangsdatenspeicher verwenden, fahren Sie mit dem Schritt "Distribution Path erstellen" fort. Wenn Sie den Zugangsdatenspeicher GoldenGate verwenden, erstellen Sie einen Benutzer, mit dem die Quelle GoldenGate eine Verbindung zum Ziel GoldenGate herstellt.
    1. Klicken Sie im Navigationsmenü auf Benutzerverwaltung.
    2. Klicken Sie wie folgt auf Neuen Benutzer hinzufügen (Pluszeichen), füllen Sie die Felder aus, und klicken Sie auf Weiterleiten:
      • Geben Sie unter Benutzername ggsnet ein.
      • Wählen Sie unter Rolle die Option Operator aus.
      • Geben Sie das Kennwort zur Bestätigung zweimal ein.
  4. Erstellen Sie in der Deployment-Konsole Quelle PostgreSQL eine Pfadverbindung für den im vorherigen Schritt erstellten Benutzer.
    1. Klicken Sie im Navigationsmenü auf Pfadverbindungen.
    2. Klicken Sie auf Pfadverbindung hinzufügen (Pluszeichen), füllen Sie die Felder wie folgt aus, und klicken Sie auf Weiterleiten:
      • Geben Sie als Zugangsdatenalias dpuser ein.
      • Geben Sie unter "Benutzer-ID" ggsnet ein.
      • Geben Sie unter "Kennwort" dasselbe Kennwort ein, das im vorherigen Schritt verwendet wurde.
  5. Distribution Path erstellen.
    1. Klicken Sie in der Servicemenüleiste auf Distribution Service und dann auf Distribution Path hinzufügen (Plussymbol).
    2. Füllen Sie das Formular "Pfad hinzufügen" wie folgt aus:
      • Auf der Seite "Pfadinformationen":
        1. Geben Sie unter Pfadname einen Namen für diesen Pfad ein.
        2. Klicken Sie auf Weiter.
      • Gehen Sie auf der Seite {\b Source Options} wie folgt vor:
        1. Lassen Sie das Feld Quelle Extract leer.
        2. Geben Sie unter Trailname den Trailnamen Initial Load Extract (I1) ein.
        3. Klicken Sie auf Weiter.
      • Gehen Sie auf der Seite "Zieloptionen" wie folgt vor:
        1. Wählen Sie unter Ziel die Option wss aus.
        2. Geben Sie unter Zielhost die Ziel-Deployment-URL ohne https:// oder abschließende Schrägstriche ein.
        3. Geben Sie unter Portnummer die Nummer 443 ein.
        4. Geben Sie unter Trailname I1 ein.
        5. Wählen Sie unter Zielauthentifizierungsmethode die Option UserID Alias aus.
        6. Geben Sie unter Domain den im vorherigen Schritt erstellten Domainnamen ein.
        7. Geben Sie unter Alias den im vorherigen Schritt erstellten Alias ein (dpuser).
        8. Klicken Sie auf Weiter.
    3. Klicken Sie auf Erstellen und ausführen.
    Sie kehren zur Seite Distribution Service zurück, auf der Sie den erstellten Pfad prüfen können.
  6. Prüfen Sie in der Big Data-Deployment-Konsole von Ziel die Receiver Path, die als Ergebnis von Distribution path erstellt wurde:
    1. Klicken Sie auf Receiver Service.
    2. Prüfen Sie die Details von Receiver Path.

Aufgabe 5: Replicat für Initial Load hinzufügen

  1. Fügen Sie in der Ziel-Deployment-Konsole von Big Data die Initial Load Replicat hinzu.
    1. Klicken Sie im Navigationsmenü auf Replikate und dann auf Replikat hinzufügen (Plussymbol).
    2. Füllen Sie die Felder Replicat auf der Seite Replicats wie folgt aus:
      1. Gehen Sie auf der Seite {\b Replication Information} wie folgt vor:
        1. Wählen Sie unter Typ Replicat die Option Klassisch oder Koordiniert aus.
        2. Geben Sie unter Prozessname einen Namen wie RIL ein.
        3. Klicken Sie auf Weiter.
      2. Gehen Sie auf der Seite "Replicat-Optionen" wie folgt vor:
        1. Geben Sie unter Replicat-Trailname den Namen des Trails aus Aufgabe 2 (I1) ein.
        2. Wählen Sie unter Zielzugangsdaten die Domain und den Alias für die Verbindung Snowflake aus.
        3. Wählen Sie unter Verfügbare Aliasnamen einen Alias aus der Dropdown-Liste aus, z.B. Snowflake.
        4. (Optional) Externen Speicher aktivieren, um eine verfügbare Staging Area aus der Dropdown-Liste auszuwählen.
        5. Klicken Sie auf Weiter.
      3. Fügen Sie auf der Seite "Parameterdatei" das folgende Mapping hinzu:
        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. Prüfen Sie auf der Seite "Eigenschaften" die Eigenschaften, und klicken Sie auf Erstellen und ausführen.

    Sie kehren zur Seite Replicats zurück, auf der Sie die Replicat-Details prüfen können.

  2. Um die Initial Load zu prüfen, stellen Sie eine Verbindung zur Datenbank Snowflake her, und führen Sie die folgenden Abfragen aus:
    select * from SRCMIRROR_OCIGGLL.SRC_CITY;
    select * from SRCMIRROR_OCIGGLL.SRC_CUSTOMER;

    Die Ausgabe sollte die Daten zurückgeben, die als Ergebnis von Initial Load in die Zieldatenbanktabellen geladen wurden.

Aufgabe 6: Distribution Path für Change Data Capture erstellen

So erstellen Sie eine Distribution Path für Change Data Capture:
  1. Klicken Sie in der Deployment-Konsole für die Quelle PostgreSQL auf Vertriebsservice.
  2. Klicken Sie auf Distribution Path hinzufügen.
  3. Füllen Sie das Formular "Pfad hinzufügen" wie folgt aus:
    1. Auf der Seite "Pfadinformationen":
      1. Geben Sie unter Pfadname einen Namen ein.
      2. Klicken Sie auf Weiter.
    2. Gehen Sie auf der Seite {\b Source Options} wie folgt vor:
      1. Wählen Sie unter Quelle Extract die Option Change Data Capture Extract (ECDC)) aus.
      2. Wählen Sie unter Trailname die Traildatei Change Data Capture (C1) aus.
      3. Klicken Sie auf Weiter.
    3. Gehen Sie auf der Seite "Zieloptionen" wie folgt vor:
      1. Wählen Sie unter Ziel die Option wss aus.
      2. Geben Sie unter Zielhost die Ziel-Deployment-Konsolen-URL ein (diese finden Sie auf der Seite mit den Deployment-Details, ohne https:// oder abschließende Schrägstriche).
      3. Geben Sie unter Portnummer die Nummer 443 ein.
      4. Geben Sie unter Trailname C1 ein.
      5. Wählen Sie unter Zielauthentifizierungsmethode die Option UserID Alias aus.
      6. Geben Sie unter Domain den Domainnamen ein.
      7. Geben Sie unter Alias den Alias ein.
    4. Klicken Sie auf Pfad erstellen und ausführen.
  4. Klicken Sie in der Deployment-Konsole von Big Data des Ziels auf Receiver Service, und prüfen Sie die erstellte Receiver path.

Aufgabe 7: Replicat für Change Data Capture hinzufügen

Führen Sie Aktualisierungen an der Quelldatenbank PostgreSQL aus, um die Replikation in Snowflake zu prüfen.
  1. Fügen Sie die Replicat hinzu.
    1. Klicken Sie in der Deployment-Konsole für Ziel-Big Data auf Administration Service, und klicken Sie dann im Navigationsmenü auf Replicats.
    2. Klicken Sie auf der Seite Replicats auf Replicat hinzufügen (Plussymbol), und füllen Sie das Formular "Replicat hinzufügen" wie folgt aus:
      • Auf der Seite "Replicat-Informationen":
        1. Wählen Sie unter Typ Replicat die Option Classic oder Coordinated aus.
        2. Geben Sie unter Prozessname einen Namen wie RCDC ein.
        3. Klicken Sie auf Weiter.
      • Gehen Sie auf der Seite "Optionen" unter Replicat wie folgt vor:
        1. Geben Sie unter Replicat Trailname den Namen des Trail aus Aufgabe 3 (C1) ein.
        2. Wählen Sie unter Zielzugangsdaten die Domain und den Alias für die Verbindung Snowflake aus.
        3. (Optional) Externen Speicher aktivieren, um eine verfügbare Staging Area aus der Dropdown-Liste auszuwählen.
      • Fügen Sie auf der Seite "Parameterdateien" die folgende Zuordnung hinzu, und klicken Sie auf Weiter:
        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;
      • Prüfen Sie auf der Seite "Eigenschaften" die Eigenschaften, und klicken Sie auf Erstellen und ausführen.

    Sie kehren zur Seite Replicats zurück, auf der Sie die Replicat-Details prüfen können.

  2. Prüfen Sie Change Data Capture:
    1. Führen Sie Updates für die Quelldatenbank PostgreSQL aus, um die Replikation in Snowflake zu prüfen. Führen Sie das folgende Skript aus, um Einfügen in die Datenbank PostgreSQL auszuführen:
      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. Wählen Sie in der Deployment-Konsole der Quelle PostgreSQL die Option RCDC aus, und klicken Sie auf Statistiken. Stellen Sie sicher, dass src_ociggll.src_city über 10 Insert-Vorgänge verfügt.

      Hinweis:

      Wenn die Extract keine Einfügungen erfasst hat, starten Sie die ECDC Extract neu.
    3. Wählen Sie in der Big Data-Ziel-Deployment-Konsole RCDC aus, und prüfen Sie die zugehörigen Details und Statistiken, um die Anzahl der Einfügungen zu prüfen.

Aufgabe 8: Prozesse überwachen und verwalten

  1. Überwachen Sie die Performance.
  2. Verwalten Sie die Traildateien.