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

Avatar
dstn

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

キーワード:書き込み,エラー,エラーデータ

概要

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

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

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

処理の流れ

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

ポイントとなる機能

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

処理のポイント

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

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

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

サンプルプロジェクトのダウンロード 逆引きリファレンス シナリオ093のサンプルプロジェクト
  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ファイル読み取り処理をスクリプトキャンバスに配置します。
    • CSVファイル読み取り処理の設定は、以下のように行います。

      [必須設定]タブ


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

      [必須設定]タブ


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

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

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

      [必須設定]タブ

      [書き込み設定]タブ


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

      マッピングキャンバス



      番号 ロジック名 説明 ツールパレット上の場所
      (1) 単純な繰り返し 指定したノードを繰り返します。 「繰り返し」-「基本」-「単純な繰り返し」
      (2) 数値に変換 入力を数値型へ変換します。 「数値」-「基本」-「数値に変換」
      (3) 数値定数 数値定数を出力します。
      [必須設定]タブの[数値]には「1」と入力します。
      「数値」-「基本」-「数値定数」
      (4) 足し算 二つの入力数値を足して返します。 「数値」-「演算」-「足し算」

      処理のポイント
      • 繰り返し(データ件数)のコンポーネント変数「count」は0から開始されるため、行番号として使用する場合は「count」に1を足してください。
      • 本サンプルでは意図的にエラーを発生させるため、文字データを数値に変換させています。

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

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

      [必須設定]タブ

      [書き込み設定]タブ



      処理のポイント
      • 複数件のエラーデータを出力する場合、[書き込み設定]タブの[追加書き込み]にチェックを入れてください。

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

      マッピングキャンバス



      番号 ロジック名 説明 ツールパレット上の場所
      (1) 数値定数 数値定数を出力します。
      [必須設定]タブの[数値]には「1」と入力します。
      「数値」-「基本」-「数値定数」
      (2) 足し算 二つの入力数値を足して返します。 「数値」-「演算」-「足し算」

      処理のポイント
      • 繰り返し(データ件数)のコンポーネント変数「count」は0から開始されるため、行番号として使用する場合は「count」に1を足してください。

  10. スクリプトを実行し、以下の結果になれば成功です。
    • 正常なデータは「output.csv」に書き込まれます。
    • エラーが発生したデータは「error.csv」に書き込まれます。

コメント

ログインしてコメントを残してください。

Powered by Zendesk