ページの先頭行へ戻る
Interstage Data Effector 導入・運用ガイド
Interstage

D.3.1 analyze用動作環境ファイル

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


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

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


注意

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

  • パラメタ名は行の先頭から記述してください。


パラメタ

省略

説明

InFile

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

SkipHeader

入力ファイルの見出し行の扱いを指定します。
  0 : 見出し行を読み飛ばさない
  1 : 見出し行を読み飛ばす
入力ファイルタイプがCSVの場合に有効です。
本パラメタを省略した場合、0が指定されたとみなします。

OutFile

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

WorkFolder

一時ファイルを格納する作業ディレクトリを指定します。(注)
本パラメタを省略した場合は、集計条件ファイルのMemorySizeパラメタの指定によって動作が異なります。

LogFile

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

ParallelNum

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

QuotationMarkMode

出力データの中の文字列値を、二重引用符(")で括るかどうかを指定します。
  0 : 二重引用符(")で括る
  1 : 二重引用符(")で括らない
入力ファイルタイプがCSVの場合に有効です。
本パラメタを省略した場合、0が指定されたとみなします。

FieldSeparator

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

FieldSeparatorMode

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

ErrFile

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

Function

ユーザーが定義した関数(ユーザー定義関数)を使ってデータを処理する場合に指定します。
本パラメタを省略した場合、ユーザー定義関数を記述しても構文エラーとなります。

OutLineFeedCode

出力データにおける、レコード終端の改行コードの取り扱いを指定します。

  LF : Lf(0x0A)

  CRLF : Cr(0x0D)Lf(0x0A)

本パラメタを省略した場合、Windows では“CRLF”、 Linux/Solaris では “LF”が指定されたとみなします。
ただし、入力データの内容(XMLの要素やCSVの項目内容など)にある改行コードは対象外で、入力データ中と同じ改行文字が出力されます。

PathNameCompatibility

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

注) ファイル名またはディレクトリ名に特殊な文字を指定した場合の扱いについては、“2.9.3 パス名に指定する特殊な文字の扱い”を参照してください。


InFile

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

図D.21 入力ファイルタイプがCSVの場合


図D.22 入力ファイルタイプがXMLの場合

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

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

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

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

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

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

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

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

注意

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

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

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


SkipHeader

入力ファイルタイプがCSVの場合、入力ジャーナルファイルの見出し行の扱いを指定します。

0: 見出し行を読み飛ばさない。

1: 見出し行を読み飛ばす。

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

注意

  • 本パラメタは、入力ファイルタイプがCSVの場合だけ有効です。

  • 本パラメタは、スキーマ情報ファイルが指定されている場合だけ有効です。指定されていない場合、先頭行は読み飛ばしません。

  • 本パラメタは、すべての入力ファイルに対して有効になります。そのため、見出し行のある入力ファイルと、見出し行のない入力ファイルが混在している場合には使用できません。見出し行のない入力ファイルを指定した場合、先頭行を見出し行とみなして読み飛ばします。


OutFile

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

図D.23 入力ファイルタイプがCSVの場合


図D.24 入力ファイルタイプがXMLの場合


出力ファイル名

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

出力ファイルタイプがCSVの場合で見出し行とデータ行を分けて出力したいときは、スキーマ情報ファイルと物理ファイル名に分けて指定してください。

注意

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

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

指定例

出力先

スキーマ情報ファイル

物理ファイル

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

指定したファイル

指定したファイル

;物理ファイル名

作成されない

指定したファイル

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

指定したファイル

標準出力

;

作成されない

標準出力

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


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

注意

名前付きパイプの扱い

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

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

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

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

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


WorkFolder

集計処理において一時的に使用するファイル(以降、一時ファイルと呼びます)を格納する作業ディレクトリを指定します。

指定した作業ディレクトリ配下に、一時ファイルが作成されます。一時ファイルは、集計処理実行後に削除されます。

WorkFolderパラメタを指定するときは、集計条件ファイルのMemorySizeパラメタと組み合わせて指定することを推奨します。その場合の動作を以下に示します。なお、以下の説明ではMemorySizeパラメタは指定されているとします。

WorkFolderパラメタ

動作

指定あり

集計条件ファイルのMemorySizeパラメタに指定されたメモリを優先して使用する。
それ以上が必要になった場合は、WorkFolderパラメタに指定した作業ディレクトリ配下の一時ファイル(注1)を使用する。

指定なし

(省略時)

集計条件ファイルのMemorySizeパラメタに指定されたメモリを優先して使用する。
それ以上が必要になった場合は、OSで設定されている一時ディレクトリ(注2)配下の一時ファイル(注1)を使用する。

注1)作成される一時ファイルの命名規約は、以下です。

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

注2)OSで設定されている以下の一時ディレクトリを利用します。その配下に、上記一時ファイルを作成します。

OS

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

Windows

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

Linux

/tmpディレクトリ

Solaris

/tmpディレクトリ


注意

  • WorkFolderパラメタに指定した作業ディレクトリには、入力ファイルの合計サイズ以上の空き容量が必要です。

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

  • WorkFolderパラメタを指定し、集計条件ファイルのMemorySizeパラメタを指定しない場合、指定した作業ディレクトリ配下に作成される一時ファイルの命名規約が異なります。詳細については“J.2 AsisSetWorkFolderAnalyze”を参照してください。

ポイント

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


ParallelNum

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

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

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

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


注意

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


QuotationMarkMode

