アイテム削除処理

オペレーション名

アイテム削除

機能概要

Amazon SimpleDBのドメインを指定してアイテムを削除します。

データモデル

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

プロパティ

変数の使用については、「変数」を参照してください。
基本設定
項目名 必須/省略可 変数の使用 説明 備考
名前 必須 使用不可 スクリプトキャンバス上での名前を入力します。  
入力データ 必須 使用不可 スクリプトキャンバス上にあるコンポーネントを選択します。  
必須設定
項目名 必須/省略可 変数の使用 説明 備考
接続先 必須 使用不可 グローバルリソースを選択します。
  • [追加]:
    新規にグローバルリソースを追加します。
  • [一覧の編集]:
    「リソース一覧の編集」画面にて、グローバルリソースの設定を編集することができます。
 
ドメイン名 必須 使用可 ドメインを指定します。  
オプション設定
項目名 必須/省略可 変数の使用 説明 備考
期待値が一致しない、または存在しない場合エラーにする 省略可 - 期待値が一致しない、または[期待値属性]で指定した属性が存在しない場合エラーにするかどうかを選択します。
  • [チェックあり]:
    入力データで指定した期待値が既存の値と一致しない、または[期待値属性]で指定した属性が存在しない場合エラーになります。
  • [チェックなし]:(デフォルト)
    [期待値属性]は無効になり、入力データで期待値を指定することはできません。
期待値属性 省略可 - 期待値と比較対象となる値が格納されている属性の属性名を選択します。
  • [期待値が一致しない、または存在しない場合エラーにする]にチェックを入れた場合、有効になります。
  • 詳細については、「期待値を指定した削除処理について」を参照してください。
削除に失敗したアイテムをスキップする 省略可 - 削除に失敗したアイテムをスキップして処理を継続するかどうかを選択します。
  • [チェックあり]:
    削除に失敗したアイテムをスキップして削除処理を継続します。
  • [チェックなし]:(デフォルト)
    削除に失敗したアイテムが発生した場合、エラーとして削除処理を終わらせます。
 
削除に失敗したアイテムを結果データで出力する 省略可 - 削除に失敗したアイテムを結果データで出力するかどうかを選択します。
  • [チェックあり]:
    削除に失敗したアイテムを、「出力スキーマ」にあるテーブルモデル型の結果データで出力します。
  • [チェックなし]:(デフォルト)
    結果データは出力しません。
  • [削除に失敗したアイテムをスキップする]にチェックを入れた場合、有効になります。
  • チェックを入れたアイテム削除処理で、削除に失敗したアイテムが存在しない場合、空のテーブルモデル型の結果データを出力します。
  • チェックを入れたアイテム削除処理から後続の処理にデータフローが引かれている場合、チェックを外してもデータフローは削除されません。この場合、手動でデータフローを削除してください。
プロパティアクション
項目名 説明 備考
期待値属性を取得 アイテムの選択ダイアログを起動して[アイテム]で指定した属性名の一覧を表示し、属性名を[期待値属性]の一覧にセットします。
  • [アイテム]の一覧に表示される件数は最大で500件になります。
  • 対象のアイテム名が[アイテム]の一覧にない場合、直接入力することで属性名の一覧を表示することが可能です。
  • [期待値が一致しない、または存在しない場合エラーにする]にチェックを入れた場合、有効になります。
データ処理方式
項目名 必須/省略可 変数の使用 説明 備考
データ処理方式 必須 使用不可 データ処理方式を選択します。
  • [スクリプトの設定を使用する]:(デフォルト)
    スクリプトプロパティの大容量データ処理の設定をアダプタに使用します。
  • [大容量データ処理を行わない]:
    大容量データ処理を行いません。
  • [大容量データ処理を行う]:
    大容量データ処理を行います。
  • [削除に失敗したアイテムを結果データで出力する]にチェックが入って削除に失敗したアイテムが存在する場合、「出力スキーマ」にあるテーブルモデル型の結果データで出力します。
コメント
項目名 必須/省略可 変数の使用 説明 備考
コメント 省略可 使用不可 このアダプタの簡単な説明を記述することができます。
説明を記述すると、仕様書に反映させることができます。
 

スキーマ

入力スキーマ

