機械翻訳について

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

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

始める前に

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

環境の設定

このクイックスタートの環境を設定するには:
  1. PostgreSQLのインストール
    1. PostgreSQLサーバーをインストールします:
      sudo yum install postgresql-server
    2. このSQL例外を避けるためにpostgresql-contribモジュールをインストールします:
      sudo yum install postgresql-contrib
    3. 新しいPostgreSQLデータベース・クラスタを作成します:
      sudo postgresql-setup --initdb
    4. postgresql.serviceを有効にします:
      sudo systemctl enable postgresql.service
    5. postgresql.serviceを起動します:
      sudo systemctl start postgresql.service
  2. デフォルトでは、PostgreSQLはローカル接続のみを許可します。 「PostgreSQLへのリモート接続を許可」
    1. /var/lib/pgsql/data/postgresql.confで、レプリケーション用のデータベースを準備します:
      1. listen_addresses = 'localhost'を見つけてコメントを解除し、localhostをアスタリスク(*)に変更します:
        listen_addresses = '*'
      2. 次のパラメータを次のように設定します:
        • wal_level = logical
        • max_replication_slots = 1
        • max_wal_senders = 1
        • track_commit_timestamp = on

      ノート:

      Oracle GoldenGateホストからの接続を許可するようにクライアント認証が設定されるように、/var/lib/pgsql/data/pg_hba.confを構成します。 たとえば、次のように追加します:
      #Allow connections from remote hosts
      host    all    all    0.0.0.0/0    md5
      詳細については、「pg_hba.confファイル」を参照してください。
    2. PostgreSQLサーバーを再起動します:
      sudo systemctl restart postgresql.service
  3. Oracle Cloud Computeを使用してPostgreSQLをホストする場合は、ポート5432を開きます:
    sudo firewall-cmd --permanent --add-port=5432/tcp
    sudo firewall-cmd --reload
    sudo firewall-cmd --list-all
  4. VCNセキュリティ・リストでポート5432を開きます。
  5. PostgreSQLに接続
    > sudo su - postgres
    > psql
  6. PostgreSQLを設定します。
    1. seedSRCOCIGGLL_PostgreSQL.sqlをダウンロードして実行し、データベースを設定し、サンプル・データをロードします。
    2. 次のコマンドを実行して、ユーザーを設定します:
      create user ggadmin with password 'W3lcome@1234';
      alter user ggadmin with SUPERUSER;
      GRANT ALL PRIVILEGES ON DATABASE ociggll TO ggadmin;
  7. Snowflakeを設定します:
    1. 適切な権限を指定したSnowflakeにGoldenGateユーザーを作成
    2. サンプル・スキーマを使用してターゲット表を作成します。
    3. 表およびユーザーが正常に作成されたことを確認します。

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

