機械翻訳について

ストリーミング・ハンドラを使用して、PostgresSQLからSnowflakeにデータをレプリケート

OCI GoldenGateを使用して、ストリーミング・ハンドラを使用してPostgreSQLからSnowflakeにデータをレプリケートする方法を確認します。

始める前に

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

  • 「PostgreSQLを使用したOCIデータベース」へのアクセス
  • 「PostgreSQLを使用したOCIデータベース」で使用されるVCNのセキュリティ・リストでポート5432を開きます
  • Snowflakeへのアクセス

「PostgreSQLを使用したOCIデータベース」を設定

  1. 「PostgreSQLを使用したOCIデータベース」を作成します。
    1. OCI PostgreSQLの場合:
      1. 「Configurations」をクリックします。
      2. PostgreSQL.VM.Standard.E5.Flex-14-0_51などの既存の構成を使用します。
      3. 「構成のコピー」をクリックし、名前を変更し、「ユーザー変数」(読取り/書込み)の下にwal_levelを追加して、「論理」に設定します。
      4. 「作成」をクリックします。
      5. 詳細については、「構成のコピー」を参照してください。
    2. DB Systemの作成時には、wal_levelをtrueに設定した構成を使用します。 詳細については、「データベース・システムの作成」を参照してください。
  2. OCI PostgreSQLに接続します。 詳細については、「データベースへの接続」を参照してください。
  3. OCI PostgreSQLでGoldenGateのデータベースおよびユーザーを作成します:
    1. データベース
      1. create database ociggll;
      2. \c ociggll;
      3. create schema src_ociggll;
      4. サンプル・スクリプトのロード(seedSRCOCIGGLL_PostgreSQL.sql)
    2. ユーザー
      1. create user ggadmin with password '<password>';
      2. GRANT ALL PRIVILEGES ON DATABASE ociggll TO ggadmin;
      3. GRANT SELECT ON ALL TABLES IN SCHEMA src_ociggll TO ggadmin;

Snowflakeデータベースの設定

  1. Snowflakeデータベースの作成
  2. ユーザーは、Snowflakeへの認証のために公開キーと秘密キーのペアを作成する必要があります
  3. 適切な権限を指定したSnowflakeにGoldenGate専用のユーザーを作成
  4. たとえば、公開キーをSnowflakeユーザーに追加: ALTER USER example_user SET RSA_PUBLIC_KEY='MIIBIjANBgkqh...';
  5. サンプル・スキーマを使用してターゲット表を作成します。

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

このクイックスタートの例では、ソースとターゲットの両方のデプロイメントおよび接続が必要です。
  1. PostgreSQL 23aiにはGoldenGateが必要です。
  2. ソースPostgreSQLデータベースのPostgreSQLデプロイメントの作成
  3. ターゲットSnowflakeデータベースの「ビッグ・データ・デプロイメントの作成」
  4. 次の値を持つPostgreSQL接続の作成:
    1. 「タイプ」の場合は、ドロップダウンからOCI PostgreSQLを選択します。
    2. 「データベース名」には、ociggllと入力します。
    3. 「ユーザー名」には、ggadminと入力します。
    4. 「パスワード」に、パスワードを入力します。
    5. 「セキュリティ・プロトコル」で、ドロップダウンからTLSを選択し、「優先」を選択します。
  5. 次の値を使用してSnowflake接続を作成します:
    1. 「接続URL」には、jdbc:snowflake://<account_identifier>.snowflakecomputing.com/?warehouse=<warehouse name>&db=OCIGGLLと入力します。

      ノート:

      <account_identifier>および<warehouse name>を適切な値に置き換えてください。
    2. 「認証タイプ」の場合は、ドロップダウンから「キー・ペア認証」を選択します。

      ノート:

      キー・ペア認証は、Snowflakeストリーミングでサポートされている唯一の認証タイプです。
    3. 「ユーザー名」に、名前を入力します。
    4. 前に作成した「秘密キー」をアップロードします。
    5. 「秘密キーのパスワード」フィールドに秘密キーのパスフレーズを入力します。
  6. ターゲット・ビッグ・データ・デプロイメントの場合はGoldenGateへの接続の作成、次にこの接続をソースPostgreSQLデプロイメントに割り当てます
  7. ソースPostgreSQL接続をPostgreSQLデプロイメントに割り当てます
  8. 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: 「抽出」の作成

  1. 変更データ取得抽出を追加します:
    1. 左側のナビゲーションで、「抽出」をクリック
    2. 抽出ページで、抽出」の追加(プラス・アイコン)をクリックし、次のようにフィールドに入力します:
      • 「情報の抽出」ページで、次の手順を実行します:
        1. 「抽出」で、チェンジ・データ・キャプチャ「抽出」を選択します。
        2. 「プロセス名」には、「抽出」の名前(ECDCなど)を入力します。
        3. 「次へ」をクリックします。
      • 「抽出」オプション・ページで、次の手順を実行します:
        1. ソース資格証明で、「ドメイン」ドロップダウンからOracle GoldenGateを選択
        2. 「別名」ドロップダウンから、ソースPostgreSQLデータベースを選択します。
        3. 「抽出」トレイル名に、C1などの2文字のトレイル名を入力します。
        4. 「登録」をクリックし、「次」を次にクリックします。
      • 「抽出」パラメータ・ページで、次を追加します:
        TABLE src_ociggll.*;
    3. 「Create and Run」をクリックします
  2. 初期ロード抽出を追加します:
    1. 「Extract」ページで、抽出の追加」をクリックし、「抽出の追加」フォームに次のように入力します:
      • 「抽出」の「情報」ページで、次の手順を実行します:
        1. 「抽出」タイプで、初期ロード「抽出」を選択します。
        2. 「プロセス名」に、EILなどの名前を入力します。
        3. 「次へ」をクリックします。
      • 「抽出」オプション・ページで、次の手順を実行します:
        1. 「ソース資格証明」で、「ドメイン」ドロップダウンからOracle GoldenGateを選択します。
        2. 「別名」のドロップダウンからPostgreSQLデータベースを選択します。
        3. 「抽出」トレイル名に、I1などの2文字のトレイル名を入力します。
        4. 「次へ」をクリックします。
      • 「抽出」パラメータ・ページで、TABLE *.*を次のように置き換えます:
        TABLE src_ociggll.*;
    2. 「Create and Run」をクリックします