<?xml version="1.0" ?>
<table>
  <row>
    <column>アイテム名</column>
    <column><期待値属性名>_expected</column>  ← [期待値が一致しない、または存在しない場合エラーにする]にチェックを入れた場合、出現します。<期待値属性>は[期待値属性]で選択した属性名になります。
  </row>
  <row>
    :
  </row>
</table>

出力スキーマ

[削除に失敗したアイテムを結果データで出力する]にチェックが入って削除に失敗したアイテムが存在する場合、以下のスキーマで結果データを出力します。
<?xml version="1.0" ?>
<table>
  <row>
    <column>削除に失敗したアイテムの入力スキーマ</column>
    :
    <column>エラーメッセージ</column>
    <column>エラーコード</column>
    <column>ステータスコード</column>
  </row>
  <row>
    :
  </row>
</table>

Mapperでのスキーマ読み込み

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

大容量データ処理

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

トランザクション

トランザクションはサポートしていません。

PSPでの使用について

PSPで使用できます。
PSPについては、「パラレルストリーミング処理」を参照してください。

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

コンポーネント変数名 説明 備考
count 削除処理でエラーが発生しなかったアイテムの件数が格納されます。
  • デフォルト値はnullです。
error_code エラー(AmazonServiceException)発生時、発生したエラーに対応する Amazon Web Servicesのエラーコードが格納されます。
  • デフォルト値はnullです。
status_code エラー(AmazonServiceException)発生時、通信時のHTTPステータスコードが格納されます。
  • デフォルト値はnullです。
error_count エラーが発生したアイテムの件数が格納されます。
  • デフォルト値はnullです。
  • [削除に失敗したアイテムをスキップする]にチェックを入れた場合、スキップしたアイテムの件数が格納されます。
message_category エラー発生時、発生したエラーに対応するメッセージコードのカテゴリが格納されます。
  • デフォルト値はnullです。
message_code エラー発生時、発生したエラーに対応するメッセージコードのコードが格納されます。
  • デフォルト値はnullです。
message_level エラー発生時、発生したエラーに対応するメッセージコードの重要度が格納されます。
  • デフォルト値はnullです。
error_type エラー発生時、発生したエラーの種類が格納されます。
  • デフォルト値はnullです。
  • エラーの種類は、以下のような形式となります。
    例:「java.io.FileNotFoundException」
  • DataSpider Servistaのバージョンにより、格納される内容が変わる可能性があります。
error_message エラー発生時、発生したエラーのメッセージが格納されます。
  • デフォルト値はnullです。
  • DataSpider Servistaのバージョンにより、格納される内容が変わる可能性があります。
error_trace エラー発生時、発生したエラーのトレース情報が格納されます。
  • デフォルト値はnullです。
  • DataSpider Servistaのバージョンや実行するクライアントアプリケーションにより、格納される内容が変わる可能性があります。

期待値を指定した削除処理について

[期待値が一致しない、または存在しない場合エラーにする]にチェックを入れた場合、楽観的並行性制御を実現することができます。
楽観的並行性制御は、排他制御は行わず、削除処理前に対象の値を読み取り、削除処理時は読み取った値と同じ値であることを条件として設定し、 値が異なれば他から更新されたとみなし削除処理は行わない(エラーになる)という機能です。

アイテム削除処理では、入力データで指定した値(期待値)と、[期待値属性]で指定した属性の既存の値が同じ値であることを条件として設定します。期待値の指定は、「入力スキーマ」にある「<期待値属性名>_expected」カラムに値をマッピングすることで可能です。

例: Amazon SimpleDBに格納されているアイテムで削除フラグが立っていたら削除する処理を、スクリプトAとスクリプトBで並行して実行した場合

