PostgreSQL

Version 26.2.9623


PostgreSQL


CData Sync アプリケーションからPostgreSQL コネクタを使用して、PostgreSQL からデータを取得してサポートされている任意の同期先に移動できます。これを行うには、コネクタを追加し、コネクタへの認証を行い、接続を完了する必要があります。

PostgreSQL コネクタを追加

Sync でPostgreSQL のデータを使用できるようにするには、まず以下の手順でコネクタを追加する必要があります。

  1. Sync のダッシュボードから接続ページを開きます。

  2. 接続を追加をクリックしてコネクタを選択ページを開きます。

  3. データソースタブをクリックしてPostgreSQL 行に移動します。

  4. 行末にある接続を設定アイコンをクリックして、新しい接続ページを開きます。この操作により、接続を追加ダイアログボックスが開きます。

    Note:接続を設定アイコンが表示されない場合は、コネクタをダウンロードアイコンをクリックして PostgreSQL コネクタをインストールしてください。

  5. 接続を追加ダイアログボックスに接続名を入力します。

  6. 追加をクリックして、コネクタの設定タブを開きます。

新しいコネクタのインストールについての詳細は、接続を参照してください。

PostgreSQL への認証

コネクタを追加したら、必須プロパティを設定する必要があります。

Server - PostgreSQL データベースをホストしているサーバーのホスト名またはIP アドレスを入力します。デフォルトのサーバー値はlocalhost です。

CData Sync は、いくつかの方法でPostgreSQL への認証をサポートしています。以下から認証方法を選択し、認証の詳細を含む該当セクションに進みます。

Password

ユーザー資格情報で接続するには、次のプロパティを指定します。

  • Auth Scheme:Password を選択。

  • User:PostgreSQL アカウントへの認証に使用するユーザー名を入力。

  • Password:PostgreSQL アカウントへの認証に使用するパスワードを入力。

Azure Active Directory

Azure Active Directory で接続するには、次のプロパティを指定します。

  • Auth Scheme:AzureAD を選択。

  • User:PostgreSQL アカウントへの認証に使用するユーザー名を入力。

  • Azure Tenant:接続するMicrosoft Online テナントを入力。テナントを指定しない場合には、CData Sync はディフォルトのテナントを使用します。

  • OAuth Client Id:OAuth 認証サーバーにアプリケーションを登録した際に割り当てられたクライアントId を入力。

  • OAuth Client Secret:OAuth 認証サーバーにアプリケーションを登録した際に割り当てられたクライアントシークレットを入力。

Azure Service Principal

Azure サービスプリンシパルとクライアントシークレットで接続するには、次のプロパティを設定します。

  • Auth Scheme:AzureServicePrincipal を選択。

  • Azure Tenant:接続するMicrosoft Online テナントを入力。

  • User:PostgreSQL アカウントへの認証に使用するユーザー名を入力。

  • OAuth Client Id:OAuth 認証サーバーにアプリケーションを登録した際に割り当てられたクライアントId を入力。

  • OAuth Client Secret:OAuth 認証サーバーにアプリケーションを登録した際に割り当てられたクライアントシークレットを入力。

  • (オプション)Scope:アプリケーションへのアクセス範囲を指定。

アプリケーションのOAuth クライアントId およびクライアントシークレットを取得するには:

  1. Azure ポータルにログインします。

  2. 左ナビゲーションペインですべてのサービスを選択します。次にアプリの登録を検索し選択します。

  3. 新規登録をクリックします。

  4. アプリケーションの名前を入力して任意のAzure AD ディレクトリ - マルチテナントを選択します。

  5. アプリケーションを作成したら、概要セクションに表示されるアプリケーション (クライアント) ID の値をコピーします。この値をOAuth クライアントId として使用します。

  6. 証明書とシークレットセクションに移動して、アプリケーションの新しいクライアント シークレットを選択します。

  7. 有効期間を指定してクライアントシークレットを保存します。保存するとキーの値が表示されます。

  8. 値は一度しか表示されないので、コピーしておきます。この値をOAuth クライアントシークレットとして使用します。

  9. 認証タブで、必ずアクセストークン (暗黙的なフローに使用) を選択します。

