処理を並列に実行したい

Avatar
dstn

処理を並列に実行したい

キーワード:スレッド,並行処理,処理時間短縮

概要

処理を並列に実行し、処理時間の短縮を図りたい場合、スレッド処理を使用します。

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

CSVファイルを読み取り、ファイルの編集と書き出しを並列で実行します。

処理の流れ

サンプルプロジェクトの処理の流れは以下の通りです。
  1. CSVファイル読み取り処理」で入力ファイルを読み取ります。
  2. スレッド処理」で処理を分岐します。
  3. 分岐した処理それぞれで「マッピング処理」でデータ編集を行い、「CSVファイル書き込み処理」で出力ファイルを書き込みます。
  4. スレッド処理」を終了します。
処理が並列に実行されていることは、ログレベル「DEBUG」でスクリプトを実行し、実行ログを参照することで確認できます。

ポイントとなる機能

名前 説明 ツールパレット上の場所
スレッド処理 スレッド開始アイコンからスレッド終了アイコンまでの間の処理をスレッドで実行します。 「基本」-「フロー」-「スレッド」

処理のポイント

スレッド開始前のCSV読み取り処理から、スレッド開始後のマッピングそれぞれにデータフローを引くことができます。

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

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

サンプルプロジェクトのダウンロード 逆引きリファレンス シナリオ050のサンプルプロジェクト
  1. サンプルプロジェクトの展開
    サンプルプロジェクトファイル「rl_reference_050.zip」を展開します。

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

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

スクリプトの作成手順

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

      [必須設定]タブ

      [読み取り設定]タブ


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

    処理のポイント
    • スレッド開始アイコンからスレッド終了アイコンまでの間の処理を並列に実行します。

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

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

      [必須設定]タブ


      [ファイル]には「Output1.csv」を指定します。

      [書き込み設定]タブ



  5. マッピング処理(「mapping」)のMapperエディタを開き、入力元の「ランダム値」に「2」を掛けて「結果値」に出力する処理を作成します。
    • マッピングキャンバスは、以下のように設定します。

      マッピングキャンバス



      番号 ロジック名 説明 ツールパレット上の場所
      (1) 単純な繰り返し 指定したノードを繰り返します。 「繰り返し」-「基本」-「単純な繰り返し」
      (2) 掛け算 二つの入力数値を掛けて返します。 「数値」-「演算」-「掛け算」
      (3) 数値定数 数値定数を出力します。
      [必須設定]タブの[数値]は「2」を設定します。
      「数値」-「基本」-「数値定数」
      (4) 単一行文字列定数 単一行の文字列定数を出力します。
      [必須設定]タブの[一行文字列]は「Output1.csv」を設定します。
      「文字列」-「基本」-「単一行文字列定数」

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

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

      [必須設定]タブ


      [ファイル]には「Output2.csv」を指定します。

      [書き込み設定]タブ



  8. マッピング処理(「mapping(1)」)のMapperエディタを開き、入力元の「ランダム値」を「2」で割って「結果値」に出力する処理を作成します。
    • マッピングキャンバスは、以下のように設定します。

      マッピングキャンバス



      番号 ロジック名 説明 ツールパレット上の場所
      (1) 単純な繰り返し 指定したノードを繰り返します。 「繰り返し」-「基本」-「単純な繰り返し」
      (2) 割り算 上入力数値を下入力数値で割って返します。 「数値」-「演算」-「割り算」
      (3) 数値定数 数値定数を出力します。
      [必須設定]タブの[数値]は「2」を設定します。
      「数値」-「基本」-「数値定数」
      (4) 単一行文字列定数 単一行の文字列定数を出力します。
      [必須設定]タブの[一行文字列]は「Output2.csv」を設定します。
      「文字列」-「基本」-「単一行文字列定数」

  9. スクリプトを実行し、正常終了すれば成功です。

コメント

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

Powered by Zendesk