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 or 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 データの型 |
整数型 | 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 は、設定に基づいて同時データ抽出を使用することもできます。この場合、データ整合性を厳密に保証することはできません。
`splitPk` パラメーターに基づいて PostgreSQL Reader がデータをシャーディングした後、複数の同時タスクを開始してデータを同期します。これらの同時タスクは同じ読み取りトランザクションに属しておらず、それらの間には時間間隔があります。したがって、同期されたデータは単一の一貫したスナップショットからのものではありません。
複数のスレッドにまたがる一貫したスナップショットのための技術的なソリューションは現在利用できません。この問題は、エンジニアリングの観点からのみ対処できます。以下のソリューションにはトレードオフがあり、要件に基づいて選択できます。
データシャーディングなしでシングルスレッド同期を使用します。この方法は遅くなりますが、整合性を保証します。
他のデータライターを無効にして、データが静的であることを保証します。たとえば、テーブルをロックしたり、セカンダリデータベースの同期を無効にしたりできます。この方法は、オンラインサービスに影響を与える可能性があります。
データベースのエンコーディングの問題。
PostgreSQL サーバーは、簡体字中国語に対して EUC_CN および UTF-8 エンコーディングのみをサポートしています。PostgreSQL Reader は、データ抽出に Java Database Connectivity (JDBC) を使用します。JDBC はさまざまなエンコーディングと互換性があり、下位層でエンコーディング変換を実行します。したがって、PostgreSQL Reader はエンコーディングを自動的に検出してトランスコードするため、エンコーディングを指定する必要はありません。
PostgreSQL の基盤となる書き込みエンコーディングが設定されたエンコーディングと一致しない場合、PostgreSQL Reader はこの問題を特定したり、解決策を提供したりできません。その結果、エクスポートされたデータに文字化けが含まれる可能性があります。
増分データ同期の方法。
PostgreSQL Reader は、JDBC SELECT ステートメントを使用してデータを抽出します。これにより、
SELECT…WHERE…を使用して次のように増分データ抽出を行うことができます。オンラインアプリケーションがすべての変更に対して `modify` フィールドにタイムスタンプを設定する場合、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 をカスタマイズできます。このパラメーターが設定されている場合、データ同期システムはテーブル、列、および 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 の設定] を prefer に設定 |
| [キーストア証明書ファイル] と [秘密鍵ファイル] はオプションです。[ACL の設定] を prefer に設定すると、サーバーはクライアントの検証を強制しません。
| |
[ACL の設定] を verify-ca に設定 |
| |||
アクセスコントロールリスト (ACL) 設定が `prefer` に設定されている場合、クライアントコンテンツは強制的に検証されません。
SSL 認証用のファイルが設定されていない場合、通常の接続が使用されます。
SSL 用の認証ファイルを追加する場合は、表の対応する説明をご参照ください。
ACL 設定が `verify-ca` に設定されている場合は、データソースを作成するために [キーストア証明書ファイル]、[秘密鍵ファイル]、および [秘密鍵パスワード] を設定する必要があります。
PostgreSQL SSL 認証ファイルの取得
このセクションでは、ApsaraDB RDS for PostgreSQL インスタンスを例として、SSL 認証証明書を生成します。
[トラストストア証明書ファイル] を取得します。
[トラストストア証明書ファイル] の取得方法の詳細については、「クラウド証明書を使用して SSL 暗号化を迅速に有効にする」をご参照ください。
RDS インスタンスページに移動し、ターゲットリージョンで RDS インスタンスを見つけ、インスタンス ID をクリックしてインスタンス詳細ページに移動します。
次の図に示すように、保護する接続文字列を選択します。
説明パブリックエンドポイントが有効になっている場合、システムは内部エンドポイントとパブリックエンドポイントの両方を表示します。クラウド証明書は 1 つのエンドポイントしか保護できません。パブリックエンドポイントはインターネットに公開されているため、保護することをお勧めします。一方、内部エンドポイントは VPC 内でより安全です。内部エンドポイントとパブリックエンドポイントの表示方法の詳細については、「内部エンドポイントとパブリックエンドポイントの表示」をご参照ください。
内部エンドポイントとパブリックエンドポイントの両方を保護するには、「カスタム証明書を使用して SSL 暗号化を有効にする」をご参照ください。
クラウド証明書を設定した後、インスタンスの [実行中のステータス] は [SSL の変更中] に変わります。このプロセスには約 3 分かかります。続行する前に、ステータスが [実行中] に変わるまで待ちます。
[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` を開きます。証明書の内容をコピーし、[クライアント証明書機関の公開鍵を入力] ダイアログボックスに貼り付けます。

RDS インスタンスでクライアント CA 証明書を設定した後、クライアント秘密鍵ファイル `client.key` を PKCS#8 形式 (`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 インスタンスページに移動し、ターゲットリージョンで RDS インスタンスを見つけ、インスタンス ID をクリックしてインスタンス詳細ページに移動します。 をクリックして設定を変更します。さまざまな SSL 認証方法から選択できます。詳細については、「クライアントに SSL 接続の使用を強制する」をご参照ください。

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