ページのトップに戻る
Interstage Data Effector ユーザーズガイド

B.4.1 sort用動作環境ファイル

shunsortコマンドに対する入力ファイル、出力ファイルなどを記述します。


実行パラメタの種類と意味

以下に、sort用動作環境ファイルの実行パラメタを示します。

注意

sort用動作環境ファイルの内容はシステムロケールの文字コードで記述してください。


パラメタ

省略

説明

InFile

入力のスキーマ情報ファイルおよび複数の入力ファイルを指定します。
本パラメタは複数行にまたがって定義できます。
本パラメタを省略した場合、標準入力よりデータを読み込みます。

OutFile

出力ファイルを指定します。
本パラメタを省略した場合、標準出力に出力します。指定したファイルがすでに存在する場合は上書きします。

WorkFolder

一時ファイルを格納する作業ディレクトリを指定します。
本パラメタを省略した場合、OSで設定されている一時ディレクトリを利用します。

LogFile

ログファイルを指定します。
本パラメタを省略した場合、ログ出力を行いません。
本パラメタを指定した場合、指定されたログファイルに追記出力します。

ParallelNum

複数の入力ファイルを同時にソートするための並列数を指定します。
本パラメタを省略した場合、1が指定されたとみなします。

FieldSeparator

入力ファイルタイプがCSVの場合、項目間の区切り文字を二重引用符(")で囲んで指定します。
入力ファイルタイプがXMLの場合は指定できません。
本パラメタを省略した場合は、項目間の区切り文字としてカンマ(,)が指定されたとみなします。

FieldSeparatorMode

入力ファイルタイプがCSVの場合、2つ以上の連続した区切り文字の扱いを指定します。
  0:1つの区切り文字を1つの項目間の区切りとして扱う。
  1:2つ以上の連続した区切り文字を1つの項目間の区切りとして扱う。
入力ファイルタイプがXMLの場合は指定できません。
本パラメタを省略した場合、0が指定されたとみなします。

ErrFile

入力ファイル中にエラーデータを検出したときの、エラーデータ出力ファイルを指定します。
また、エラーデータの最大出力件数を指定できます。
入力ファイルタイプがXMLの場合は指定できません。
本パラメタを省略した場合、エラーデータを検出したとき、コマンドが異常終了します。

PathNameCompatibility

出力ファイルの出力方法を指定します。
  0 : 見出し行とデータ行を分ける出力方法
  1 : 見出し行とデータ行を分けない出力方法
出力ファイルタイプがCSVの場合に有効です。
本パラメタを省略した場合、0が指定されたとみなします。


InFile

入力ファイルを指定します。

図B.24 入力ファイルタイプがCSVの場合


図B.25 入力ファイルタイプがXMLの場合

  • 本パラメタを省略した場合、または物理ファイル名を省略した場合は標準入力より入力します。

  • ソート条件ファイルのInFileTypeパラメタがCSVの場合で、スキーマ情報を指定する場合は、スキーマ情報ファイル名と各物理ファイル名をセミコロン(;)で接続します。

  • ソート条件ファイルのInFileTypeパラメタがCSVの場合で、スキーマ情報を指定しない場合は、各物理ファイル名をカンマ(,)で接続します。

  • スキーマ情報を指定した場合、物理ファイル名に指定した各ファイルの先頭行には項目名が記述されていないものとみなし、データとしてソート対象になります。
    スキーマ情報を指定しない場合、物理ファイル名に指定した各ファイルの先頭行には項目名が記述されているものとみなし、先頭行のデータをソート対象にしません。

  • ソート条件ファイルのInFileTypeパラメタがXMLで複数のファイルを指定する場合には、各物理ファイル名をカンマ(,)で接続します。

  • 複数のファイルを指定する場合、カンマ(,)または(;)の前後に改行を記述できます。

  • 本パラメタを複数行に分けて定義する場合や、ファイル名に空白が含まれる場合は、本パラメタに指定する値全体を二重引用符(")で囲う必要があります。

  • 物理ファイル名の先頭に"pipe@"を記述することで、入力ファイルに名前付きパイプを指定できます。

注意

  • スキーマ情報ファイルには、名前付きパイプを指定できません。ファイル名の先頭に"pipe@"を記述してもファイル名の一部と認識します。

  • 入力の物理ファイルに名前付きパイプを指定する場合には、あらかじめ利用者が名前付きパイプを作成する必要があります。ただし、DataEffectorのコマンド間で名前付きパイプを使用する場合は、作成する必要はありません。

  • 複数の物理ファイルに名前付きパイプを指定して並列に処理を実施する場合には、物理ファイルごとに別々の名前付きパイプを指定し、ParallelNumパラメタを指定してください。


OutFile

出力ファイルを指定します。


図B.26 入力ファイルタイプがCSVの場合


図B.27 入力ファイルタイプがXMLの場合

出力ファイル名

出力するファイル名を指定します。
出力ファイル名または物理ファイル名の先頭に"pipe@"を記述することで、名前付きパイプを指定できます。出力ファイルの形式がCSVとなる場合で見出し行とデータ行を分けて出力したいときは、スキーマ情報ファイルと物理ファイル名に分けて指定してください。

注意

スキーマ情報ファイルと物理ファイルの扱い

指定の組合せと出力先を以下に示します。

指定例

出力先

スキーマ情報ファイル

物理ファイル

スキーマ情報ファイル名;物理ファイル名

指定したファイル

指定したファイル

;物理ファイル名

作成されない

指定したファイル

スキーマ情報ファイル名;

指定したファイル

標準出力

;

作成されない

標準出力

見出し行とデータ行に分けて標準出力へ出力することはできません。


スキーマ情報ファイル名と物理ファイル名には、セミコロン(;)を含むことはできません。PathNameCompatibilityパラメタに"1"を指定してセミコロン(;)を指定した場合、セミコロンはファイル名の一部と認識します。

注意

名前付きパイプの扱い

  • スキーマ情報ファイルには、名前付きパイプを指定できません。ファイル名の先頭に"pipe@"を記述してもファイル名の一部と認識します。

  • 出力ファイルに名前付きパイプを指定する場合には、利用者が名前付きパイプを作成する必要ありません。

  • コマンドの実行結果が出力されるまで、名前付きパイプは作成されないため、名前付きパイプが作成されるまでに時間がかかる場合があります。

  • SolarisLinuxOSのコマンドを使用して、Data Effectorのコマンドをキャンセルした場合、名前付きパイプのファイルが残る場合があります。この場合は、必要に応じてファイルを削除してください。

  • PathNameCompatibilityパラメタに"1"を指定して名前付きパイプを指定した場合、"pipe@"はファイル名の一部と認識します。


WorkFolder

ソート処理において一時ファイルを格納する作業ディレクトリを指定します。
指定した作業ディレクトリに、以下の名前の一時ファイルが作成されます。一時ファイルは、ソート処理実行後に削除されます。

一時ファイル名:AsIs.[PID][TID][NO]
[PID]:5桁の数字でプロセスIDを表します。
[TID]:10桁の数字でスレッドIDを表します。
[NO]:3桁の数字です。

本パラメタを省略した場合、以下のOSで設定されている一時ディレクトリを利用します。

OS

設定されている一時ディレクトリ

Windows

環境変数TEMPに設定されているディレクトリ

Linux

/tmpディレクトリ

Solaris

/tmpディレクトリ

注意

OSで設定されている一時ディレクトリが存在しない、または設定されていない場合、作業ディレクトリの指定を省略することはできません。

ポイント

OSで設定されている一時ディレクトリは、他のプロセスからもアクセスされるため、アクセスが集中すると配下の一時ファイルの読み書きが遅くなる可能性があります。
大量のデータをソートする場合など、一時ファイルを使用する可能性が高い場合は、他のプロセスから同時にアクセスされないディスクにWorkFolderパラメタを使って作業ディレクトリを指定してください。


ParallelNum

InFileパラメタで2つ以上の入力ファイルを指定した場合、複数の入力ファイルから同時にソートを行う並列数を指定します。

  • ParallelNumパラメタに指定できる値は、1から128までです。

  • ParallelNumパラメタで指定した並列数が入力ファイル数よりも小さい場合、並列数以上の入力ファイルは、並列数以内の入力ファイルのソートが終わった後に順次、実行されます。

  • ParallelNumパラメタで指定した並列数が入力ファイル数よりも大きい場合、入力ファイルの数が同時にソートを行う並列数となります。


注意

ParallelNumパラメタに2以上を指定した場合、入力ファイルは複数の物理ディスクに分散して配置することで、読込み処理のディスクI/Oの負荷を分散することができ、並列効果を最大限に発揮できます。
そのため、ParallelNumパラメタに指定した並列数と、入力ファイルを配置する物理ディスクの数を同じにすることを推奨します。

FieldSeparator

入力ファイルタイプがCSVの場合、項目間の区切り文字を変更する場合は、新しく区切り文字とする文字を二重引用符(")で囲んで指定します。区切り文字として使用できる文字は、以下のとおりです。

区切り文字

指定方法

カンマ

¥,

半角空白

¥s

水平タブ

¥t

区切り文字として複数指定する場合は、個々の文字列をカンマ(,)で区切って指定します。

注意

本パラメタを指定した場合の出力時の区切り文字は、検索定義ファイルにおけるリターン式の指定によって、以下のように異なります。

リターン式

出力時の区切り文字

指定あり

カンマ

指定なし

入力ファイルと同じ形式


FieldSeparatorMode

入力ファイルタイプがCSVの場合、2つ以上の連続した区切り文字の扱いを指定します。

0:1つの区切り文字を1つの項目間の区切りとして扱う。

1:2つ以上の連続した区切り文字を1つの項目間の区切りとして扱う。

本パラメタを省略した場合、0が指定されたものとみなします。


ErrFile

入力ファイルタイプがCSVの場合、エラーデータ出力ファイルと、エラーデータの最大出力件数を指定します。

  • 本パラメタを指定すると、エラーデータを検索対象外のデータとして扱い、ソート処理を継続します。

  • 本パラメタを省略した場合、エラーデータを検出したとき、検出した時点でコマンドが異常終了します。

    図B.28 エラーデータ出力の定義

エラーデータ出力ファイル名
  • 入力ファイル中にエラーデータを検出したとき、そのエラーデータの情報を出力します。

  • 指定したファイルがすでに存在している場合は、その情報が上書きされます。

  • 入力ファイル中にエラーデータが存在しなかった場合、エラーデータ出力ファイルは作成されません。

最大出力件数
  • エラーデータの最大出力件数に指定できる値は、1から2147483647までです。

  • エラーデータの最大出力件数を指定すると、エラーデータが指定件数分、出力された時点でコマンドが異常終了します。

  • 本パラメタを省略した場合、1000が指定されたものとみなします。

ポイント

入力ファイル名の工夫

ErrFileパラメタを指定した場合、入力ファイル名に半角英数字以外が含まれるとき、エラーデータ出力ファイルに出力される入力ファイル名が、文字化けすることがあります。そのため、入力ファイル名には半角英数字を使うことを推奨します。

入力定義ファイルに指定するファイル名に半角数字で日付情報を付加する例を以下に示します。

WindowsWindowsの場合

InFile    "D:¥Shunsaku¥indata¥売上情報_20080101.csv ,
           D:¥Shunsaku¥indata¥売上情報_20080102.csv ,
           D:¥Shunsaku¥indata¥売上情報_20080103.csv ,
           D:¥Shunsaku¥indata¥売上情報_20080104.csv"

SolarisLinuxLinux/Solarisの場合

InFile   "/home/Shunsaku/data/売上情報_20080101.csv ,
          /home/Shunsaku/data/売上情報_20080102.csv ,
          /home/Shunsaku/data/売上情報_20080103.csv ,
          /home/Shunsaku/data/売上情報_20080104.csv"

参照

エラーデータ出力ファイルの出力例は、“2.1.1.3 入力ファイルのエラー処理”のエラーデータ出力ファイルの例を参照してください。



sort用動作環境ファイル指定例

以下に、sort用動作環境ファイルの実行パラメタを示します。


入力ファイルがXML形式の場合

WindowsWindowsの場合

# 入力ファイル
InFile      "D:¥Shunsaku¥data¥Input.xml "
# 出力ファイル
OutFile     "pipe@¥¥.¥pipe¥¥named_pipe_Output"
# 作業ディレクトリ
WorkFolder   "D:¥Shunsaku¥tmp¥"
# ログファイル
LogFile      "D:¥Shunsaku¥log¥Sort.log"

SolarisLinuxLinux/Solarisの場合

# 入力ファイル
InFile      /home/shunsaku/Input.xml
# 出力ファイル
OutFile      pipe@/home/shunsaku/data/named_pipe_Output
# 作業ディレクトリ
WorkFolder   /home/shunsaku/tmp/
# ログファイル
LogFile      /home/shunsaku/log/Sort.log

入力ファイルがCSV形式の場合

WindowsWindowsの場合

# 入力ファイル
InFile      "D:¥Shunsaku¥data¥Schema.csv;D:¥Shunsaku¥data¥Data1.csv;D:¥Shunsaku¥data¥Data2.csv "
# 出力ファイル
OutFile     "pipe@¥¥.¥pipe¥¥named_pipe_Output"
# 作業ディレクトリ
WorkFolder  "D:¥Shunsaku¥tmp¥"
# ログファイル
LogFile     "D:¥Shunsaku¥log¥Sort.log"
# 並列数
ParallelNum      2
# CSV形式の区切り文字
FieldSeparator     "¥s"
# CSV形式の連続した区切り文字の扱い
FieldSeparatorMode  0
# エラーデータ出力ファイル
ErrFile       "D:¥Shunsaku¥errdata¥err.csv"  10

SolarisLinuxLinux/Solarisの場合

# 入力ファイル
InFile       /home/shunsaku/Schema.csv;/home/shunsaku/Data1.csv;/home/shunsaku/Data2.csv
# 出力ファイル
OutFile      pipe@/home/shunsaku/data/named_pipe_Output
# 作業ディレクトリ
WorkFolder   /home/shunsaku/tmp/
# ログファイル
LogFile      /home/shunsaku/log/Sort.log
# 並列数
ParallelNum      2
# CSV形式の区切り文字
FieldSeparator     "¥s"
# CSV形式の連続した区切り文字の扱い
FieldSeparatorMode  0
# エラーデータ出力ファイル
ErrFile        /home/shunsaku/errdata/err.csv  10