--- articleId: 80279a18-03cc-4940-bea3-c48eb614add0 slug: data-destination-postgresql title: 転送先 - PostgreSQL parentCategoryId: 03f04962-e96f-49cb-9c01-d84d025cc41a languageCode: ja --- ## 概要 PostgreSQLへデータを転送する設定のDocsです。 ## 制約 * 特になし ## 設定項目 ### STEP1 基本設定 | 項目名 | 必須 | デフォルト値 | 内容 | | --- | --- | --- | --- | | PostgreSQL接続情報 | Yes | - | あらかじめ登録してある接続情報から、今回の転送設定に必要な権限を持つものを選択します。 | | データベース | Yes | - | 転送先のPostgreSQL上に存在するデータベース名を指定します。| | スキーマ | Yes | public | 転送先のデータベース内に存在するスキーマ名を指定します。
**スキーマ一覧を読み込む**から一覧を読み込むことも可能です。 | | テーブル | Yes | - | 転送先のテーブル名を指定します。
入力したテーブル名が存在しない場合は、転送時に新しくテーブルが作成されます。 | | 転送モード | Yes | - | 転送モードを選択します。詳しくは、[転送モード](/docs/data-destination-postgresql#転送モード)を参照ください。 | | デフォルトのタイムゾーン | Yes | UTC | `timestamp`型のカラムについて、どのタイムゾーンを用いるかを指定します。 | ### STEP2 詳細設定 | 項目名 | 必須 | デフォルト値 | 詳細 | | --- | --- | --- | --- | | 最大リトライ回数 | Yes | 12 | リトライを最大何回まで実行するかを指定します。 | | リトライ待ち時間(ミリ秒) | Yes | 1000 | リトライ時の待ち時間を指定します。 | | リトライ待ち時間の最大値(ミリ秒) | Yes | 1800000 | リトライ時の待ち時間の最大値を指定します。 | | ロード前に実行するSQL | No | - | 転送前に実行されるクエリを記述します。 | | ロード後に実行するSQL | No | - | 転送後に実行されるクエリを記述します。 | ## 転送モード | モード | 詳細 | | --- | --- | | 追記 (INSERT) | テーブルへの**追記**を行います。
はじめに一時テーブルを生成してそこにデータを投入し、次に一時テーブルから転送先テーブルへのINSERTを行います。
そのため、転送が途中で失敗した際に中途半端なデータが転送先テーブルに残ることがありません。
また、転送先テーブルが存在しない場合は自動的にテーブルを作成します。| | 追記 (INSERT DIRECT) | テーブルへの**追記**を行います。
一時テーブル等は作成せず、直接転送先テーブルにデータを投入します。
そのため、転送が途中で失敗した際には中途半端な状態のデータが残る場合があります。
また、転送先テーブルが存在しない場合は自動的にテーブルを作成します。 | | 全件洗い替え (TRUNCATE INSERT) | テーブルの**洗い替え**を行います。
はじめに一時テーブルを生成してそこにデータを投入し、次に一時テーブルから転送先テーブルへのINSERTを行います。
なお、INSERTの直前にDELETEを行うため、洗い替えとなります。
転送先テーブルのindex情報等は**維持されます**。| | 全件洗い替え (REPLACE) | テーブルの**洗い替え**を行います。
はじめに一時テーブルを生成してそこにデータを投入し、これが成功した場合、転送先のテーブルを削除し一時テーブルの名前を変更します。
転送先テーブルのindex情報等は**失われます**。| | UPSERT (MERGE) | テーブルの**UPSERT**を行います。
はじめに一時テーブルを生成し、そこにデータをすべて投入します。
次に転送先テーブルに対して、一時テーブルに**マージキー**の値が存在するレコードを更新し、その後**マージキー**の値が存在しないレコードを挿入します。

なお、UPSERT (MERGE)を選択した場合は、マージキーを入力できます。
マージキーには、値の重複がなく、NULL値も持たないカラムを指定してください。|