Azure Service Principal Certificate

Azure サービスプリンシパルとクライアント証明書で接続するには、次のプロパティを設定します。

  • Auth Scheme:AzureServicePrincipalCert を選択。

  • User:PostgreSQL アカウントへの認証に使用するユーザー名を入力。

  • Azure Tenant:接続するMicrosoft Online テナントを入力。

  • OAuth JWT Cert:Java web token(JWT)証明書ストアを入力。

  • OAuth JWT Cert Type:JWT 証明書を格納するキーストアの種類を入力。デフォルトの種類はPEMKEY_BLOB です。

  • (オプション)Scope:アプリケーションへのアクセス範囲を指定。

  • (オプション)OAuth JWT Cert Password:OAuth JWT 証明書のパスワードを入力。

  • (オプション)OAuth JWT Cert Subject:OAuth JWT 証明書のサブジェクトを入力。

アプリケーションのOAuth 証明書を取得するには:

  1. Azure ポータルにログインします。

  2. 左ナビゲーションペインですべてのサービスを選択します。次にアプリの登録を検索し選択します。

  3. 新規登録をクリックします。

  4. アプリケーションの名前を入力して任意のAzure AD ディレクトリ - マルチテナントを選択します。

  5. アプリケーションを作成したら、概要セクションに表示されるアプリケーション (クライアント) ID の値をコピーします。この値をOAuth クライアントId として使用します。

  6. 証明書とシークレットセクションに移動して、証明書のアップロードを選択します。次に、ローカルマシンからアップロードする証明書を選択します。

  7. 有効期間を指定してクライアントシークレットを保存します。保存するとキーの値が表示されます。

  8. 値は一度しか表示されないので、コピーしておきます。この値をOAuth クライアントシークレットとして使用します。

  9. 認証タブで、必ずアクセストークン (暗黙的なフローに使用) を選択します。

Azure Password

Azure ユーザー資格情報で接続するには、次のプロパティを指定します。

  • Auth Scheme:AzurePassword を選択。

  • User:PostgreSQL アカウントへの認証に使用するユーザー名を入力。

  • Password:PostgreSQL アカウントへの接続に使用するパスワードを入力。

  • Azure Tenant:接続するMicrosoft Online テナントを入力。テナントを指定しない場合には、CData Sync はディフォルトのテナントを使用します。

Azure Managed Service Identity

Azure マネージドサービスID(MSI)で接続するには、次のプロパティを指定します。

  • Auth Scheme:AzureMSI を選択。

  • User:PostgreSQL アカウントへの認証に使用するユーザー名を入力。

AWS IAM ロール

IAM ユーザー認証情報で接続するには、次のプロパティを指定します。

  • Auth Scheme:AwsIAMRoles を選択。

  • User:PostgreSQL アカウントへの認証に使用するユーザー名を入力。

  • AWS Access Key:Amazon Web Services(AWS)アカウントのアクセスキーを入力。この値は、AWS のセキュリティ認証情報ページで確認できます。

  • AWS Secret Key:AWS アカウントのシークレットキーを入力。この値は、AWS のセキュリティ認証情報ページで確認できます。

  • AWS Role ARN:認証したいロールのAmazon リソースネーム(ARN)を入力。

*(オプション)AWS External Id:別のアカウントでロールを引き受ける際に必要となる一意の識別子を入力。

AWS EC2 ロール

EC2 インスタンスでCData Sync を実行すると、CData Sync はインスタンスに割り当てられたIAM ロールを使用して認証できます。そのロールを使用するには、Auth SchemeAwsEC2Roles を選択します。追加のプロパティは必要ありません。

GCP Service Account