仕様制限

  • アイテムの選択ダイアログ」に表示される[属性一覧]の順序は保証されません。

  • [期待値が一致しない、または存在しない場合エラーにする]にチェックが入っていない場合、存在しないアイテム名を指定しても削除処理でエラーは発生せず、コンポーネント変数「count」に反映されます。

  • 削除処理でエラーが発生した場合、それまでに削除したアイテムはロールバックされません。
  • 主な例外

    例外名 原因 対策
    ResourceNotFoundException
    リソース定義が見つかりませんでした。名前:[]
    [接続先]が指定されていません。 [接続先]を指定してください。
    ResourceNotFoundException
    リソース定義が見つかりませんでした。名前:[<グローバルリソース名>]
    [接続先]で選択されたリソース定義が見つかりません。 [接続先]で指定したグローバルリソースを確認してください。
    InvalidPropertyConfigurationException
    <プロパティ名>が指定されていません。
    [<プロパティ名>]が指定されていません。 [<プロパティ名>]を指定してください。
    Status Code: 400, AWS Request ID: XXXXXXXXXXXXXXXX, AWS Error Code: NoSuchDomain, AWS Error Message: The specified domain does not exist [ドメイン名]で指定したドメインが存在しません。 [ドメイン名]で指定したドメイン名を確認してください。
    Status Code: 400, AWS Request ID: XXXXXXXXXXXXXXXX, AWS Error Code: InvalidParameterValue, AWS Error Message: Value (<期待値>) for parameter Value is invalid. Value exceeds maximum length of 1024 期待値のサイズが1024バイトを超えています。 入力データの期待値を確認してください。
    Status Code: 400, AWS Request ID: XXXXXXXXXXXXXXXX, AWS Error Code: MissingParameter, AWS Error Message: The request must contain the parameter ItemName アイテム名が指定されていません。 入力データの1カラム目の値を確認してください。
    Status Code: 400, AWS Request ID: XXXXXXXXXXXXXXXX, AWS Error Code: InvalidParameterValue, AWS Error Message: Value (<アイテム名>) for parameter Item is invalid. Value exceeds max length of 1024 アイテム名のサイズが1024バイトを超えています。 入力データの1カラム目の値を確認してください。
    Status Code: 409, AWS Request ID: XXXXXXXXXXXXXXXX, AWS Error Code: ConditionalCheckFailed, AWS Error Message: Conditional check failed. Attribute (<属性名>) value is (<属性値>) but was expected (<期待値>) 入力データで指定した期待値と既存の値が異なっています。 入力データで指定した期待値を確認してください。また、ほかの処理で既存の値を書き換えた可能性がないか確認してください。
    Status Code: 404, AWS Request ID: XXXXXXXXXXXXXXXX, AWS Error Code: AttributeDoesNotExist, AWS Error Message: Attribute (<属性名>) does not exist [期待値属性]で指定した属性が存在しません。 [期待値属性]で指定した属性が存在するか確認してください。
    Status Code: 400, AWS Request ID: XXXXXXXXXXXXXXXX, AWS Error Code: InvalidParameterValue, AWS Error Message: Value () for parameter Name is invalid. The empty string is an illegal attribute name 属性名が指定されていません。 [期待値属性]を確認してください。
    Status Code: 409, AWS Request ID: XXXXXXXXXXXXXXXX, AWS Error Code: MultiValuedAttribute, AWS Error Message: Attribute (<属性名>) is multi valued. Conditional check can only be performed on a single-valued attribute [期待値属性]で指定した属性に複数の値が格納されています。 [期待値属性]には単一の値が格納されている属性を指定してください。
    Status Code: 400, AWS Request ID: XXXXXXXXXXXXXXXX, AWS Error Code: TooLargeRequest, AWS Error Message: The request is larger than the maximum allowed size of 1048576 リクエストのサイズが1MBを超えています。 入力データを分割してください。
    Status Code: 403, AWS Request ID: XXXXXXXXXXXXXXXX, AWS Error Code: InvalidClientTokenId, AWS Error Message: The AWS Access Key Id you provided does not exist in our records. [接続先]で指定したグローバルリソースの[アクセスキーID]に誤りがあります。 [接続先]で指定したグローバルリソースの設定を確認してください。
    Status Code: 403, AWS Request ID: XXXXXXXXXXXXXXXX, AWS Error Code: SignatureDoesNotMatch, AWS Error Message: The request signature we calculated does not match the signature you provided. Check your AWS Secret Access Key and signing method. Consult the service documentation for details. [接続先]で指定したグローバルリソースの[シークレットアクセスキー]に誤りがあります。 [接続先]で指定したグローバルリソースの設定を確認してください。
    com.amazonaws.AmazonClientException
    Unable to execute HTTP request: <エンドポイント>
    [接続先]で指定したグローバルリソースの[エンドポイント]に誤りがあります。 [接続先]で指定したグローバルリソースの設定を確認してください。

    注意事項