入力ファイルタイプがCSVの場合、出力データの中の文字列値を二重引用符(")で括るかどうかを指定します。

0: 出力データの中の文字列値を、二重引用符(")で括る。

1: 出力データの中の文字列値を、二重引用符(")で括らない。

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

注意

  • 本パラメタに“1”を設定した場合、結果データの文字列値にセパレータ文字や改行が存在しても、二重引用符は設定されません。そのため、その後の処理において、想定したデータとして扱われない場合があります。
    処理対象のデータに、セパレータ文字や改行が存在する場合には、“0”を指定することを推奨します。以下に例を示します。

  • 本パラメタに“1”を設定した場合、結果データの項目に二重引用符(")が存在しても二重引用符(")によるエスケープは設定されません。

  • 本パラメタに“1”を設定した場合、入力ファイルのデータの項目に二重引用符(")が設定されていたときでも、結果データの項目には、二重引用符(")は付加されなくなります。

  • 入力ファイルの区切り文字が半角空白や水平タブの場合、リターン式を指定すると結果データはカンマ区切りで出力されます。このため、入力ファイルのデータにカンマなどが存在している場合に、本パラメタに“1”を指定すると、結果データが想定したデータとして扱われない場合があります。


FieldSeparator

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

区切り文字

指定方法

カンマ

\,

半角空白

\s

水平タブ

\t

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

注意

本パラメタを指定しても出力時の区切り文字は、常にカンマ(,)になります。


FieldSeparatorMode

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

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

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

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


ErrFile

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

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

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

    図D.25 エラーデータ出力の定義

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

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

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

最大出力件数
  • エラーデータの最大出力件数に指定できる値は、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 入力ファイルのエラー処理”のエラーデータ出力ファイルの例を参照してください。


Function

ユーザーが定義した関数(ユーザー定義関数)でデータを処理する場合に指定します。
ユーザー定義関数名、その変換処理を実装したC言語関数名およびライブラリ名を指定します。

本パラメタは、複数個指定できます。最大で256個までです。

本パラメタを省略した場合、ユーザー定義関数を記述しても構文エラーとなります。


図D.26 ユーザー定義関数の定義

ライブラリパス
  • ユーザー定義関数の変換処理を実装したC言語アプリケーションが格納された、実行モジュールのライブラリのパスを指定します。

  • パス名にパス区切り文字が含まれている場合、絶対パスまたはカレントディレクトリからの相対パスとみなします。

  • パス区切り文字が含まれていない場合、OS標準の探索方法に従ってファイルを探します。


ユーザー定義関数名
  • ユーザー定義関数名は、変換処理が実装されたC言語関数名をData Effectorにおいて識別するための名前です。

  • ユーザー定義関数名は、1つの処理内で一意である必要があります。

  • ユーザー定義関数名には、以下の文字から成る1文字以上の文字列を使用してくださいです。ただし、関数名の先頭に、“-”および“.”は指定できません。

表D.4 ユーザー定義関数名に使える文字

!

-

.

0

1

2

3

4

5

6

7

8

9

:

@

A

B

C

D

E

F

G

H

I

J

K

L

M

N

O

P

Q

R

S

T

U

V

W

X

Y

Z

_

`

a

b

c

d

e

f

g

h

I

j

k

l

m

n

o

p

q

r

s

t

u

v

w

x

Y

z


C言語関数名
  • C言語関数名には、ライブラリパスで指定した実行モジュールからエクスポートされているシンボルを指定します。

  • C言語関数名は、C言語に規約に従って作成してください。


参照

ユーザー定義関数の利用方法については、“4.5 ユーザー定義関数を使う”を参照してください。

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

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


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

WindowsWindowsの場合

# 入力ファイル
InFile      "D:\Shunsaku\data\Input.xml"
# 出力ファイル
OutFile      "pipe@\\.\pipe\\named_pipe_Output"
# ログファイル
LogFile      "D:\Shunsaku\log\Analyze.log"
# 改行コードの扱い
OutLineFeedCode     CRLF

SolarisLinuxLinux/Solarisの場合

# 入力ファイル
InFile      /home/shunsaku/Input.xml
# 出力ファイル
OutFile     pipe@/home/shunsaku/data/named_pipe_Output
# ログファイル
LogFile      /home/shunsaku/log/Analyze.log
# 改行コードの扱い
OutLineFeedCode     LF

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

WindowsWindowsの場合

# 入力ファイル
InFile      "D:\Shunsaku\data\Schema.csv;D:\Shunsaku\data\Data1.csv;D:\Shunsaku\data\Data2.csv "
# 入力ファイルの見出し行読飛ばし:なし
SkipHeader          0
# 出力ファイル
OutFile     "pipe@\\.\pipe\\named_pipe_Output"
# ログファイル
LogFile     "D:\Shunsaku\log\Analyze.log"
# 並列数
ParallelNum       2
# CSV形式の引用符の指定:あり
QuotationMarkMode   0
# CSV形式の区切り文字
FieldSeparator     "\s"
# CSV形式の連続した区切り文字の扱い
FieldSeparatorMode  0
# エラーデータ出力ファイル
ErrFile       "D:\Shunsaku\errdata\err.csv"  10
# 改行コードの扱い
OutLineFeedCode     CRLF

SolarisLinuxLinux/Solarisの場合

# 入力ファイル
InFile       /home/shunsaku/Schema.csv;/home/shunsaku/Data1.csv;/home/shunsaku/Data2.csv
# 入力ファイルの見出し行読飛ばし:なし
SkipHeader          0
# 出力ファイル
OutFile      pipe@/home/shunsaku/data/named_pipe_Output
# ログファイル
LogFile      /home/shunsaku/log/Analyze.log
# 並列数
ParallelNum      2
# CSV形式の区切り文字
# CSV形式の引用符の指定:あり
QuotationMarkMode   0
FieldSeparator     "\s"
# CSV形式の連続した区切り文字の扱い
FieldSeparatorMode  0
# エラーデータ出力ファイル
ErrFile        /home/shunsaku/errdata/err.csv  10
# 改行コードの扱い
OutLineFeedCode     LF