使ってみる tRedshiftBulkExec コンポーネント

2016.02.02

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

Redshift Bulk 系コンポーネント
名称 機能
tRedshiftBulkExec COPY コマンドを発行する。
tRedshiftOutputBulk Flow データからファイルを生成し、S3 へアップロードする。
tRedshiftOutputBulkExec Flow データからファイルを生成し、S3 へアップロード後、COPY コマンドを発行する。

tRedshiftBulkExec とは?

try-using-the-tredshiftbulkexec_01

S3 上のファイルをデータソースに、Redshift テーブルへ一括ロードするための COPY コマンドを発行するコンポーネントです。

使ってみる(一例)

try-using-the-tredshiftbulkexec_02

load_target テーブル
id object_key
1 hoge.csv
2 piyo.csv
3 fuga.csv

load_target テーブルからロード対象のオブジェクトキーを取得し、取得オブジェクトキー分 COPY コマンドを発行する。

tAmazonMysqlInput_1

load_target テーブルから object_key を取得します。
出力スキーマとクエリは下記の通りです。

出力スキーマ
COLUMN タイプ
object_key String

クエリ

select object_key from load_target;

tFlowToIterate_1

tAmazonMysqlInput コンポーネントはデータフローとして出力するので反復処理へ変換します。

tRedshiftBulkExec

データベース設定、S3 設定を入力します。

S3 設定内のキーには反復処理される tFlowToIterate_1.object_key を設定します。

  1. tFlowToIterate_1 と入力し
  2. try-using-the-tredshiftbulkexec_03

  3. コード補完(Ctrl + Space)で表示される選択肢から tFlowToIterate_1.object_key を選択することで
  4. try-using-the-tredshiftbulkexec_04

  5. globalMap から取得する実際の式に変換されます。
  6. try-using-the-tredshiftbulkexec_05

まとめ

このコンポーネントはフローデータの入力などは持たず、ただ Redshift に対して COPY コマンドを発行するコンポーネントです。
S3 にアップロードされているデータソースファイルが既にロード可能な状態(文字コードや CSV フォーマットなど)である場合に用いられます。