転送先 - Amazon Redshift
  • 07 May 2024
  • PDF

転送先 - Amazon Redshift

  • PDF

Article Summary

概要

Amazon Redshiftへデータを転送する設定のヘルプページです。

Amazon RedshiftとTROCCOの活用事例について

TROCCOの製品サイトでは、お客さまの導入事例を紹介しております。
本ヘルプページとあわせてご覧ください。

設定項目

STEP1 基本設定

項目名必須デフォルト値内容
Amazon Redshift接続情報Yes-あらかじめ登録してあるAmazon Redshiftの接続情報から、今回の転送設定に必要な権限を持つものを選択します。
データベースYes-転送先のデータベース名を選択します。
スキーマYes-転送先のスキーマ名を選択します。
テーブルYes-転送先のテーブル名を入力します。
対象テーブルが転送先のデータベース・スキーマ内に存在しない場合は、テーブルが自動的に作成されます。
Amazon S3バケットYes-データ転送時に一時的にデータを保存するためのS3バケット名を指定します。
バケット一覧を読み込むを押すことで、一覧を読み込むこともできます。
Amazon S3キープレフィックスYes-データ転送時に一時的にデータを保存するためのS3パス名を指定します。
転送モードYes追記 (INSERT)転送モードを選択します。
各モードについて、詳しくは後述の転送モードについてを参照ください。

STEP1 詳細設定

詳細設定をクリックすると、設定項目が表示されます。

項目名必須デフォルト値内容
バッチサイズ (KB)Yes16,384バッチサイズを入力します。
転送実行時にOutOfMemoryErrorが発生した場合には、適宜バッチサイズを引き下げてください。

STEP2 出力オプション

項目名デフォルト値詳細
テーブル制約-CREATE TABLE文にテーブル制約を追加可能です。
CREATE TABLE \<table_name\> (\<column1\> <type1\>, \<column2\> \<type2\>, ... , \<テーブル制約\>) \<テーブルオプション\>
テーブルオプション-CREATE TABLE文にテーブルオプションを追加可能です。
CREATE TABLE \<table_name\> (\<column1\> \<type1\>, \<column2\> \<type2\>, ... , \<テーブル制約\>) \<テーブルオプション\>
一時的にAmazon S3に保存されたファイルの削除する-
IAMロール名-AWSアクセスキー・AWSシークレットアクセスキーの代わりにIAMロールを使用可能です。
最大リトライ回数12-
リトライ待ち時間(ミリ秒)1,000-
リトライ待ち時間の最大値(ミリ秒)1,800,000-
マージキーの設定-転送モードでUPSERT (MERGE)を選択したときに設定できます。
マージキー(主キー)扱いとする、値の重複がなく、NULL値も持たないカラムの名前を入力してください。
デフォルトのタイムゾーンUTCtimestamp形式のカラムがあった場合はタイムゾーンを指定可能です。
カラム設定--
ロード前に実行するSQL--
ロード後に実行するSQL--
スキーマに関わる設定が適用される条件

STEP2出力オプションのカラム設定の内容は、テーブルを新規作成する場合にのみ、適用されます。
具体的には、以下の状態でジョブ実行した際に適用されます。

  • 転送先に対象となるテーブルが存在しない場合
  • 転送モードで全件洗い替え (REPLACE)を選んでいる場合
    • この場合、転送のたびに転送先テーブルのスキーマが更新されるため、カラム設定の内容は都度適用されます。

補足事項

転送モードについて

以下の説明はいずれも、転送先に対象となるテーブルがすでに存在する場合の挙動となります。
転送先に対象となるテーブルが存在しない場合は、いずれのモードにおいてもテーブルを新規作成します。

転送モードスキーマ変更トランザクション挙動補足
追記 (INSERT)NoYesテーブルへの追記を以下の通り行います。
  1. 一時テーブルを作成して、データを投入する
  2. 一時テーブルのデータを対象テーブルにINSERTする
追記 (INSERT DIRECT)NoNoテーブルの追記を以下の通り行います。
  1. データを直接対象テーブルにINSERTする
  • 追記 (INSERT)モードに比べて処理時間は短くなりますが、トランザクションは担保されません。
  • そのため転送が途中で失敗した場合、途中まで追加された行が対象テーブルに残ることがあります。
  • 全件洗い替え (TRUNCATE INSERT)NoYesテーブルの洗い替えを以下の通り行います。
    1. 一時テーブルを作成して、データを投入する
    2. 対象テーブルの実データをDELETEして、一時テーブルのデータを対象テーブルにINSERTする
    全件洗い替え (REPLACE)YesYesテーブルの洗い替えを以下の通り行います。
    1. 一時テーブルを作成して、データを投入する
    2. 対象テーブルそのものをDROPして、一時テーブル名を対象テーブル名に変更する
  • 既存テーブルのスキーマは削除され、新しいテーブルのものに更新されます。
  • UPSERT (MERGE)NoYesテーブルへのUPSERTを以下の通り行います。
    1. 一時テーブルを作成して、データを投入する
    2. 一時テーブルのデータを対象テーブルにMERGEする
  • 転送データの各行に関して、マージキーの値が対象テーブルの該当列に存在した場合、その行は更新されます。存在しなかった場合、その行は追記されます。
  • マージキーの値に重複があったりNULL値が含まれていたりする場合、正しくUPSERTされません。

  • この記事は役に立ちましたか?