このクイックスタートの例では、ソースとターゲットの両方のデプロイメントおよび接続が必要です。
  1. ソースPostgreSQLデータベースのデプロイメントを作成します。
  2. ターゲットSnowflakeデータベースにビッグ・データ・デプロイメントを作成します。
  3. 次の値を持つPostgreSQL接続の作成:
    1. 「タイプ」の場合、ドロップダウンから「PostgreSQLサーバー」を選択します。
    2. 「データベース名」には、ociggllと入力します。
    3. 「ホスト」に、PostgreSQLが実行されるコンピュート・インスタンスのパブリックIPを入力します。
    4. 「ポート」には、5432と入力します。
    5. 「ユーザー名」には、ggadminと入力します。
    6. 「パスワード」には、W3lcome@1234と入力します。
    7. 「セキュリティ・プロトコル」の場合、ドロップダウンから「プレーン」を選択します。
  4. 次の値を使用してSnowflake接続を作成します:
    1. Connection 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. サプリメンタル・ロギングを有効化します。
    1. PostgreSQL GoldenGateデプロイメント・コンソールを起動します:
      1. デプロイメント・ページで、PostgreSQLデプロイメントを選択して詳細を表示します。
      2. PostgreSQLデプロイメントの詳細ページで、「コンソールの起動」をクリックします。
      3. デプロイメント・コンソールのサインイン・ページで、タスク1のステップ1で指定したGoldenGate管理資格証明を入力します。
    2. サインインした後、ナビゲーション・メニューを開き、「構成」をクリックします。
    3. 「接続」をクリックします。 接続が成功すると、チェックポイント表およびTRANDATAフィールドが表示されます。
    4. TRANDATA情報の横にある「TRANDATAの追加」 (プラス・アイコン)をクリックします。
    5. 「表名」src_ociggll.*;と入力し、「送信」をクリックします。

      ノート:

      送信をクリックするだけです。 検索フィールドを使用してsrc_ociggllを検索し、表が追加されたことを確認します。
  2. 変更データ取得抽出を追加します:
    1. ナビゲーション・メニューで、「概要」をクリックします。
    2. 「管理サービス」ページで、「Extractの追加」 (プラス・アイコン)をクリックします。
    3. 「抽出タイプ」ページで、「変更データ取得抽出」を選択し、「次」をクリックします。
    4. 次のように抽出オプションを入力し、をクリックします:
      1. 「プロセス名」には、Extractの名前(ECDCPSQLなど)を入力します。
      2. 「資格証明ドメイン」で、Oracle GoldenGateを選択します。
      3. 「資格証明別名」で、別名を選択します。
      4. 「開始」で、「現在」を選択します。
      5. 「トレイル名」には、P1などの2文字の証跡名を入力します。
    5. 「抽出パラメータ」ページで、次を追加します:
      TABLE SRC_OCIGGLL.*;
    6. 「Create and Run」をクリックします
  3. 初期ロード抽出を追加します:
    1. 「管理サービスの概要」ページで、「Extractの追加」 (プラス・アイコン)をクリックします。
    2. 「抽出タイプ」ページで、「初期ロード抽出」を選択し、「次」をクリックします。
    3. 次のように抽出オプションを入力し、をクリックします:
      1. 「プロセス名」には、Extractの名前(EINIPSQLなど)を入力します。
      2. 「資格証明ドメイン」で、Oracle GoldenGateを選択します。
      3. 「資格証明別名」で、別名を選択します。
      4. 「トレイル名」には、I1などの2文字の証跡名を入力します。
    4. 抽出パラメータ・テキスト領域で、次を追加します:
      EXTRACT EINIPSQL
      USERIDALIAS PostgreSQL_Compute, DOMAIN OracleGoldenGate
      EXTFILE I1, PURGE
      TABLE src_ociggll.*;

      ノート:

      移動する前に、USERIDALIASの前にあるSOURCEDBパラメータを削除してください。
    5. 「Create and Run」をクリックします

      「管理サービスの概要」ページに戻り、Extractの起動を観測できます。

タスク3: 初期ロード抽出の分散パスの作成

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

      「分散サービスの概要」ページに戻り、作成したパスを確認できます。

  6. ターゲットのビッグ・データ・デプロイメント・コンソールで、分散パスの結果として作成されたレシーバ・パスを確認します:
    1. 「レシーバ・サービス」をクリックします。
    2. レシーバ・パスの詳細をレビューします。

