COPYコマンド実行処理

オペレーション名

COPYコマンド実行

機能概要

Amazon RedshiftにCOPYコマンドを実行します。
本コンポーネントが使用するCOPYコマンド仕様については、以下のリンク先ページより参照してください。

データモデル

本コンポーネントのデータモデルはテーブルモデル型です。

プロパティ

変数の使用については、「変数」を参照してください。
基本設定
項目名 必須/省略可 変数の使用 説明 備考
名前 必須 使用不可 スクリプトキャンバス上での名前を入力します。  
必須設定
項目名 必須/省略可 変数の使用 説明 備考
接続先 必須 使用不可 グローバルリソースを選択します。
  • [追加]:
    新規にグローバルリソースを追加します。
  • [一覧の編集]:
    「リソース一覧の編集」画面にて、グローバルリソースの設定を編集することができます。
 
COPYコマンド 必須 使用可 Amazon Redshiftへ発行するCOPY文を入力します。
  • COPYコマンドは「COPY」から始まる必要があります。
  • COPYコマンドで指定されたCREDENTIALSの次の値は「******」でマスキングされて実行ログに出力されます。
    • シークレットアクセスキー[aws_secret_access_key]
    • トークン[token]
    • 暗号化マスターキー[master_symmetric_key]
コマンドが正常終了の場合はCOMMITする 省略可 使用不可 コマンドが正常終了の場合はCOMMITするかどうかを選択します。
  • [チェックあり]:
    COMMITを行います。処理は正常終了となります。
  • [チェックなし]:(デフォルト)
    エラーデータが存在する場合COMMITは行いません。処理は異常終了となります。 エラーデータが存在しない場合はCOMMITを行います。
  • COPYコマンドのMAXERRORオプションを指定することでエラーデータの許容値を設定可能です。
データ処理方式
項目名 必須/省略可 変数の使用 説明 備考
データ処理方式 必須 使用不可 データ処理方式を選択します。
  • [スクリプトの設定を使用する]:(デフォルト)
    スクリプトプロパティの大容量データ処理の設定をアダプタに使用します。
  • [大容量データ処理を行わない]:
    大容量データ処理を行いません。
  • [大容量データ処理を行う]:
    大容量データ処理を行います。
 
コメント
項目名 必須/省略可 変数の使用 説明 備考
コメント 省略可 使用不可 このアダプタの簡単な説明を記述することができます。
説明を記述すると、仕様書に反映させることができます。
 

スキーマ

入力スキーマ

ありません。

出力スキーマ

<?xml version="1.0"?>
<table>
  <row>
    <column>STL_LOAD_ERRORS_userid</column>
    <column>STL_LOAD_ERRORS_slice</column>
    <column>STL_LOAD_ERRORS_tbl</column>
    <column>STL_LOAD_ERRORS_starttime</column>
    <column>STL_LOAD_ERRORS_session</column>
    <column>STL_LOAD_ERRORS_query</column>
    <column>STL_LOAD_ERRORS_filename</column>
    <column>STL_LOAD_ERRORS_line_number</column>
    <column>STL_LOAD_ERRORS_colname</column>
    <column>STL_LOAD_ERRORS_type</column>
    <column>STL_LOAD_ERRORS_col_length</column>
    <column>STL_LOAD_ERRORS_position</column>
    <column>STL_LOAD_ERRORS_raw_line</column>
    <column>STL_LOAD_ERRORS_raw_field_value</column>
    <column>STL_LOAD_ERRORS_err_code</column>
    <column>STL_LOAD_ERRORS_err_reason</column>
  </row>
  <row>
    :
  </row>
</table>
列名 説明 備考
row - 1レコード単位で1つのrowを出力します。  
STL_LOAD_ERRORS_userid エントリを生成したユーザのIDを出力します。  
STL_LOAD_ERRORS_slice エラーが発生したスライスを出力します。  
STL_LOAD_ERRORS_tbl テーブルIDを出力します。  
STL_LOAD_ERRORS_starttime UTCで表されたロードの開始時間を出力します。  
STL_LOAD_ERRORS_session ロードを実行するセッションのセッションIDを出力します。  
STL_LOAD_ERRORS_query クエリIDを出力します。  
STL_LOAD_ERRORS_filename ロードの入力ファイルへの完全なパスを出力します。  
STL_LOAD_ERRORS_line_number ロードファイル内の、エラーが発生した行の番号を出力します。  
STL_LOAD_ERRORS_colname エラーが発生したフィールドを出力します。  
STL_LOAD_ERRORS_type フィールドのデータ型を出力します。  
STL_LOAD_ERRORS_col_length 定義されている場合、列の長さを出力します。  
STL_LOAD_ERRORS_position フィールド内でのエラーの位置を出力します。  
STL_LOAD_ERRORS_raw_line エラーを含む生のロードデータを出力します。  
STL_LOAD_ERRORS_raw_field_value 解析エラーを引き起こす「colname」フィールドの事前解析値を出力します。  
STL_LOAD_ERRORS_err_code エラーコードを出力します。  
STL_LOAD_ERRORS_err_reason エラーの説明を出力します。  