「抽出」ページに戻り、「抽出」の開始を確認できます。

タスク4: 「初期ロード抽出」「分散パス」を作成

初期ロード抽出分散パスを作成するには:
  1. Oracle Cloudコンソールの「デプロイメント」ページで、「ターゲット」ビッグ・データ・デプロイメントを選択します。
  2. 「デプロイメントの詳細」ページで、「コンソールを起動」をクリックします。 タスク1のステップ2で作成した管理ユーザーの詳細を使用してログインします。
  3. IAM資格証明ストアを使用している場合は、「分散パス」の作成ステップに進みます。 GoldenGate資格証明ストアを使用する場合は、ソースGoldenGateがターゲットGoldenGateへの接続に使用するユーザーを作成します。
    1. ナビゲーション・メニューで、「ユーザー管理」をクリックします。
    2. 新しいユーザーを追加 (プラス・アイコン)をクリックし、次のようにフィールドに入力して、送信をクリックします:
      • 「ユーザー名」には、ggsnetと入力します。
      • 「ロール」で、「オペレータ」を選択します。
      • 確認のためにパスワードを2回入力します。
  4. 「ソース」 PostgreSQLデプロイメント・コンソールで、前のステップで作成したユーザーのパス接続を作成します。
    1. ナビゲーション・メニューで、「パス接続」をクリックします。
    2. パス接続の追加 (プラス・アイコン)をクリックし、次のようにフィールドに入力して、送信をクリックします:
      • 資格証明別名に、dpuserと入力します。
      • ユーザーIDに、ggsnetと入力
      • Passwordに、前のステップで使用したものと同じパスワードを入力します。
  5. 「分散パス」を作成します。
    1. サービス・メニュー・バーで、「分散サービス」をクリックし、分散パスの追加」 (プラス・アイコン)をクリックします。
    2. 次のように「パスの追加」フォームに入力します:
      • 「パスの情報」ページで、次の手順を実行します:
        1. 「パス名」には、このパスの名前を入力します。
        2. 「次へ」をクリックします。
      • 「ソース・オプション」ページで、次の手順を実行します:
        1. ソース「抽出」では、空白のままにします。
        2. 「トレイル名」に、「初期ロード抽出」証跡名(I1)を入力します。
        3. 「次へ」をクリックします。
      • 「ターゲット・オプション」ページで、次の手順を実行します:
        1. 「ターゲット・プロトコル」の場合は、wssを選択します。
        2. 「ターゲット・ホスト」に、ターゲット・デプロイメントURLをhttps://または末尾のスラッシュなしで入力します。
        3. 「ポート番号」には、443と入力します。
        4. 「トレイル名」には、I1と入力します。
        5. 「ターゲット認証メソッド」の場合は、OAuthを選択します。

          ノート:

          デプロイメントの作成時に資格証明ストアとしてGoldenGateが選択されている場合は、「UserID別名」を選択します。 それ以外の場合は、OAuthを選択します。
        6. 「ドメイン」には、前のステップで作成したドメイン名を入力します。
        7. 「別名」に、前のステップ(dpuser)で作成した別名を入力します。
        8. 「次へ」をクリックします。
    3. 「Create and Run」をクリックします
    「分散サービス」ページに戻り、作成したパスを確認できます。
  6. ターゲットビッグ・データ・デプロイメント・コンソールで、分散パスの結果として作成された受信パスを確認します:
    1. 「受信サービス」をクリックします。
    2. 「受信パス」の詳細を確認します。

