PostgreSQLからSnowflakeへのデータのレプリケート

OCI GoldenGateを使用して、PostgreSQLからSnowflakeにデータをレプリケートする方法について学習します。

開始する前に

このクイックスタートを正常に完了するには、次が必要です:

  • ソース・データベースとして機能するPostgreSQLインストール(環境設定のインストール手順に従います)。
  • VCNのセキュリティ・リストでポート5432を開きます。
  • ターゲット・データベースとして機能するSnowflakeデータベース

環境設定: Snowflake

  1. 適切な権限を使用して、SnowflakeにGoldenGateユーザーを作成します。
  2. サンプル・スキーマを使用してターゲット表を作成します。

表およびユーザーが正常に作成されたことを確認します。

タスク1: OCI GoldenGateリソースの作成

このクイックスタートの例では、ソースとターゲットの両方のデプロイメントおよび接続が必要です。
  1. ソースPostgreSQLデータベースのデプロイメントを作成します
  2. ターゲットSnowflakeデータベースのビッグ・データ・デプロイメントを作成します
  3. 次の値を使用してPostgreSQL接続を作成します:
    1. 「タイプ」で、ドロップダウンから「PostgreSQLサーバー」を選択します。
    2. 「データベース名」に、ociggllと入力します。
    3. 「ホスト」に、PostgreSQLが実行されるコンピュート・インスタンスのパブリックIPを入力します。
    4. 「ポート」に、5432と入力します。
    5. 「ユーザー名」に、ggadminと入力します。
    6. 「パスワード」には、パスワードを入力します。
    7. 「セキュリティ・プロトコル」で、ドロップダウンから「プレーン」を選択します。
  4. 次の値を使用してSnowflake接続を作成します:
    1. 「接続URL」に、jdbc:snowflake://<account_identifier>.snowflakecomputing.com/?warehouse=<warehouse name>&db=OCIGGLLと入力します。
      ノート

      <account_identifier>および<warehouse name>を適切な値に置き換えてください。
    2. 「認証タイプ」で、ドロップダウンから「基本認証」を選択します。
    3. 「ユーザー名」に、名前を入力します。
    4. 「パスワード」に、パスワードを入力します。
  5. (オプション)ビッグ・データ・デプロイメントにパブリック・エンドポイントがない場合は、GoldenGateへの接続を作成してから、ソースPostgreSQLデプロイメントにこの接続を割り当てます
  6. PostgreSQLデプロイメントにソースPostgreSQL接続を割り当てます
  7. ターゲット・ビッグ・データ・デプロイメントにSnowflake接続を割り当てます

タスク2: サマリー・ロギングの有効化

サプリメンタル・ロギングの有効化の手順:
  1. PostgreSQL GoldenGateデプロイメント・コンソールを起動します:
    1. 「デプロイメント」ページから、PostgreSQLデプロイメントを選択してその詳細を表示します。
    2. PostgreSQLデプロイメントの詳細ページで、「コンソールの起動」をクリックします。
    3. デプロイメント・コンソールのサインイン・ページで、タスク1のステップ1で指定したGoldenGate管理資格証明を入力します。
      ノート

      デプロイメントの作成時にIAMが資格証明ストアとして選択されていない場合は、サインインが必要です。
  2. GoldenGate 23aiで、左側のナビゲーションの「DB接続」、ソースのPostgreSQLデータベース、「Trandata」の順にクリックします。
  3. 「TRANDATA」ページの「TRANDATA情報」の横にある「TRANDATAの追加」(プラス・アイコン)をクリックします。
  4. 「Trandata」パネルで、「スキーマ名」src_ociggll.*と入力し、「送信」をクリックします。
    ノート

    検索フィールドを使用してsrc_ociggllを検索し、表が追加されたことを確認します。

