--- articleId: 9e4e7420-31c6-4806-8e5e-89a87c28836d slug: data-destination-mysql title: 転送先 - MySQL parentCategoryId: 03f04962-e96f-49cb-9c01-d84d025cc41a languageCode: ja --- ## 概要 MySQLへデータを転送する設定のDocsです。 ## 設定項目 ### STEP1 基本設定 | 項目名 | 必須 | デフォルト値 | 内容 | | --- | --- | --- | --- | | MySQL接続情報 | Yes | - | あらかじめ登録してある接続情報から、今回の転送設定に必要な権限を持つものを選択します。 | | データベース名 | Yes | - | 転送先となるMySQLの存在するデータベース名を指定してください。
記入欄の下にあるボタンを押すことでデータベースの一覧を読み込むことも可能です。 | | テーブル | Yes | - | 転送先のテーブル名を入力して下さい。
存在しない場合は転送時に新しく作成されます。 | | 転送モード | Yes | 追記 (`INSERT`) | 後述の[転送モードについて](/docs/data-destination-mysql#転送モードについて)を参照ください。 | ### STEP1 詳細設定 | 項目名 | 必須 | デフォルト値 | 内容 | | --- | --- | --- | --- | | 転送前に実行するクエリ | No | - | MySQLからデータ転送する前に実行したいSQLを入力します。
なお、**転送モード「replace」を選択した場合、このクエリは実行されません。** | | 転送完了後に実行するクエリ | No | - | MySQLからデータ転送完了した後に実行したいSQLを入力します。| ### STEP2 出力オプション | 項目名 | 必須 | デフォルト値 | 内容 | | --- | --- | --- | --- | | 最大リトライ回数 | Yes | 12 | 最大のリトライ回数を指定します。 | | リトライ待ち時間(ミリ秒) | Yes | 1,000 | リトライ時の待ち時間を指定します。 | | リトライ待ち時間の最大値(ミリ秒) | Yes | 1,800,000 | リトライ時の待ち時間の最大値を指定します。 | | デフォルトのタイムゾーン | Yes | `UTC` | デフォルトのタイムゾーンを指定します。 | | カラム設定 | No | - | MySQLにデータを転送する際に用いるデータ型をカラムごとに明示できます。
以下のデータ型から選択できます。| ## 転送モードについて | モード | 方式 | 詳細 | | --- | --- | --- | | `insert` | 追記 | テーブルへの**追記**を行います。
はじめに一時テーブルを生成してそこにデータを投入し、最後に一時テーブルから転送先テーブルへのINSERTを行います。
そのため、転送が途中で失敗した際に中途半端なデータが転送先テーブルに残ることがありません。 | | `insert_direct` | 追記 | テーブルへの**追記**を行います。
一時テーブル等は作成せず、直接データを投入します。
そのため、転送が途中で失敗した際には中途半端な状態のデータが残る場合があります。 | | `truncate_insert` | 洗い替え | テーブルの**洗い替え**を行います。
はじめに一時テーブルを生成してそこにデータを投入し、
最後に一時テーブルから転送先テーブルへのINSERTを行います。なお、INSERTの直前にDELETEを行うため、洗い替えとなります。
転送先テーブルのindex情報等は維持されます。 | | `replace` | 洗い替え | テーブルの**洗い替え**を行います。
はじめに一時テーブルを生成してそこにデータを投入し、
最後に転送先テーブルと一時テーブルのテーブル名を入れ替えることで、転送を完了します。
転送先テーブルのindex情報等は失われます。 | | `merge` | `UPSERT` | テーブルの**UPSERT**を行います。
はじめに一時テーブルを生成し、そこにデータをすべて投入します。
最後に以下の様なクエリを実行し、転送先テーブルに対して ON DUPLICATE KEY UPDATE で主キーによる追記\&更新を行います。
INSERT INTO \ SELECT \* FROM \ UNION ALL SELECT \* FROM \ UNION ALL \.\.\. ON DUPLICATE KEY UPDATE \.\.\.
| | `merge_direct` | `UPSERT` | テーブルの**UPSERT**を行います。
一時テーブル等は作成せず、直接データを投入します。
転送先テーブルに対して ON DUPLICATE KEY UPDATE で主キーによる追記&更新を行います。 |