タスク4: 初期ロード用のReplicatの追加

  1. ターゲットのビッグ・データ・デプロイメント・コンソールで、チェックポイント表を追加します。
    1. ナビゲーション・メニューを開き、「構成」を選択します。
    2. ターゲットSnowflakeデータベースの接続アイコンをクリックします。
    3. 「チェックポイントの追加」 (プラス・アイコン)をクリックします。
    4. 「チェックポイント表」には、SRCMIRROR_OCIGGLL.CHECKTABLEと入力します。
    5. 「送信」をクリックします。
  2. 初期ロードReplicatを追加します。
    1. ナビゲーション・メニューで、「概要」をクリックし、「Replicatの追加」 (プラス・アイコン)をクリックします。
    2. 「Replicatの追加」ページのReplicatタイプで、「クラシック」または「調整」を選択し、「次」をクリックします。
    3. 「Replicatオプション」ページで、次のフォーム・フィールドに入力し、をクリックします:
      1. 「プロセス名」には、RILなどの名前を入力します。
      2. 「資格証明ドメイン」で、Snowflake接続のドメインを選択します。
      3. 「資格証明別名」で、Snowflake接続の別名を選択します。
      4. 「証跡名」に、タスク2からの証跡の名前(I1)を入力します。
      5. 「ターゲット」の場合、ドロップダウンからターゲットのSnowflake接続を選択します。
      6. 「使用可能な別名」で、ドロップダウンから別名(Snowflakeなど)を選択します。
      7. (オプション) 「外部ストレージの有効化」:ドロップダウンから使用可能なステージングのロケーションを選択します。
    4. 「Replicatパラメータ」ページで、次のマッピングを追加し、をクリックします:
      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;
    5. プロパティ・ページでプロパティを確認し、「作成および実行」をクリックします。

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

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

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

タスク5: 変更データ取得の分散パスの作成

変更データ取得の分散パスを作成するには、次の手順を実行します:
  1. ソースのPostgreSQLデプロイメント・コンソールで、「分散サービス」をクリックします。
  2. パス・ページで、「パスの追加」をクリックします。
  3. 「パスの追加」ページで、次のフィールドに入力し、作成および実行をクリックします:
    1. 「パス名」に、名前を入力します。
    2. 「ソースの抽出」で、変更データ取得抽出 (ECDCPSQL)を選択します。
    3. 「トレイル名」で、変更データ取得抽出証跡ファイル(P1)を選択します。
    4. 「ターゲット認証メソッド」で、「UserID別名」を選択します。
    5. 「ターゲット」で、wssを選択します。
    6. 「ターゲット・ホスト」に、ターゲットのOCI GoldenGateデプロイメント・コンソールURLを、https://または末尾のスラッシュなしで入力します。
    7. 「ポート番号」には、443と入力します。
    8. 「トレイル名」には、P1と入力します。
    9. 「ドメイン」には、タスク3で作成したドメイン名を入力します。
    10. 「別名」には、タスク3で作成した別名を入力します。
  4. ターゲットのビッグ・データ・デプロイメント・コンソールで、「受信サービス」をクリックし、作成されたレシーバ・パスを確認します。

タスク6: 変更データ取得用のReplicatの追加

ソースPostgreSQLデータベースへの更新を実行して、Snowflakeへのレプリケーションを確認します。
  1. 変更データReplicatを追加します。
    1. ターゲットのビッグ・データ・デプロイメント・コンソールで、「管理者サービス」をクリックし、「Replicatの追加」 (プラス・アイコン)をクリックします。
    2. 「Replicatの追加」ページのReplicatタイプで、「クラシック」または「調整」を選択し、「次」をクリックします。
    3. 「Replicatオプション」ページで、次のフォーム・フィールドに入力し、をクリックします:
      1. 「プロセス名」には、RCDCなどの名前を入力します。
      2. 「資格証明ドメイン」で、Snowflake接続のドメインを選択します。
      3. 「資格証明別名」で、Snowflake接続の別名を選択します。
      4. 「トレイル名」に、タスク2からの証跡の名前(P1)を入力します。
      5. 「ターゲット」の場合、ドロップダウンからターゲットのSnowflake接続を選択します。
      6. 「使用可能な別名」で、ドロップダウンから別名(Snowflakeなど)を選択します。
      7. (オプション) 「外部ストレージの有効化」:ドロップダウンから使用可能なステージングのロケーションを選択します。
    4. 「Replicatパラメータ」ページで、次のマッピングを追加し、をクリックします:
      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;
    5. プロパティ・ページでプロパティを確認し、「作成および実行」をクリックします。

      概要ページに戻り、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個の挿入があることを確認します。

      ノート:

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

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

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