GCP サービスアカウントで接続するには、次のプロパティを指定します。

  • Auth Scheme - GCPServiceAccount を選択。

  • OAuth JWT Cert - Java web token(JWT)証明書ストアを入力。

  • OAuth JWT Cert Type - JWT 証明書を格納するキーストアの種類を入力。デフォルトの種類はPEMKEY_BLOB です。

  • OAuth JWT Cert Password(オプション)- OAuth JWT 証明書のパスワードを入力。

  • OAuth JWT Cert Subject(オプション)- アプリケーションが委任されたアクセスを要求するユーザーサブジェクトを入力。

接続を完了する

接続を完了するには:

  1. 以下を設定します。

    • Database:PostgreSQL サーバーに接続する際に接続するデフォルトのデータベースの名前を入力。

    • Port:PostgreSQL データベースをホストしているサーバーのポート番号を入力。デフォルトのポート値は5432です。

  2. 高度な設定タブで接続の高度な設定を定義します。(ただし、ほとんどの場合これらの設定は必要ありません。)

  3. AzureAD, AzurePassword, AzureMSI, or GCPServiceAccount で認証する場合は、PostgreSQL への接続 をクリックしてPostgreSQL アカウントに接続します。

  4. 作成およびテストをクリックして接続を作成します。

論理レプリケーションの設定

CData Sync は、PostgreSQL で設定された論理レプリケーションを使用して同期先テーブルを差分更新することができます。PostgreSQL は、データベース内のデータ変更を追跡するログ先行書き込み(WAL)の内容を可読形式にするために論理デコードを使用します。これらの変更はSync によって読み込まれ、同期先へプッシュされます。

CData Sync の論理レプリケーションを有効化

Sync の論理レプリケーションを有効化するには:

  1. PostgreSQL データベースでwal_level=logical パラメータが設定されていることを確認します。postgresql.conf ファイルでこのパラメータを設定できます。

  2. 次のSELECT ステートメントを送信して、Sync の論理レプリケーションスロットを作成します。

    SELECT pg_create_logical_replication_slot('cdatasync_replication_slot', 'test_decoding');
    

    Note:cdatasync_replication_slot は、スロット名の例です。任意の名前を代用できます。このスロット名は、Sync でジョブを作成する際に必要です。このスロットは、Sync によってのみ使用されることが重要です。なぜなら、スロットからの読み込み時に変更が消費されるからです。

  3. 次のステートメントを送信して、Sync から接続するユーザーがレプリケーションスロットの読み取り権限を持っていることを確認します。

    ALTER ROLE <em>PostreSQL-User</em> WITH REPLICATION;
    
  4. Sync でPostgreSQL データソースでジョブを作成します。変更データキャプチャオプションを選択後、レプリケーションスロット名を入力します。

削除の挙動

論理レプリケーションでは、ソーステーブルに主キーが含まれている場合、Sync は削除されたレコードを追跡できます。ソーステーブルに主キーが含まれていない場合、Sync は削除されたレコードを取得できません。

差分レプリケーションのサポート

PostgreSQL データソースは差分レプリケーションをサポートしています。差分レプリケーションによりワークロードが大幅に軽減され、帯域幅の使用と同期の遅延が最小限に抑えられます。データを差分ごとに移動させることで、遅いAPI や毎日のクオータに対処する際、非常に高い柔軟性を発揮します。

PostgreSQL データソースのカラムに基づいて差分チェックカラムを構成する必要があります。差分チェックカラムは、データを同期する際に新規または変更されたレコードを識別するためにSync が使用する、datetime またはinteger ベースのカラムです。したがって、差分レプリケーションを実行するには、PostgreSQL テーブルのdatetime またはinteger ベースのカラムに対して差分チェックを構成する必要があります。

差分レプリケーションの設定方法の詳細は、差分レプリケーションを参照してください。

詳細情報

CData Sync とPostgreSQL の連携について、詳しくはPostgreSQL Connector for CData Sync を参照してください。