転送先 - Amazon Redshift
    • PDF

    転送先 - Amazon Redshift

    • PDF

    記事の要約

    概要

    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されません。

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