Daten aus PostgreSQL in Snowflake replizieren

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

Bevor Sie beginnen

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

Umgebung eingerichtet: PostgreSQL

So richten Sie die Umgebung für diesen Schnellstart ein:

  1. Führen Sie die folgenden Befehle zur Installation von PostgreSQL aus.

    1. PostgreSQL-Server installieren:

      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 sind in PostgreSQL nur lokale Verbindungen zulässig. Remotekonnektivität zu PostgreSQL zulassen.

    1. Bereiten Sie unter /var/lib/pgsql/data/postgresql.conf die Datenbank für die Replikation vor.

    2. Suchen und entfernen Sie die Kommentarzeichen listen_addresses = 'localhost', und ändern Sie localhost in ein Sternchen (`):

      listen_addresses = '*'
    3. Legen Sie die folgenden Parameter wie folgt 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 Die Datei pg_hba.conf.

      1. PostgreSQL-Server neu starten:
      sudo systemctl restart postgresql.service
      1. Wenn Sie Oracle Cloud Compute zum Hosten von PostgreSQL verwenden, ö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 Ihres VCN.

    5. Verbindung zu PostgreSQL herstellen.

      > sudo su - postgres
      > psql

      Hinweis: Alternativ können Sie sudo su - postgres psql eingeben, wenn das obige Beispiel nicht funktioniert.

    6. PostgreSQL einrichten.

      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 eingerichtet: Snowflake

  1. Erstellen Sie einen GoldenGate-Benutzer in Snowflake mit geeigneten Berechtigungen.

  2. Erstellen Sie Zieltabellen mit 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 PostgreSQL-Quelldatenbank.

  2. Erstellen Sie ein Big Data Deployment für die Snowflake-Zieldatenbank.

  3. Erstellen Sie eine PostgreSQL-Verbindung mit den folgenden Werten:

    1. Wählen Sie unter Typ in der Dropdown-Liste 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 Username ggadmin ein.

    6. Geben Sie Ihr Kennwort für Kennwort ein.

    7. Wählen Sie unter Sicherheitsprotokoll in der Dropdown-Liste die Option Nur 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 unter Authentifizierungstyp in der Dropdown-Liste die Option Basisauthentifizierung aus.

    3. Geben Sie unter Benutzername einen Namen ein.

    4. Geben Sie unter Kennwort ein Kennwort ein.

  5. (Optional) Wenn Ihr Big Data-Deployment keinen öffentlichen Endpunkt hat, erstellen Sie eine Verbindung zu GoldenGate, und weisen Sie diese Verbindung dem PostgreSQL-Quell-Deployment zu.

  6. Weisen Sie die PostgreSQL-Quellverbindung dem PostgreSQL-Deployment zu.

  7. Weisen Sie die Snowflake-Verbindung dem Big Data-Ziel-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. Wählen Sie auf der Detailseite des PostgreSQL-Deployments die Option Konsole starten aus.

    3. Geben Sie auf der Anmeldeseite der Deployment-Konsole die GoldenGate-Admin-Zugangsdaten ein, die in Aufgabe 1, Schritt 1 angegeben sind.

      Hinweis: Eine Anmeldung ist erforderlich, wenn IAM beim Erstellen eines Deployments nicht als Zugangsdatenspeicher ausgewählt wurde.

  2. Wählen Sie in der Deployment-Konsole in der linken Navigationsleiste die Option DB-Verbindungen, dann die PostgreSQL-Quelldatenbank und dann Trandata aus.

  3. Wählen Sie auf der Seite "TRANDATA" neben "TRANDATA-Informationen" die Option TRANDATA hinzufügen (Plussymbol).

  4. Geben Sie im Bereich "Trandata" unter Schemaname src_ociggll ein, und wählen Sie Weiterleiten aus.

    Hinweis: Mit dem Suchfeld können Sie nach src_ociggll suchen und prüfen, ob die Tabellen hinzugefügt wurden.

Aufgabe 3: Extracts erstellen

  1. Fügen Sie den Change Data Capture Extract hinzu:

    1. Wählen Sie in der linken Navigationsleiste die Option Extracts.

    2. Wählen Sie auf der Seite "Extracts" die Option Extract hinzufügen (Plussymbol), und füllen Sie die Felder wie folgt aus:

      • Auf der Seite "Daten extrahieren":

        1. Wählen Sie unter Extract-Typ die Option Change Data Capture Extract aus.

        2. Geben Sie unter Prozessname einen Namen wie ECDC für den Extract an.

        3. Wählen Sie Weiter.

      • Gehen Sie auf der Seite "Exportoptionen" wie folgt vor:

        1. Wählen Sie für Quellzugangsdaten in der Dropdown-Liste Domain die Option Oracle GoldenGate aus

        2. Wählen Sie in der Dropdown-Liste Alias die PostgreSQL-Quelldatenbank aus.

        3. Geben Sie unter "Trailname extrahieren" einen aus zwei Zeichen stehenden Trailnamen wie C1 ein.

        4. Wählen Sie Weiter.

      • Ersetzen Sie auf der Seite "Parameter extrahieren" MAP *.*, TARGET *.*; durch Folgendes:

        TABLE SRC_OCIGGLL.*;
    3. Wählen Sie Erstellen und ausführen aus.

  2. Fügen Sie den Extract für das erstmalige Laden hinzu:

    1. Wählen Sie auf der Seite "Extracts" die Option Extract hinzufügen aus, und füllen Sie das Formular "Extract hinzufügen" wie folgt aus:

      • Auf der Seite "Daten extrahieren":

        1. Wählen Sie für den Extract-Typ die Option Initial Load Extract aus.

        2. Geben Sie unter Prozessname einen Namen wie EIL ein.

        3. Wählen Sie Weiter.

      • Gehen Sie auf der Seite "Exportoptionen" wie folgt vor:

        1. Wählen Sie für Quellzugangsdaten in der Dropdown-Liste Domain die Option Oracle GoldenGate aus.

        2. Wählen Sie in der Dropdown-Liste Alias die PostgreSQL-Datenbank aus.

        3. Geben Sie unter Trailname extrahieren einen aus zwei Zeichen stehenden Trailnamen wie I1 ein.

        4. Wählen Sie Weiter.

      • Ersetzen Sie auf der Seite "Extract-Parameter" 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. Wählen Sie Erstellen und ausführen aus.

Sie kehren zur Seite "Extracts" zurück, auf der Sie den Extract-Start beobachten können.

Aufgabe 4: Verteilungspfad für den Extract der erstmaligen Ladung erstellen

So erstellen Sie einen Verteilungspfad für die erstmalige Ladung:

  1. Wählen Sie in der Oracle Cloud-Konsole auf der Seite "Deployments" das Ziel-Big Data-Deployment aus.

  2. Wählen Sie auf der Seite "Deployment-Details" die Option Konsole starten aus, und melden Sie sich als Admin-Benutzer an.

  3. Wenn Sie den IAM-Zugangsdatenspeicher verwenden, fahren Sie mit dem Schritt "Verteilungspfad erstellen" fort. Wenn Sie den GoldenGate-Zugangsdatenspeicher verwenden, erstellen Sie einen Benutzer, mit dem die Quelle GoldenGate eine Verbindung zum GoldenGate-Ziel herstellt.

    1. Wählen Sie im Navigationsmenü die Option Benutzeradministration aus.

    2. Wählen Sie Neuen Benutzer hinzufügen (Plussymbol), füllen die Felder wie folgt auf, und wählen Sie Weiterleiten aus:

      • 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 Quell-PostgreSQL-Deployment-Konsole eine Pfadverbindung für den im vorherigen Schritt erstellten Benutzer.

    1. Wählen Sie im Navigationsmenü die Option Pfadverbindungen.

    2. Wählen Sie Pfadverbindung hinzufügen (Plussymbol), füllen Sie die Felder wie folgt aus, und wählen Sie Weiterleiten aus:

      • 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. Verteilungspfad erstellen.

    1. Wählen Sie in der Servicemenüleiste Pfade und dann Verteilungspfad hinzufügen (Plussymbol).

    2. Füllen Sie das Formular "Pfad hinzufügen" wie folgt aus:

      • Gehen Sie auf der Seite "Pfadinformationen" wie folgt vor:

        1. Geben Sie unter Pfadname einen Namen für diesen Pfad an.

        2. Wählen Sie Weiter.

      • Gehen Sie auf der Seite {\b Source Options} wie folgt vor:

        1. Geben Sie unter Quellextrakt keinen Wert ein.

        2. Geben Sie unter Trailname den Trailnamen für den Extract des erstmaligen Ladens (I1) ein.

        3. Wählen Sie 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 an.

        3. Geben Sie unter Portnummer 443 ein.

        4. Geben Sie unter Trailname I1 ein.

        5. Wählen Sie unter Zielauthentifizierungsmethode die Option UserID-Alias.

        6. Geben Sie unter Domain den Domainnamen an, der im vorherigen Schritt erstellt wurde.

        7. Geben Sie unter Alias den im vorherigen Schritt erstellten Alias ein (dpuser).

        8. Wählen Sie Weiter.

    3. Wählen Sie Erstellen und ausführen aus.

    Sie kehren zur Seite "Verteilungsservice" zurück, auf der Sie den erstellten Pfad prüfen können.

  6. Prüfen Sie in der Ziel-Deployment-Konsole den Empfangspfad, der als Ergebnis des Verteilungspfades erstellt wurde:

    1. Wählen Sie Pfade aus.

    2. Prüfen Sie die Pfadinformationen.

Aufgabe 5: Replicat zum erstmaligen Laden hinzufügen

  1. Fügen Sie in der Big Data-Deployment-Konsole des Ziels das anfängliche Ladereplicat hinzu.

    1. Wählen Sie im Navigationsmenü Replikate und dann Replikat hinzufügen (Plussymbol).

    2. Füllen Sie auf der Seite "Replicats" die Felder "Replicat hinzufügen" wie folgt aus:

      1. Auf der Seite "Replikationsinformationen":

        1. Wählen Sie unter Replikattyp die Option Klassisch oder Koordiniert aus.

        2. Geben Sie unter Prozessname einen Namen wie RIL ein.

        3. Wählen Sie Weiter.

      2. Gehen Sie auf der Seite {\b Replicat Options} wie folgt vor:

        1. Geben Sie unter Replicat-Trailname den Namen des Trails aus Aufgabe 2 (I1) ein.

        2. Wählen Sie unter Zieldaten die Domain und Alias für die Snowflake-Verbindung 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. Wählen Sie Weiter.

      3. Fügen Sie auf der Seite "Parameterdatei" die folgende Zuordnung 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 wählen Sie Erstellen und ausführen aus.

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

  2. Um das erstmalige Laden zu prüfen, melden Sie sich bei der Snowflake-Datenbank an, und führen Sie folgende Abfragen aus:

    select * from SRCMIRROR_OCIGGLL.SRC_CITY;
    select * from SRCMIRROR_OCIGGLL.SRC_CUSTOMER;

Die Ausgabe sollte die Daten zurückgeben, die als Ergebnis des erstmaligen Ladevorgangs in die Zieldatenbanktabellen geladen wurden.

Aufgabe 6: Verteilungspfad für Change Data Capture erstellen

  1. Wählen Sie in der Quell-PostgreSQL-Deployment-Konsole die Option Verteilungsservice aus.

  2. Wählen Sie Verteilungspfad hinzufügen aus.

  3. Füllen Sie das Formular "Pfad hinzufügen" wie folgt aus:

    1. Gehen Sie auf der Seite "Pfadinformationen" wie folgt vor:

      1. Geben Sie unter Pfadname einen Namen ein.

      2. Wählen Sie Weiter.

    2. Gehen Sie auf der Seite {\b Source Options} wie folgt vor:

      1. Wählen Sie unter Quellextrakt den Change Data Capture Extract (ECDC) aus.

      2. Wählen Sie unter Trailname die Traildatei für den Change Data Capture-Extrakt (C1).

      3. Wählen Sie 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 (Sie finden diese auf der Seite mit den Deployment-Details ohne https:// oder abschließende Schrägstriche).

      3. Geben Sie unter Portnummer 443 ein.

      4. Geben Sie unter Trailname C1 ein.

      5. Wählen Sie unter Zielauthentifizierungsmethode die Option UserID-Alias.

      6. Geben Sie unter Domain den Domainnamen ein.

      7. Geben Sie unter Alias den Alias ein.

    4. Wählen Sie Pfad erstellen und ausführen aus.

  4. Wählen Sie in der Big Data-Zielbereitstellungskonsole die Option Empfängerservice aus, und prüfen Sie den erstellten Empfangspfad.

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

Führen Sie Updates an der PostgreSQL-Quelldatenbank aus, um die Replikation auf Snowflake zu prüfen.

  1. Fügen Sie das Replicat hinzu.

    1. Wählen Sie in der Big Data-Zielbereitstellungskonsole die Option Administration Service, und wählen Sie im Navigationsmenü die Option Replikate aus.

    2. Wählen Sie auf der Seite Replikate die Option 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 Replikattyp die Option Klassisch oder Koordiniert aus.

        2. Geben Sie unter Prozessname einen Namen wie RCDC ein.

        3. Wählen Sie Weiter.

      • Gehen Sie auf der Seite {\b Replicat Options} wie folgt vor:

        1. Geben Sie unter Replikat-Trailname den Namen des Trails aus Aufgabe 3 (C1) ein.

        2. Wählen Sie unter Zielzugangsdaten die Domain und den Alias für die Snowflake-Verbindung 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 wählen Sie Weiter aus:

        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 wählen Sie Erstellen und ausführen aus.

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

  2. Change Data Erfassen prüfen:

    1. Führen Sie Updates an der PostgreSQL-Quelldatenbank aus, um die Replikation auf Snowflake zu prüfen. Führen Sie das folgende Skript aus, um Einfügungen in die PostgreSQL-Datenbank 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);
  3. Wählen Sie in der Quell-PostgreSQL-Deployment-Konsole die Option RCDC und dann Statistiken aus. Stellen Sie sicher, dass src_ociggll.src_city 10 Insert-Vorgänge enthält.

    Hinweis: Wenn der Extract keine Einfügevorgänge erfasst hat, starten Sie den Extract ECDC neu.

  4. Wählen Sie in der Big Data-Ziel-Deployment-Konsole die RCDC aus, und prüfen Sie die zugehörigen Details und Statistiken, um die Anzahl der Einfügevorgänge zu prüfen.

Aufgabe 8: Prozesse überwachen und verwalten

  1. Überwachen Sie den Replikationsprozess.

  2. Traildateien verwalten.