PostgreSQL データソースは、PostgreSQL からのデータの読み取りと PostgreSQL へのデータの書き込みのための双方向チャネルを提供します。コードレス UI またはコードエディタを使用して、データ同期タスクを構成できます。このトピックでは、DataWorks が PostgreSQL のデータ同期をどのようにサポートするかについて説明します。
サポート対象バージョン
PostgreSQL バージョン 10、11、12、13、14、15、および 16.4 のデータソースを構成できます。PostgreSQL データベースのバージョンを確認するには、次の文を実行します。
SHOW SERVER_VERSION;制限事項
オフラインでの読み書き
ビューからデータを読み取ることができます。
PostgreSQL データソースは、SCRAM-SHA-256 方式を含むパスワードベースの認証をサポートしています。PostgreSQL データベースでパスワードまたは認証方式を変更した場合は、データソースの構成を更新し、接続を再度テストし、関連タスクを手動で実行して変更を検証する必要があります。
PostgreSQL のテーブル名またはフィールド名が数字で始まる、大文字と小文字を区別する、またはハイフン (-) を含む場合は、名前を二重引用符 ("") で囲む必要があります。そうしないと、PostgreSQL プラグインはデータを読み書きできません。PostgreSQL Reader および Writer プラグインでは、二重引用符 ("") は JSON のキーワードです。したがって、バックスラッシュ (\) を使用して二重引用符をエスケープする必要があります。たとえば、テーブル名が
123Testの場合、エスケープされた名前は\"123Test\"になります。説明開始と終了の両方の二重引用符をバックスラッシュ (\) でエスケープする必要があります。
コードレス UI はエスケープをサポートしていません。文字をエスケープするには、コードエディタに切り替える必要があります。
次のコードは、コードエディタで文字をエスケープする方法の例を示しています。
"parameter": { "datasource": "abc", "column": [ "id", "\"123Test\"", // エスケープ文字を追加します。 ], "where": "", "splitPk": "id", "table": "public.wpw_test" },一意なインデックスに基づく PostgreSQL データソース内のデータの更新はサポートされていません。データを更新するには、まずデータを一時テーブルに書き込み、次に
RENAME操作を使用する必要があります。
リアルタイムでの読み取り
Data Integration のリアルタイム同期タスクには、次の制限が適用されます。
Data Integration は
ADD COLUMNを特別にサポートしています。制約:
ADD COLUMN操作を、単一のトランザクション内で他のADD COLUMN、DROP COLUMN、または他のデータ定義言語 (DDL) 文と組み合わせることはできません。重要ADD COLUMNをDROP COLUMN や RENAME COLUMNなどの他の操作 (ALTER COLUMNの動作) と一緒に使用すると、データ同期タスクは失敗します。制限:Data Integration は
ADD COLUMN以外の DDL 操作を検出できません。
ALTER TABLE および
CREATE TABLE操作はサポートされていません。TEMPORARY、UNLOGGED、および Hyper テーブルのレプリケーションはサポートされていません。PostgreSQL は、これらのタイプのテーブルのログを解析してサブスクライブするメカニズムを提供していません。
Sequences (
serial/bigserial/identity) のレプリケーションはサポートされていません。TRUNCATE 操作はサポートされていません。
ラージオブジェクト (Bytea) のレプリケーションはサポートされていません。
ビュー、マテリアライズドビュー、および外部テーブルのレプリケーションはサポートされていません。
PostgreSQL を単一テーブルまたはデータベース全体のリアルタイム同期のソースとして使用する場合、自分が所有するテーブルのみを同期できます。
サポートされるデータ型
ほとんどの PostgreSQL データ型がサポートされています。ただし、一部の型はオフラインでの読み書き操作でサポートされていません。ご利用のデータ型がサポートされていることを確認する必要があります。
次の表に、PostgreSQL のデータ型マッピングを示します。
カテゴリ | PostgreSQL データ型 |
整数型 | BIGINT、BIGSERIAL、INTEGER、SMALLINT、および SERIAL |
浮動小数点型 | DOUBLE PRECISION、MONEY、NUMERIC、および REAL |
文字列型 | VARCHAR、CHAR、TEXT、BIT、および INET |
日付と時刻の型 | DATE、TIME、および TIMESTAMP |
ブール型 | BOOL |
バイナリ型 | BYTEA |
表に記載されていないデータ型はサポートされていません。
PostgreSQL Reader の場合、
a_inet::varcharのような構文を使用して、MONEY、INET、BIT のデータ型を変換する必要があります。
事前準備
DataWorks でデータを同期する前に、このセクションで説明するように PostgreSQL 環境を準備する必要があります。この準備により、PostgreSQL のデータ同期タスクが期待どおりに構成および実行できるようになります。次のセクションでは、必要な準備について説明します。
準備 1:アカウントの作成と権限の設定
後続の操作のためにデータベースのログインアカウントを作成します。このアカウントには、REPLICATION および LOGIN 権限が必要です。
リアルタイム同期は論理レプリケーションのみをサポートします。論理レプリケーションは、パブリッシュ/サブスクライブモデルを使用します。このモデルでは、1 つ以上のサブスクライバーがパブリッシャーノード上の 1 つ以上のパブリケーションをサブスクライブします。サブスクライバーは、サブスクライブしているパブリケーションからデータをプルします。
テーブルの論理レプリケーションは、通常、パブリッシャーデータベースのデータのスナップショットを取得し、それをサブスクライバーにコピーすることから始まります。スナップショットがコピーされた後、パブリッシャーでの変更はリアルタイムでサブスクライバーに送信されます。
アカウントの作成
詳細については、「アカウントとデータベースの作成」をご参照ください。
権限の設定
アカウントに
replication権限があるかどうかを確認します。select userepl from pg_user where usename='xxx'コマンドが True を返した場合、権限は付与されています。False を返した場合、権限は付与されていません。権限を付与するには、次の文を実行します。
ALTER USER <user> REPLICATION;
準備 2:セカンダリデータベースのサポートの確認
SELECT pg_is_in_recovery()
プライマリデータベースのみがサポートされています。コマンドは False を返す必要があります。True を返した場合、データベースはセカンダリデータベースです。リアルタイム同期はセカンダリデータベースをサポートしていません。データソースの構成を変更して、プライマリデータベースを使用する必要があります。詳細については、「PostgreSQL データソースの構成」をご参照ください。
準備 3:wal_level が logical に設定されているかの確認
show wal_level
wal_level パラメーターは wal_log のレベルを指定します。コマンドは logical を返す必要があります。そうでない場合、論理レプリケーションメカニズムはサポートされていません。
準備 4:wal_sender プロセスが開始できるかの確認
-- max_wal_senders をクエリします。
show max_wal_senders;
-- pg_stat_replication プロセスの数をクエリします。
select count(*) from pg_stat_replicationmax_wal_senders が空でなく、max_wal_senders の値が pg_stat_replication のエントリ数より大きい場合、アイドル状態の wal_sender プロセスが利用可能です。PostgreSQL データベースは、データ同期プログラムがサブスクライバーにログを送信するために wal_sender プロセスを開始します。
同期したい各テーブルに対して、ALTER TABLE [tableName] REPLICA IDENTITY FULL 文を実行して必要な権限を付与する必要があります。そうしないと、リアルタイム同期タスクでエラーが報告されます。
リアルタイム PostgreSQL 同期タスクが開始されると、データベース内にスロットとパブリケーションが自動的に作成されます。スロット名は di_slot_ + ソリューション ID の形式で、パブリケーション名は di_pub_ + ソリューション ID の形式です。リアルタイム同期タスクが停止または非公開になった後、スロットとパブリケーションを手動で削除する必要があります。そうしないと、PostgreSQL の先行書き込みログ (WAL) が増え続ける可能性があります。
データソースの追加
DataWorks で同期タスクを開発する前に、「データソース管理」の指示に従って、必要なデータソースを DataWorks に追加する必要があります。データソースを追加する際に、DataWorks コンソールでパラメーターの説明を表示して、パラメーターの意味を理解できます。
PostgreSQL データベースで SSL 認証が有効になっている場合は、DataWorks で PostgreSQL データソースを追加する際にも SSL 認証を有効にする必要があります。詳細については、「付録 2:PostgreSQL データソースへの SSL 認証の追加」をご参照ください。
データ同期タスクの開発:PostgreSQL 同期ガイド
同期タスクの設定のエントリポイントと手順については、以下の設定ガイドをご参照ください。
単一テーブルのオフライン同期タスクの設定ガイド
詳細については、「コードレス UI の使用」および「コードエディタの使用」をご参照ください。
コードエディタのパラメーターの完全なリストとスクリプトの例については、「付録 1:スクリプトの例とパラメーターの説明」をご参照ください。
データベース全体のオフライン読み取りおよびリアルタイム同期タスクの設定ガイド
詳細については、「データベース全体のリアルタイム同期タスクの設定」をご参照ください。
よくある質問
アクティブ/スタンバイ同期設定でのデータ復元。
この問題は、PostgreSQL がアクティブ/スタンバイ災害復旧用に構成されている場合に発生する可能性があります。この構成では、セカンダリデータベースはプライマリデータベースから継続的にデータを復元します。プライマリデータベースとセカンダリデータベース間のデータ同期には時間差が存在します。ネットワーク遅延などの場合、セカンダリデータベース上のデータがプライマリデータベース上のデータと大幅に異なることがあります。その結果、セカンダリデータベースから同期されたデータは、プライマリデータベースの完全で最新のイメージではありません。
整合性の制約。
PostgreSQL は、強力な整合性を持つデータクエリインターフェイスを提供するリレーショナルデータベース管理システム (RDBMS) です。たとえば、同期タスク中に別のプロセスがデータベースにデータを書き込んだ場合、PostgreSQL Reader はデータベースのスナップショット機能のため、更新されたデータを取得しません。
上記の説明は、シングルスレッドモデルにおける PostgreSQL Reader のデータ整合性に適用されます。PostgreSQL Reader は、設定に基づいて同時データ抽出を使用することもできます。この場合、データの整合性を厳密に保証することはできません。
PostgreSQL Reader が splitPk パラメーターに基づいてデータをシャーディングした後、複数の同時タスクを開始してデータを同期します。これらの同時タスクは同じ読み取りトランザクションに属しておらず、それらの間には時間間隔があります。したがって、同期されたデータは単一の一貫したスナップショットからのものではありません。
複数のスレッドにまたがる一貫したスナップショットのための技術的なソリューションは現在利用できません。この問題は、エンジニアリングの観点からのみ対処できます。以下のソリューションにはトレードオフがあり、要件に基づいて選択できます。
データシャーディングなしでシングルスレッド同期を使用します。この方法は遅くなりますが、整合性を保証します。
他のデータライターを無効にして、データが静的であることを保証します。たとえば、テーブルをロックしたり、セカンダリデータベースの同期を無効にしたりできます。この方法は、オンラインサービスに影響を与える可能性があります。
データベースのエンコーディングの問題。
PostgreSQL サーバーは、簡体字中国語に対して EUC_CN および UTF-8 エンコーディングのみをサポートしています。PostgreSQL Reader は、データ抽出に Java Database Connectivity (JDBC) を使用します。JDBC はさまざまなエンコーディングと互換性があり、下位層でエンコーディング変換を実行します。したがって、PostgreSQL Reader はエンコーディングを自動的に検出してトランスコードするため、エンコーディングを指定する必要はありません。
PostgreSQL の基盤となる書き込みエンコーディングが構成されたエンコーディングと一致しない場合、PostgreSQL Reader はこの問題を特定したり、解決策を提供したりすることはできません。その結果、エクスポートされたデータに文字化けが含まれる可能性があります。
増分データ同期の方法。
PostgreSQL Reader は、JDBC SELECT 文を使用してデータを抽出します。これにより、
SELECT…WHERE…を使用して、次のように増分データ抽出を行うことができます。オンラインアプリケーションがすべての変更に対して変更フィールドにタイムスタンプを設定する場合、PostgreSQL Reader は最後の同期のタイムスタンプを使用して、新しいデータまたは更新されたデータのみを取得する WHERE 句を追加できます。
新しいストリームデータの場合、PostgreSQL Reader は、前回の同期からの最大自動インクリメント ID を使用する WHERE 句を追加できます。
ビジネスロジックに新しいデータと変更されたデータを区別するフィールドが含まれていない場合、PostgreSQL Reader は増分データ同期を実行できません。この場合、完全なデータ同期のみを実行できます。
SQL セキュリティ。
PostgreSQL Reader は querySql パラメーターを提供しており、これによりデータ抽出のための SELECT 文をカスタマイズできます。PostgreSQL Reader は querySql 文に対してセキュリティチェックを行いません。
付録 1:スクリプトの例とパラメーターの説明
コードエディタを使用したバッチ同期タスクの設定
コードエディタを使用してバッチ同期タスクを構成する場合、統一されたスクリプト形式の要件に基づいて、スクリプト内の関連パラメーターを構成する必要があります。詳細については、「コードエディタの使用」をご参照ください。以下の情報は、コードエディタを使用してバッチ同期タスクを構成する際に、データソースに対して構成する必要があるパラメーターについて説明しています。
Reader スクリプトの例
PostgreSQL データベースからデータを同期および抽出するジョブを構成するには、「コードエディタの使用」の指示をご参照ください。
{
"type":"job",
"version":"2.0",// バージョン番号。
"steps":[
{
"stepType":"postgresql",// プラグイン名。
"parameter":{
"datasource":"",// データソース。
"column":[// フィールド。
"col1",
"col2"
],
"where":"",// フィルター条件。
"splitPk":"",// データシャーディングに使用されるフィールド。データ同期は同時タスクを開始してデータを同期します。
"table":""// テーブル名。
},
"name":"Reader",
"category":"reader"
},
{
"stepType":"stream",
"parameter":{},
"name":"Writer",
"category":"writer"
}
],
"setting":{
"errorLimit":{
"record":"0"// エラーレコードの数。
},
"speed":{
"throttle":true, // throttle が false に設定されている場合、mbps パラメーターは効果がなく、速度制限は無効になります。throttle が true に設定されている場合、速度制限は有効になります。
"concurrent":1, // 同時ジョブの数。
"mbps":"12"// 速度制限のレート。1 mbps は 1 MB/s に相当します。
}
},
"order":{
"hops":[
{
"from":"Reader",
"to":"Writer"
}
]
}
}Reader スクリプトのパラメーター
パラメーター | 説明 | 必須 | デフォルト値 |
datasource | データソースの名前。コードエディタはデータソースの追加をサポートしています。このパラメーターの値は、追加されたデータソースの名前と同じでなければなりません。 | はい | なし |
table | 同期するテーブルの名前。 | はい | なし |
column | 指定されたテーブルから同期する列のセット。JSON 配列を使用してフィールド情報を記述します。デフォルトでは、すべての列が使用されます。例:[ * ]。
| はい | なし |
splitFactor | データ同期のシャード数を指定します。複数の同時スレッドを構成する場合、データは 同時スレッド数 × splitFactor に等しい数のシャードに分割されます。たとえば、同時スレッド数が 5 で splitFactor が 5 の場合、5 つの同時スレッドがシャーディングを実行するために使用され、データは 25 (5 × 5) のシャードに分散されます。 説明 推奨値は 1 から 100 です。大きな値はメモリ不足 (OOM) エラーを引き起こす可能性があります。 | いいえ | 5 |
splitPk | PostgreSQL Reader がデータを抽出する際に splitPk パラメーターを指定すると、splitPk で表されるフィールドに基づいてデータをシャーディングすることを示します。その後、データ同期は同時タスクを開始してデータ同期の効率を向上させます。
| いいえ | なし |
where | フィルター条件。PostgreSQL Reader は、指定された column、table、および where パラメーターに基づいて SQL 文を構築し、その SQL 文に基づいてデータを抽出します。たとえば、テスト中に where 句を使用してビジネスシナリオを指定できます。通常、where 句を
| いいえ | なし |
querySql (詳細モード、コードレス UI では利用不可) | 一部のビジネスシナリオでは、where パラメーターだけではフィルター条件を記述するのに不十分な場合があります。このパラメーターを使用して、フィルター SQL をカスタマイズできます。このパラメーターが構成されている場合、データ同期システムは tables、columns、および splitPk パラメーターを無視し、このパラメーターの内容を使用してデータをフィルター処理します。たとえば、複数テーブルの JOIN 後にデータを同期するには、 | いいえ | なし |
fetchSize | このパラメーターは、データベースサーバーから各バッチでフェッチされるデータレコードの数を定義します。この値は、Data Integration とサーバー間のネットワーク対話の数を決定し、データ抽出のパフォーマンスを大幅に向上させることができます。 説明 fetchSize の値が大きすぎる (>2048) と、データ同期プロセスでメモリ不足 (OOM) エラーが発生する可能性があります。 | いいえ | 512 |
Writer スクリプトの例
次のコードは、スクリプト構成の例を示しています。詳細については、以下のパラメーターの説明をご参照ください。
{
"type":"job",
"version":"2.0",// バージョン番号。
"steps":[
{
"stepType":"stream",
"parameter":{},
"name":"Reader",
"category":"reader"
},
{
"stepType":"postgresql",// プラグイン名。
"parameter":{
"datasource":"",// データソース。
"column":[// フィールド。
"col1",
"col2"
],
"table":"",// テーブル名。
"preSql":[],// データ同期タスクが実行される前に実行する SQL 文。
"postSql":[],// データ同期タスクが実行された後に実行する SQL 文。
},
"name":"Writer",
"category":"writer"
}
],
"setting":{
"errorLimit":{
"record":"0"// エラーレコードの数。
},
"speed":{
"throttle":true,// throttle が false に設定されている場合、mbps パラメーターは効果がなく、速度制限は無効になります。throttle が true に設定されている場合、速度制限は有効になります。
"concurrent":1, // 同時ジョブの数。
"mbps":"12"// 速度制限のレート。1 mbps は 1 MB/s に相当します。
}
},
"order":{
"hops":[
{
"from":"Reader",
"to":"Writer"
}
]
}
}Writer スクリプトのパラメーター
パラメーター | 説明 | 必須 | デフォルト値 |
datasource | データソースの名前。コードエディタはデータソースの追加をサポートしています。このパラメーターの値は、追加されたデータソースの名前と同じでなければなりません。 | はい | なし |
table | 同期するテーブルの名前。 | はい | なし |
writeMode | インポートモード。insert および copy モードがサポートされています。
| いいえ | insert |
column | データを書き込む送信先テーブルのフィールド。フィールドはカンマ (,) で区切ります。例: | はい | なし |
preSql | データ同期タスクが実行される前に実行する SQL 文。コードレス UI では 1 つの SQL 文しか実行できません。コードエディタは、古いデータをクリアするなど、複数の SQL 文をサポートしています。 | いいえ | なし |
postSql | データ同期タスクが実行された後に実行する SQL 文。コードレス UI では 1 つの SQL 文しか実行できません。コードエディタは、タイムスタンプを追加するなど、複数の SQL 文をサポートしています。 | いいえ | なし |
batchSize | 1 回のバッチで送信するレコードの数。値を大きくすると、Data Integration と PostgreSQL 間のネットワーク対話が大幅に減少し、全体的なスループットが向上します。ただし、この値を高く設定しすぎると、Data Integration プロセスでメモリ不足 (OOM) エラーが発生する可能性があります。 | いいえ | 1,024 |
pgType | PostgreSQL 固有の型を変換するための構成。bigint[]、double[]、text[]、Jsonb、および JSON 型がサポートされています。次のコードは構成例を示しています。 | いいえ | なし |
付録 2:PostgreSQL データソースへの SSL 認証の追加
PostgreSQL SSL 認証ファイル
DataWorks で PostgreSQL データソースの接続を作成または変更する際に、SSL 認証を構成できます。次の表に、SSL 認証に関連する設定項目を示します。
PostgreSQL データベース | DataWorks PostgreSQL データソース構成 | |||
SSL リンク暗号化 | クライアントベースの暗号化 | ACL の構成 | 設定項目 | 説明 |
有効 | 無効 | 該当なし | トラストストアファイル | オプション。クライアントはこの証明書を使用してサーバーを認証します。
|
有効 | ACL の構成を |
| キーストアファイルと秘密鍵ファイルはオプションです。ACL の構成を
| |
ACL の構成を |
| |||
アクセス制御リスト (ACL) の構成が prefer に設定されている場合、クライアントのコンテンツは強制的に検証されません。
SSL 認証用にファイルが構成されていない場合、通常の接続が使用されます。
SSL 用の認証ファイルを追加する場合は、表の対応する説明をご参照ください。
ACL 構成が
verify-caに設定されている場合、データソースを作成するにはキーストアファイル、秘密鍵ファイル、および秘密鍵パスワードを提供する必要があります。
PostgreSQL SSL 認証ファイルの取得
このセクションでは、ApsaraDB RDS for PostgreSQL インスタンスを例として、SSL 認証証明書を生成します。
トラストストアファイルの取得
トラストストアファイルの取得方法の詳細については、「クラウド証明書で SSL 暗号化を有効にする」をご参照ください。
RDS インスタンスページに移動し、ターゲットリージョンで RDS インスタンスを見つけ、インスタンス ID をクリックしてインスタンス詳細ページに移動します。
次の図に示すように、保護する接続文字列を選択します。
説明パブリックエンドポイントが有効になっている場合、システムは内部エンドポイントとパブリックエンドポイントの両方を表示します。クラウド証明書は 1 つのエンドポイントしか保護できません。パブリックエンドポイントはインターネットに公開されているため、保護することを推奨します。一方、内部エンドポイントは VPC 内でより安全です。内部およびパブリックエンドポイントの表示方法の詳細については、「内部およびパブリックエンドポイントの表示」をご参照ください。
内部とパブリックの両方のエンドポイントを保護するには、「カスタム証明書を使用して SSL 暗号化を有効にする」をご参照ください。
クラウド証明書を構成した後、インスタンスの 実行中のステータスはSSL の変更中に変わります。このプロセスには約 3 分かかります。ステータスが 操作中に変わるまで待ってから続行してください。
c. [CA 証明書のダウンロード] をクリックしてトラストストアファイルを取得します。

ダウンロードした CA 証明書パッケージには 3 つのファイルが含まれています。DataWorks で PostgreSQL データソースを構成する際は、
.pemまたは.p7b拡張子を持つファイルをトラストストアファイルフィールドにアップロードします。キーストアファイル、秘密鍵ファイル、および秘密鍵パスワードの取得と構成
前提条件:クラウド証明書で SSL 暗号化を有効にするまたはカスタム証明書を使用して SSL 暗号化を有効にするの手順を完了し、OpenSSL ツールがインストールされていること。
説明Linux システムにはデフォルトで OpenSSL ツールが含まれています。Windows システムを使用する場合は、OpenSSL パッケージを取得してインストールする必要があります。
キーストアファイル、秘密鍵ファイル、および秘密鍵パスワードの取得と構成方法の詳細については、「クライアント CA 証明書の構成」をご参照ください。
OpenSSL ツールを使用して、自己署名証明書 (ca1.crt) と秘密鍵 (ca1.key) を生成します。
openssl req -new -x509 -days 3650 -nodes -out ca1.crt -keyout ca1.key -subj "/CN=root-ca1"クライアント証明書署名要求 (CSR) ファイル (client.csr) とクライアント秘密鍵 (client.key) を生成します。
openssl req -new -nodes -text -out client.csr -keyout client.key -subj "/CN=<Client username>"このコマンドでは、
-subjパラメーターの後のコモンネーム (CN) の値を、クライアントがデータベースにアクセスするために使用するユーザー名に設定します。クライアント証明書 (client.crt) を生成します。
openssl x509 -req -in client.csr -text -days 365 -CA ca1.crt -CAkey ca1.key -CAcreateserial -out client.crtApsaraDB RDS for PostgreSQL サーバーがクライアント CA 証明書を検証する必要がある場合は、生成された自己署名証明書ファイル
ca1.crtを開きます。証明書の内容をコピーし、[クライアント証明機関からの公開鍵を入力] ダイアログボックスに貼り付けて、クライアント CA 証明書として使用します。
RDS でクライアント CA 証明書を構成した後、クライアント秘密鍵
client.keyをclient.pk8ファイルに変換する必要があります。DataWorks で PostgreSQL データソースを構成する際に、client.pk8ファイルを秘密鍵ファイルフィールドにアップロードします。cp client.key client.pk8秘密鍵パスワードを構成します。
openssl pkcs8 -topk8 -inform PEM -in client.key -outform der -out client.pk8 -v1 PBE-MD5-DES説明秘密鍵パスワードを構成するコマンドを実行すると、パスワードの入力を求められます。パスワードを設定した場合、DataWorks の PostgreSQL データソース構成の [秘密鍵パスワード] フィールドに同じパスワードを使用する必要があります。
PostgreSQL SSL 認証ファイルの設定
証明書ファイルを DataWorks の PostgreSQL データソース構成にアップロードする際は、次の手順に従ってください。
トラストストアファイル:「トラストストアファイルの取得」ステップで取得した
.pemまたは.p7bファイルをアップロードします。キーストアファイル:「クライアント証明書の生成」ステップで取得した
client.crtクライアント証明書ファイルをアップロードします。秘密鍵ファイル:「秘密鍵ファイルの変換」ステップでクライアント証明書の秘密鍵から変換された
client.pk8ファイルをアップロードします。秘密鍵パスワード:「秘密鍵パスワードの構成」ステップで構成したパスワードを入力します。

ACL の構成:RDS インスタンスページに移動し、ターゲットリージョンで ApsaraDB RDS for PostgreSQL インスタンスを見つけ、インスタンス ID をクリックしてインスタンス詳細ページを開きます。 をクリックして設定を変更します。さまざまな SSL 認証方法を選択できます。詳細については、「クライアントに SSL 接続の使用を強制する」をご参照ください。

ACL 認証方法が prefer に設定されている場合、PostgreSQL サーバーはクライアント証明書を強制的に検証しません。
ApsaraDB RDS for PostgreSQL で ACL 認証方法が verify-ca に設定されている場合、DataWorks で PostgreSQL データソースを構成する際に正しいクライアント証明書をアップロードする必要があります。この構成により、サーバーはクライアントの信頼性を検証できます。