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

2016.07.07

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

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

tRedshiftOutputBulk とは?

WS000000

データソースの種別は問わず、入力された Flow データからファイルを生成し、S3 へアップロードするコンポーネントです。

使ってみる

データベースから抽出したデータをファイルとして S3 へアップロードしたり……

WS000001

Excel ファイルから読み込んだデータをファイルとして S3 へアップロードしたり……

WS000002

のようにオレンジ色の行リンクを張って使います。

プロパティ

設定する項目は大別して二種類になります。

基本設定

WS000003

生成ファイルの設定
プロパティ名 説明
Data file path at local 作成するファイルのローカルファイルパスを設定します。
Schema データのスキーマ情報(カラム構成)を設定します。
基本的には上流の入力コンポーネントのスキーマが設定されます。
Compress the data file ファイルを GZIP 圧縮するか否かを設定します。
Encrypt ファイルを暗号化するか否かを設定します。
暗号化する場合は表示される入力フィールドに暗号化キーを入力します。
S3 へのアクセス設定
プロパティ名 説明
アクセスキー S3 へ接続するための AccessKeyId を設定します。
シークレットキー S3 へ接続するための SecretAccessKey を設定します。
Bucket ファイルを Put する宛先のバケット名を設定します。
Key Put されるファイルのオブジェクトキーを設定します。

詳細設定

WS000004

生成ファイルの設定
プロパティ名 説明
Field separator 区切り文字を設定します。
Text enclosure 囲み文字を設定します。
Delete local file after putting it to s3 データファイルを S3 へ Put したらローカルファイルを削除するかどうかを設定します。
Create directory if not exists ファイルパスのディレクトリが存在しない場合は作成するかどうかを設定します。
Encoding データファイルの文字コードを設定します。
S3 へのアクセス設定
プロパティ名 説明
Config client S3 接続についての詳細なクライアント設定を入力します。

データファイルアップロード後

基本的にはデータファイルのアップロード後、Redshift へ Copy コマンドを発行することでそれを一括ロードすることを期待しているので tRedshiftBulkExec コンポーネントに繋がることになります。

WS000005

入力コンポーネントから tRedshiftOutputBulk コンポーネントへのサブジョブが成功したら、tRedshiftBulkExec で Copy コマンドを発行するという流れになります。

まとめ

Redshift への Copy コマンド発行を tRedshiftBulkExec で任意のタイミングで実行できるため、複数のデータソースから抽出したデータを同一 Redshift テーブルへ一括ロードしたい場合などに役立ちます。Redshift でロードが可能なファイル形式にしかならないので、思わぬトラブルも防げることでしょう。