Mapperでのスキーマ読み込み

スキーマは自動で読み込まれます。
詳細については、「スキーマ編集」を参照してください。

大容量データ処理

大容量データ処理に対応しています。

PSPでの使用について

PSPでは使用できません。

使用できるコンポーネント変数

コンポーネント変数名 説明 備考
copy_count COPYに成功したデータ件数が格納されます。
  • デフォルト値はnullです。
copy_query_id クエリIDが格納されます。
  • デフォルト値はnullです。
has_error_data エラーデータの有無が格納されます。
  • デフォルト値はnullです。
  • エラーデータがある場合には「true」、ない場合には「false」が格納されます。
  • 「true」の場合、出力スキーマからデータを出力することを推奨します。
error_data_count エラーデータの件数が格納されます。
  • デフォルト値はnullです。
command_message COPYコマンドの結果メッセージが格納されます。
  • デフォルト値はnullです。
message_category エラー発生時、発生したエラーに対応するメッセージコードのカテゴリが格納されます。
  • デフォルト値はnullです。
message_code エラー発生時、発生したエラーに対応するメッセージコードのコードが格納されます。
  • デフォルト値はnullです。
message_level エラー発生時、発生したエラーに対応するメッセージコードの重要度が格納されます。
  • デフォルト値はnullです。
error_type エラー発生時、発生したエラーの種類が格納されます。
  • デフォルト値はnullです。
  • エラーの種類は、以下のような形式となります。
    例:「java.io.FileNotFoundException」
  • SkyOnDemandのバージョンにより、格納される内容が変わる可能性があります。
error_message エラー発生時、発生したエラーのメッセージが格納されます。
  • デフォルト値はnullです。
  • SkyOnDemandのバージョンにより、格納される内容が変わる可能性があります。
error_trace エラー発生時、発生したエラーのトレース情報が格納されます。
  • デフォルト値はnullです。
  • SkyOnDemandのバージョンや実行するクライアントアプリケーションにより、格納される内容が変わる可能性があります。

エラーデータについて

COPYコマンド実行後、ロードエラーがAmazon RedshiftのSTLテーブル「STL_LOAD_ERRORS」に出力されている場合、エラーデータを出力します。

仕様制限

ありません。

主な例外

例外名 原因 対策
ResourceNotFoundException リソース定義が見つかりませんでした。名前:[] [接続先]が指定されていません。 [接続先]を指定してください。
リソース定義が見つかりませんでした。名前:[<グローバルリソース名>] [接続先]で選択されたリソース定義が見つかりません。 [接続先]で指定したグローバルリソースを確認してください。
InvalidPropertyConfigurationException <プロパティ名>は必須です。 必須のプロパティが入力されていません。 [<プロパティ名>]を指定してください。
COPYコマンドが'COPY'から始まっていません。[<COPYコマンド>] [COPYコマンド]で指定したCOPYコマンドが、「COPY」から始まっていません。 COPYコマンドは「COPY」から始まるように入力してください。
java.sql.SQLException 接続に失敗しました。 Amazon Redshiftへの接続に失敗しました。 グローバルリソースの[URL]を確認してください。
org.postgresql.util.PSQLException 接続は拒絶されました。ホスト名とポート番号が正しいことと、ポストマスタがTCP/IP接続を受け入れていることを調べてください。 Amazon Redshiftに接続できません。 グローバルリソースの[URL]、またはAmazon Redshiftのセキュリティグループの設定を確認してください。
ERROR: Invalid credentials. Must be of the format: credentials 'aws_access_key_id=<access-key-id>;aws_secret_access_key=<secret-access-key>[;token=<temporary-session-token>]' CREDENTIALSが不正な形式です。 COPYコマンドに指定したCREDENTIALSを確認してください。
The AWS Access Key Id you provided does not exist in our records. アクセスキーIDが不正です。 COPYコマンドのCREDENTIALSで指定したアクセスキーIDを確認してください。
The request signature we calculated does not match the signature you provided. シークレットアクセスキーが不正です。 COPYコマンドのCREDENTIALSで指定したシークレットアクセスキーを確認してください。
Access Denied アクセスが拒否されました。 Amazon RedshiftおよびCOPYコマンドのFROMで指定したデータソースに対するアクセス権限を確認してください。
SSL エラー: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target SSL通信に失敗しました。 SkyOnDemand Serverが参照するキーストアに証明書がインポートされているかどうかを確認してください。
証明書のインポート方法については、別途お問い合わせください。
ERROR: relation "<テーブル名>" does not exist テーブルが存在しません。 COPYコマンドで指定したテーブル名を確認してください。
AmazonRedshiftIllegalStateException エラーデータが[<エラーデータの件数>]件存在します。データを確認してください。 COPYコマンドの実行中にロードエラーが発生しました。 エラーデータを確認してください。

注意事項