タスク3: Extractの作成

  1. Change Data Capture Extractを追加します。
    1. 左側のナビゲーションで、「抽出」をクリックします。
    2. 「抽出」ページで、「抽出の追加」(プラス・アイコン)をクリックし、次のようにフィールドに入力します:
      • 「抽出情報」ページで:
        1. 「Extractタイプ」で、「変更データ取得Extract」を選択します。
        2. 「プロセス名」に、Extractの名前(ECDCなど)を入力します。
        3. 「次へ」をクリックします
      • 「抽出オプション」ページ:
        1. 「ソース資格証明」で、「ドメイン」ドロップダウンから「Oracle GoldenGate」を選択します
        2. 「別名」ドロップダウンから、ソースPostgreSQLデータベースを選択します。
        3. 「Extract Trail Name」に、2文字のトレイル名(C1など)を入力します。
        4. 「次へ」をクリックします
      • 「Extractパラメータ」ページで、MAP *.*, TARGET *.*;を次に置き換えます:
        TABLE SRC_OCIGGLL.*;
    3. 「作成および実行」をクリックします。
  2. 初期ロードExtractを追加します。
    1. 「抽出」ページで、「抽出の追加」をクリックし、次のように「抽出の追加」フォームに入力します:
      • 「抽出情報」ページで:
        1. 「Extract」タイプで、「初期ロードExtract」を選択します。
        2. 「プロセス名」に、EILなどの名前を入力します。
        3. 「次へ」をクリックします
      • 「抽出オプション」ページ:
        1. 「ソース資格証明」で、「ドメイン」ドロップダウンから「Oracle GoldenGate」を選択します。
        2. 「別名」ドロップダウンからPostgreSQLデータベースを選択します。
        3. 「抽出証跡名」に、2文字の証跡名(I1など)を入力します。
        4. 「次へ」をクリックします
      • 「Extractパラメータ」ページで、テキスト領域の内容を次のように置き換えます。
        EXTRACT EIL
        USERIDALIAS PostgreSQL_Compute, DOMAIN OracleGoldenGate
        EXTFILE I1, PURGE
        TABLE src_ociggll.*;
        ノート

        続行する前に、USERIDALIASの前にSOURCEDBパラメータを削除してください。
    2. 「作成および実行」をクリックします。
「Extract」ページに戻り、Extractの開始を確認できます。

タスク4: Initial Load ExtractDistribution Pathの作成

Initial Load ExtractDistribution Pathを作成するには:
  1. Oracle Cloudコンソールの「デプロイメント」ページで、ターゲット・ビッグ・データ・デプロイメントを選択します。
  2. 「デプロイメントの詳細」ページで、「コンソールの起動」をクリックします。タスク1のステップ2で作成した管理ユーザーの詳細を使用してログインします。
  3. IAM資格証明ストアを使用している場合は、「Distribution Pathの作成」ステップに進みます。GoldenGate資格証明ストアを使用する場合は、ソースGoldenGateがターゲットGoldenGateへの接続に使用するユーザーを作成します。
    1. ナビゲーション・メニューで、「ユーザー管理」をクリックします。
    2. 「新規ユーザーの追加」(プラス・アイコン)をクリックし、次のようにフィールドに入力して、「送信」をクリックします:
      • 「ユーザー名」に、ggsnetと入力します。
      • 「ロール」で、「演算子」を選択します。
      • 確認のためにパスワードを2回入力します。
  4. ソースのPostgreSQLデプロイメント・コンソールで、前のステップで作成されたユーザーのパス接続を作成します。
    1. ナビゲーション・メニューで、「パス接続」をクリックします。
    2. 「パス接続の追加」(プラス・アイコン)をクリックし、次のようにフィールドに入力して、「送信」をクリックします:
      • 「資格証明別名」に、dpuserと入力します。
      • 「ユーザーID」に、ggsnetと入力します
      • 「パスワード」に、前のステップで使用したものと同じパスワードを入力します。
  5. Distribution Pathを作成します。
    1. サービス・メニュー・バーで、Distribution Serviceをクリックし、Distribution Pathの追加」(プラス・アイコン)をクリックします。
    2. 「パスの追加」フォームに次のように入力します。
      • 「パス情報」ページで:
        1. 「パス名」に、このパスの名前を入力します。
        2. 「次へ」をクリックします
      • 「ソース・オプション」ページ:
        1. 「ソース」 Extractは、ブランクのままにします。
        2. 「トレイル名」には、Initial Load Extractトレイル名(I1)を入力します。
        3. 「次へ」をクリックします
      • 「ターゲット・オプション」ページ:
        1. 「ターゲット」で、「wss」を選択します。
        2. 「ターゲット・ホスト」に、ターゲット・デプロイメントのURLをhttps://または後続のスラッシュなしで入力します。
        3. 「ポート番号」に、443と入力します。
        4. 「Trail Name」に、I1と入力します。
        5. 「ターゲット認証方式」で、「ユーザーID別名」を選択します。
        6. 「ドメイン」に、前のステップで作成したドメイン名を入力します。
        7. 「別名」に、前のステップで作成された別名(dpuser)を入力します。
        8. 「次へ」をクリックします
    3. 「作成および実行」をクリックします。
    Distribution Serviceページに戻り、作成したパスを確認できます。
  6. ターゲット・ビッグ・データ・デプロイメント・コンソールで、Distribution pathの結果として作成されたReceiver Pathを確認します:
    1. Receiver Serviceをクリックします。
    2. Receiver Pathの詳細を確認します。

