書き込み時にエラーが発生したデータを特定・抽出したい

キーワード:書き込み,エラー,エラーデータ
シナリオ一覧に戻る

概要

書き込み時にエラーが発生したデータを特定・抽出したい場合、例外監視処理・繰り返し(データ件数)処理を使用します。

サンプルプロジェクトの説明

書き込み処理を1件ずつ行い、例外を監視することでエラーデータを特定します。
本スクリプトではCSVファイルによる入出力を使用していますが、入力元および出力先の種類は問いません。データベースへの書き込みにも適用可能です。

処理の流れ

サンプルプロジェクトの処理の流れは以下の通りです。
  1. CSVファイル読み取り処理」で抽出対象のデータを読み取ります。
  2. 繰り返し(データ件数)処理」で入力データの件数分、以下の処理を繰り返します。
    1. 例外監視処理」で例外を監視します。
    2. マッピング処理」で入力データの変換を行います。
    3. CSVファイル書き込み処理」で変換したデータを正常データファイルに書き込みます。
    4. 例外が発生した場合、「CSVファイル書き込み処理」でエラーとなったデータをエラーデータファイルに書き込みます。
実行結果のイメージについて

ポイントとなる機能

名前 説明 ツールパレット上の場所
例外監視処理 対象となる処理の例外を監視し、例外処理を行います。 「基本」-「フロー」-「例外監視」
繰り返し(データ件数)処理 入力データの件数分、処理を繰り返します。 「基本」-「フロー」-「繰り返し(データ件数)」

処理のポイント

繰り返し(データ件数)処理内に例外監視処理を配置することで、エラーが発生しても中断せずに処理を続行します。
また、繰り返し(データ件数)処理のコンポーネント変数「count」を使用して行番号を取得し、エラーデータを特定します。
例外処理内で例外通知処理、break処理などを使用することによって、1件でもエラーが発生した場合に処理を中断することも可能です。

サンプルプロジェクトの使用方法

上記処理を実装したサンプルプロジェクトを用意しています。サンプルプロジェクトを使用する場合の手順は、以下の通りです。

サンプルプロジェクトファイル名 rl_reference_093.zip
  1. サンプルプロジェクトの展開
    サンプルプロジェクトファイル「rl_reference_093.zip」を展開します。

  2. プロジェクトのアップロード
    「rl_reference_093.zip」を展開後に作成される「rl_reference_093プロジェクト」ディレクトリがプロジェクトファイルとなります。
    DataSpider Studioを起動し、マイプロジェクトの画面から[ファイル]-[ローカルからアップロード]で展開したディレクトリ「rl_reference_093プロジェクト」をアップロードしてください。

  3. サンプルデータの準備
    「rl_reference_093.zip」を展開後に作成される「samples」ディレクトリがサンプルデータとなります。
    $DATASPIDER_HOME/server/samplesディレクトリに上書きしてください。

スクリプトの作成手順

プロセスフローおよびデータフローは、「サンプルプロジェクトの説明」のスクリプト画像を参照して適宜設定してください。
  1. デザイナのツールパレット「ファイル」-「CSV」-「CSVファイル読み取り」から、CSVファイル読み取り処理をスクリプトキャンバスに配置します。

  2. デザイナのツールパレット「基本」-「フロー」-「繰り返し(データ件数)」から、繰り返し(データ件数)処理をスクリプトキャンバスに配置します。

  3. デザイナのツールパレット「基本」-「フロー」-「例外監視」から、例外監視処理をスクリプトキャンバスに配置します。

  4. デザイナのツールパレット「変換」-「基本」-「マッピング」から、マッピング処理(「mapping」)をスクリプトキャンバスに配置します。

  5. デザイナのツールパレット「ファイル」-「CSV」-「CSVファイル書き込み」から、CSVファイル書き込み処理をスクリプトキャンバスに配置します。

  6. マッピング処理(「mapping」)のMapperエディタを開き、入力データと行番号をCSVファイル書き込み処理の入力スキーマにマッピングする処理を作成します。

  7. デザイナのツールパレット「変換」-「基本」-「マッピング」から、マッピング処理(「mapping(1)」)をスクリプトキャンバスに配置します。

  8. デザイナのツールパレット「ファイル」-「CSV」-「CSVファイル書き込み」から、CSVファイル書き込み処理をスクリプトキャンバスに配置します。

  9. マッピング処理(「mapping(1)」)のMapperエディタを開き、エラーデータと行番号をCSVファイル書き込み処理の入力スキーマにマッピングする処理を作成します。

  10. スクリプトを実行し、以下の結果になれば成功です。