タスク5: 「初期ロード」Replicatを追加

  1. 「ターゲット」ビッグ・データ・デプロイメント・コンソールで、「初期ロードReplicat」を追加します。
    1. ナビゲーション・メニューで、「Replicats」をクリックし、「Replicatの追加」 (プラス・アイコン)をクリックします。
    2. Replicatsページで、次のように「Replicatの追加」フィールドに入力します:
      1. 「レプリケーション情報」ページで、次の手順を実行します:
        1. Replicatで、「調整Replicat」を選択します。
        2. 「プロセス名」には、RILなどの名前を入力します。
        3. 「次へ」をクリックします。
      2. 「Replicatオプション」ページで、次の手順を実行します:
        1. 「Replicatトレイル名」に、タスク2からのトレイルの名前を入力します( I1)。
        2. 「ターゲット」で、Snowflakeを選択します。
        3. 「ターゲット資格証明」で、Snowflake接続の「ドメイン」および「別名」を選択します。
        4. 「使用可能な別名」で、ドロップダウンから別名(Snowflakeなど)を選択します。
        5. 「ストリーミング」を選択します。
        6. 「次へ」をクリックします。
      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. 「プロパティ」ページで、プロパティを確認し、jvm.bootoptions= -Djdk.lang.processReaperUseDefaultStackSize=trueを追加します。
      5. 「Create and Run」をクリックします

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

  2. 初期ロードを検証するには、Snowflakeデータベースに接続し、次の問合せを実行します:
    select * from SRCMIRROR_OCIGGLL.SRC_CITY;
    select * from SRCMIRROR_OCIGGLL.SRC_CUSTOMER;

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

タスク6: 「変更データ取得」「分散パス」を作成

変更データ取得分散パスを作成するには:
  1. 「ソース」 PostgreSQLデプロイメント・コンソールで、「分散サービス」をクリックします。
  2. 「分散パス」の追加をクリックします。
  3. 次のように「パスの追加」フォームに入力します:
    1. 「パスの情報」ページで、次の手順を実行します:
      1. 「パス名」に、名前を入力します。
      2. 「次へ」をクリックします。
    2. 「ソース・オプション」ページで、次の手順を実行します:
      1. ソース「抽出」で、「変更データ取得抽出」 (ECDC))を選択します。
      2. 「トレイル名」で、「変更データ取得」証跡ファイル(C1)を選択します。
      3. 「次へ」をクリックします。
    3. 「ターゲット・オプション」ページで、次の手順を実行します:
      1. 「ターゲット」で、wssを選択します。
      2. 「ターゲット・ホスト」に、ターゲット・デプロイメント・コンソールのURLを入力します(これは、デプロイメントの詳細ページで、https://または末尾のスラッシュを使用せずに確認できます)。
      3. 「ポート番号」には、443と入力します。
      4. 「トレイル名」には、C1と入力します。
      5. 「ターゲット認証メソッド」の場合は、OAuthを選択します。

        ノート:

        デプロイメントの作成時に資格証明ストアとしてGoldenGateが選択されている場合は、「UserID別名」を選択します。 それ以外の場合は、OAuthを選択します。
      6. 「ドメイン」に、ドメイン名を入力します。
      7. 「別名」に、別名を入力します。
    4. 「パスの作成および実行」をクリックします。
  4. ターゲットのビッグ・データ・デプロイメント・コンソールで、「受信サービス」をクリックし、作成した「受信パス」を確認します。

タスク7: 「変更データ取得」Replicatを追加

ソースPostgreSQLデータベースの更新を実行して、Snowflakeへのレプリケーションを確認します。
  1. Replicatを追加します。
    1. ターゲットのビッグ・データ・デプロイメント・コンソールで、「管理サービス」をクリックし、ナビゲーション・メニューでReplicatsをクリックします。
    2. Replicatsページで、Replicatの追加」(プラス・アイコン)をクリックし、次のように「Replicatの追加」フォームに入力します:
      • 「Replicat情報」ページで、次の手順を実行します:
        1. Replicatで、「クラシック」または「調整済」を選択します。
        2. 「プロセス名」には、RCDCなどの名前を入力します。
        3. 「次へ」をクリックします。
      • Replicatオプション・ページで、次の手順を実行します:
        1. Replicatトレイル名に、タスク3からのトレイルの名前を入力します( C1)。
        2. 「ターゲット」で、Snowflakeを選択します。
        3. 「ターゲット資格証明」で、Snowflake接続のドメインと別名を選択します。
        4. 「ストリーミング」を選択します。
      • 「パラメータ・ファイル」ページで、次のマッピングを追加し、をクリックします:
        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;
      • 「プロパティ」ページで、プロパティを確認し、次のマッピングを追加して、作成および実行をクリックします:
        jvm.bootoptions= -Djdk.lang.processReaperUseDefaultStackSize=true

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

  2. 変更データ取得を確認します:
    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個の挿入があることを確認します。

      ノート:

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

タスク8: プロセスの監視と保守

  1. パフォーマンスのモニター
  2. 証跡ファイルの管理