タスク5: Initial LoadReplicatの追加

  1. ターゲット・ビッグ・データ・デプロイメント・コンソールで、Initial Load Replicatを追加します。
    1. ナビゲーション・メニューで、「Replicat」をクリックし、「Replicatの追加」(プラス・アイコン)をクリックします。
    2. Replicatsページで、次のように「Replicatの追加」フィールドに入力します:
      1. 「レプリケーション情報」ページで、次の手順を実行します。
        1. Replicatタイプで、「クラシック」または「調整済」を選択します。
        2. 「プロセス名」に、名前(RILなど)を入力します。
        3. 「次へ」をクリックします
      2. 「Replicatオプション」ページで、次の手順を実行します。
        1. 「Replicatトレイル名」に、タスク2からトレイルの名前(I1)を入力します。
        2. 「ターゲット資格証明」で、Snowflake接続の「ドメイン」および「別名」を選択します。
        3. 「使用可能な別名」で、ドロップダウンから別名(Snowflakeなど)を選択します。
        4. (オプション)「外部ストレージの有効化」では、ドロップダウンから使用可能なステージングの場所を選択します。
        5. 「次へ」をクリックします
      3. 「パラメータ・ファイル」ページで、次のマッピングを追加します。
        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. 「プロパティ」ページでプロパティを確認し、「作成および実行」をクリックします。

    Replicatsページに戻り、Replicatの詳細を確認できます。

  2. Initial Loadを確認するには、Snowflakeデータベースに接続し、次の問合せを実行します。
    select * from SRCMIRROR_OCIGGLL.SRC_CITY;
    select * from SRCMIRROR_OCIGGLL.SRC_CUSTOMER;

    出力では、Initial Loadの結果としてターゲット・データベース表にロードされたデータが返されます。

タスク6: Change Data CaptureDistribution Pathの作成

Change Data CaptureDistribution Pathを作成するには:
  1. ソースPostgreSQL・デプロイメント・コンソールで、「分散サービス」をクリックします。
  2. Distribution Pathの追加」をクリックします。
  3. 「パスの追加」フォームに次のように入力します。
    1. 「パス情報」ページで:
      1. 「パス名」に、名前を入力します。
      2. 「次へ」をクリックします
    2. 「ソース・オプション」ページ:
      1. 「ソース」 Extractで、Integrated Extract (ECDC))を選択します。
      2. 「トレイル名」で、Integrated Extractトレイル・ファイル(C1)を選択します。
      3. 「次へ」をクリックします
    3. 「ターゲット・オプション」ページ:
      1. 「ターゲット」で、「wss」を選択します。
      2. 「ターゲット・ホスト」に、ターゲット・デプロイメント・コンソールのURLを入力します(これは、デプロイメントの詳細ページでhttps://または後続のスラッシュなしで確認できます)。
      3. 「ポート番号」に、443と入力します。
      4. 「トレイル名」に、C1と入力します。
      5. 「ターゲット認証方式」で、「ユーザーID別名」を選択します。
      6. 「ドメイン」に、ドメイン名を入力します。
      7. 「別名」に、別名を入力します。
    4. 「パスの作成および実行」をクリックします。
  4. ターゲット・ビッグ・データ・デプロイメント・コンソールで、Receiver Serviceをクリックし、作成されたReceiver pathを確認します。

タスク7: Change Data CaptureReplicatの追加

ソースPostgreSQLデータベースの更新を実行して、Snowflakeへのレプリケーションを確認します。
  1. Replicatを追加します
    1. ターゲットのビッグ・データ・デプロイメント・コンソールで、Administration Serviceをクリックし、ナビゲーション・メニューでReplicatsをクリックします。
    2. Replicatsページで、Replicatの追加」(プラス・アイコン)をクリックし、「Replicatの追加」フォームに次のように入力します。
      • 「Replicat情報」ページで、次の手順を実行します。
        1. Replicatタイプで、ClassicまたはCoordinatedを選択します。
        2. 「プロセス名」に、名前(RCDCなど)を入力します。
        3. 「次へ」をクリックします
      • Replicatオプション・ページで、次の手順を実行します。
        1. Replicatトレイル名」に、タスク3からトレイルの名前(C1)を入力します。
        2. 「ターゲット資格証明」で、Snowflake接続のドメインと別名を選択します。
        3. (オプション)「外部ストレージの有効化」では、ドロップダウンから使用可能なステージングの場所を選択します。
      • 「パラメータ・ファイル」ページで、次のマッピングを追加し、「次」をクリックします:
        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;
      • 「プロパティ」ページでプロパティを確認し、「作成および実行」をクリックします。

    Replicatsページに戻り、Replicatの詳細を確認できます。

  2. Change Data Captureを確認します。
    1. ソースPostgreSQLデータベースの更新を実行して、Snowflakeへのレプリケーションを確認します。次のスクリプトを実行して、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. ソースのPostgreSQLデプロイメント・コンソールで、RCDCを選択し、「統計」をクリックします。src_ociggll.src_cityに10個の挿入があることを確認します。
      ノート

      Extractで挿入が取得されなかった場合は、ECDC Extractを再起動します。
    3. ターゲットのビッグ・データ・デプロイメント・コンソールで、RCDCを選択し、その「詳細」および「統計」を確認して挿入の数を確認します。

タスク8: プロセスのモニターおよびメンテナンス