入力となる入力ジャーナルファイル、入力マスタファイルおよびログファイルを定義した動作環境を記述します。
以下に、replace用動作環境ファイルの実行パラメタを示します。
注意
replace用動作環境ファイルの内容は、システムロケールの文字コードで記述してください。
パラメタ名は行の先頭から記述してください。
パラメタ名 | 省略 | 説明 |
---|---|---|
不可 | 入力ジャーナルファイルを指定します。(注) | |
可 | 入力ジャーナルファイルの見出し行の扱いを指定します。 | |
可 | 入力マスタファイルを指定します。(注) | |
可 | 入力マスタファイルの見出し行の扱いを指定します。 | |
可 | 出力ファイルを指定します。指定したファイルがすでに存在する場合は上書きします。(注) | |
LogFile | 可 | ログファイルを指定します。(注) |
可 | 複数の入力ジャーナルファイルを同時に連結するための並列数を指定します。本パラメタを省略した場合、1が指定されたとみなします。 | |
可 | 出力データの中の文字列値を、二重引用符(")で括るかどうかを指定します。 | |
可 | 入力ファイルタイプがCSVの場合、項目間の区切り文字を二重引用符(")で囲んで指定します。 | |
可 | 入力ファイルタイプがCSVの場合、2つ以上の連続した区切り文字の扱いを指定します。 | |
可 | 入力ジャーナルファイルまたは、入力マスタファイル中にエラーデータを検出したときの、エラーデータ出力ファイルを指定します。(注) | |
可 | 入力マスタファイルのレコードと結合されなかった入力ジャーナルファイルのレコードが存在した場合、警告とするか指定します。 | |
可 | ユーザーが定義した関数(ユーザー定義関数)を使ってデータを処理する場合に指定します。 | |
OutLineFeedCode | 可 | 出力データにおける、レコード終端の改行コードの取り扱いを指定します。 LF : Lf(0x0A) CRLF : Cr(0x0D)Lf(0x0A) 本パラメタを省略した場合、Windows では“CRLF”、 Linux/Solaris では “LF”が指定されたとみなします。 |
PathNameCompatibility | 可 | 出力ファイルの出力方法を指定します。 |
注) ファイル名に特殊な文字を指定した場合の扱いについては、“2.9.3 パス名に指定する特殊な文字の扱い”を参照してください。
入力ジャーナルファイルを指定します。
入力ジャーナルファイルの定義は1つだけです。
図D.6 入力ファイルタイプがCSVの場合
図D.7 入力ファイルタイプがXMLの場合
入力ジャーナルファイルに割り当てる任意の名称を設定します。
このJ略称は“D.2.2 連結条件ファイル”のListDefパラメタで使用します。
連結条件ファイルのInFileTypeパラメタがCSVの場合に、入力ジャーナルファイルの項目名を記述したスキーマ情報ファイルを指定します。
スキーマ情報ファイルに標準入力は指定できません。
入力ジャーナルファイルを指定します。物理ファイル名を指定しない場合(""を記述)、標準入力より入力します。
物理ファイル名の先頭に"pipe@"を記述することで、入力ジャーナルファイルに名前付きパイプを指定できます。
注意
スキーマ情報ファイルには、名前付きパイプを指定できません。ファイル名の先頭に"pipe@"を記述してもファイル名の一部と認識します。
入力の物理ファイルに名前付きパイプを指定する場合には、あらかじめ利用者が名前付きパイプを作成する必要があります。ただし、DataEffectorのコマンド間で名前付きパイプを使用する場合は、作成する必要はありません。
複数の物理ファイルに名前付きパイプを指定して並列に処理を実施する場合には、物理ファイルごとに別々の名前付きパイプを指定し、ParallelNumパラメタを指定してください。
入力ファイルタイプがCSVの場合、入力ジャーナルファイルの見出し行の扱いを指定します。
0: 見出し行を読み飛ばさない。
1: 見出し行を読み飛ばす。
本パラメタを省略した場合、0が指定されたものとみなします。
注意
本パラメタは、入力ファイルタイプがCSVの場合だけ有効です。
本パラメタは、スキーマ情報ファイルが指定されている場合だけ有効です。指定されていない場合、先頭行は読み飛ばしません。
本パラメタは、すべての入力ジャーナルファイルに対して有効になります。そのため、見出し行のある入力ジャーナルファイルと、見出し行のない入力ジャーナルファイルが混在している場合には使用できません。見出し行のない入力ファイルを指定した場合、先頭行を見出し行とみなして読み飛ばします。
入力マスタファイルを指定します。入力マスタファイルの定義は複数指定が可能です。
図D.8 入力ファイルタイプがCSVの場合
図D.9 入力ファイルタイプがXMLの場合
注意
入力マスタファイルには、名前付きパイプを指定できません。スキーマ情報ファイル名または物理ファイル名の先頭に"pipe@"を記述してもファイル名の一部と認識します。
入力マスタファイルに割り当てる任意の名称を設定します。
このM略称は“D.2.2 連結条件ファイル”のListDefパラメタで使用します。
入力ファイルタイプがCSVの場合に、マスタの項目名を記述したスキーマ情報ファイルを指定します。
スキーマ情報を指定した場合、入力マスタファイルの先頭からデータであるとみなします。
スキーマ情報ファイルに標準入力は指定できません。
入力マスタファイルを指定します。
入力マスタファイルに標準入力は指定できません。
JnlFileパラメタおよびMstFileパラメタは、複数行にまたがった定義を行うことができます。
改行が可能な位置を以下に示します。
パラメタ名 | 改行可能な位置 |
---|---|
| |
|
入力ファイルタイプがCSVの場合、入力マスタファイルの見出し行の扱いを指定します。
0: 見出し行を読み飛ばさない。
1: 見出し行を読み飛ばす。
本パラメタを省略した場合、0が指定されたものとみなします。
注意
本パラメタは、入力ファイルタイプがCSVの場合だけ有効です。
本パラメタは、スキーマ情報ファイルが指定されている場合だけ有効です。指定されていない場合、先頭行は読み飛ばしません。
本パラメタは、すべての入力マスタファイルに対して有効になります。そのため、見出し行のある入力ファイルと、見出し行のない入力ファイルが混在している場合には使用できません。見出し行のない入力マスタファイルを指定した場合、先頭行を見出し行とみなして読み飛ばします。
出力ファイルを指定します。
図D.10 入力ファイルタイプがCSVの場合
図D.11 入力ファイルタイプがXMLの場合
出力するファイル名を指定します。
出力ファイル名または物理ファイル名の先頭に"pipe@"を記述することで、名前付きパイプを指定できます。入力ファイルタイプがCSVの場合で見出し行とデータ行を分けて出力したいときは、スキーマ情報ファイルと物理ファイル名に分けて指定してください。
注意
スキーマ情報ファイルと物理ファイルの扱い
指定の組合せと出力先を以下に示します。
指定例 | 出力先 | |
---|---|---|
スキーマ情報ファイル | 物理ファイル | |
スキーマ情報ファイル名;物理ファイル名 | 指定したファイル | 指定したファイル |
;物理ファイル名 | 作成されない | 指定したファイル |
スキーマ情報ファイル名; | 指定したファイル | 標準出力 |
; | 作成されない | 標準出力 |
見出し行とデータ行に分けて標準出力へ出力することはできません。
スキーマ情報ファイル名と物理ファイル名には、セミコロン(;)を含むことはできません。PathNameCompatibilityパラメタに"1"を指定してセミコロン(;)を指定した場合、セミコロンはファイル名の一部と認識します。
注意
名前付きパイプの扱い
スキーマ情報ファイルには、名前付きパイプを指定できません。ファイル名の先頭に"pipe@"を記述してもファイル名の一部と認識します。
出力ファイルに名前付きパイプを指定する場合には、利用者が名前付きパイプを作成する必要ありません。
コマンドの実行結果が出力されるまで名前付きパイプは作成されないため、名前付きパイプが作成されるまでに時間がかかる場合があります。
OSのコマンドを使用して、Data Effectorのコマンドをキャンセルした場合、名前付きパイプのファイルが残る場合があります。この場合は、必要に応じてファイルを削除してください。
PathNameCompatibilityパラメタに"1"を指定して名前付きパイプを指定した場合、"pipe@"はファイル名の一部と認識します。
JnlFileパラメタで2つ以上の入力ジャーナルファイルを指定した場合、複数の入力ファイルから同時に連結を行う並列数を指定します。
ParallelNumパラメタに指定できる値は、1から128までです。
ParallelNumパラメタで指定した並列数が入力ジャーナルファイル数よりも小さい場合、並列数以上の入力ジャーナルファイルは、並列数以内の入力ジャーナルファイルの連結が終わった後に順次、実行されます。
ParallelNumパラメタで指定した並列数が入力ジャーナルファイル数よりも大きい場合、入力ジャーナルファイル数が同時に連結を行う並列数となります。
注意
ParallelNumに2以上を指定した場合、入力ジャーナルファイルの連結処理は、JnlFileパラメタに指定した順に並列に行います。そのため、OutFileパラメタに指定した出力ファイルには、複数の入力ジャーナルファイルの連結結果が混在して出力されます。
並列処理時の出力ファイルイメージについては、“図D.1 並列処理時の出力ファイルイメージ”を参照ください。
ParallelNumパラメタに2以上を指定した場合、入力ファイルは複数の物理ディスクに分散して配置することで、読込み処理のディスクI/Oの負荷を分散でき、並列効果を最大限に発揮できます。
そのため、ParallelNumパラメタに指定した並列数と、入力ファイルを配置する物理ディスクの数を同じにすることを推奨します。
入力ファイルタイプがCSVの場合、出力データの中の文字列値を二重引用符(")で括るかどうかを指定します。
0: 出力データの中の文字列値を、二重引用符(")で括る。
1: 出力データの中の文字列値を、二重引用符(")で括らない。
本パラメタを省略した場合、0が指定されたものとみなします。
注意
本パラメタに“1”を設定した場合、結果データの文字列値にセパレータ文字や改行が存在しても、二重引用符は設定されません。そのため、その後の処理において、想定したデータとして扱われない場合があります。
処理対象のデータに、セパレータ文字や改行が存在する場合には、“0”を指定することを推奨します。以下に例を示します。
本パラメタに“1”を設定した場合、結果データの項目に二重引用符(")が存在しても二重引用符(")によるエスケープは設定されません。
本パラメタに“1”を設定した場合、入力ファイルのデータの項目に二重引用符(")が設定されていたときでも、結果データの項目には、二重引用符(")は付加されなくなります。
入力ファイルの区切り文字が半角空白や水平タブの場合、リターン式を指定すると結果データはカンマ区切りで出力されます。このため、入力ファイルのデータにカンマなどが存在している場合に、本パラメタに“1”を指定すると、結果データが想定したデータとして扱われない場合があります。
入力ファイルタイプがCSVの場合、項目間の区切り文字を変更する場合は、新しく区切り文字とする文字を二重引用符(")で囲んで指定します。区切り文字として使用できる文字は、以下のとおりです。
区切り文字 | 指定方法 |
---|---|
カンマ | \, |
半角空白 | \s |
水平タブ | \t |
区切り文字として複数指定する場合は、個々の文字列をカンマ(,)で区切って指定します。
注意
本パラメタを指定しても出力時の区切り文字は、常にカンマ(,)になります。
入力ファイルタイプがCSVの場合、2つ以上の連続した区切り文字の扱いを指定します。
0:1つの区切り文字を1つの項目間の区切りとして扱う。
1:2つ以上の連続した区切り文字を1つの項目間の区切りとして扱う。
本パラメタを省略した場合、0が指定されたものとみなします。
入力ファイルタイプがCSVの場合、エラーデータ出力ファイルと、エラーデータの最大出力件数を指定します。
本パラメタを指定すると、エラーデータを連結対象外のデータとして扱い、連結処理を継続します。
本パラメタを省略した場合、エラーデータを検出したとき、検出した時点でコマンドが異常終了します。
図D.12 エラーデータ出力の定義
入力ジャーナルファイルまたは、入力マスタファイル中にエラーデータを検出したとき、そのエラーデータの情報を出力します。
指定したファイルがすでに存在している場合は、その情報が上書きされます。
入力ファイル中にエラーデータが存在しなかった場合、エラーデータ出力ファイルは作成されません。
エラーデータの最大出力件数に指定できる値は、1から2147483647までです。
エラーデータの最大出力件数を指定すると、エラーデータが指定件数分、出力された時点でコマンドが異常終了します。
本パラメタを省略した場合、1000が指定されたものとみなします。
ポイント
入力ファイル名の工夫
ErrFileパラメタを指定した場合、入力ファイル名に半角英数字以外が含まれるとき、エラーデータ出力ファイルに出力される入力ファイル名が、文字化けすることがあります。そのため、入力ファイル名には半角英数字を使うことを推奨します。
入力定義ファイルに指定するファイル名に半角数字で日付情報を付加する例を以下に示します。
Windowsの場合
JnlFile Journal "D:\Shunsaku\indata\売上情報_20080101.csv ; D:\Shunsaku\indata\売上情報_20080102.csv ; D:\Shunsaku\indata\売上情報_20080103.csv ; D:\Shunsaku\indata\売上情報_20080104.csv" |
Linux/Solarisの場合
JnlFile Journal "/home/Shunsaku/data/売上情報_20080101.csv ; /home/Shunsaku/data/売上情報_20080102.csv ; /home/Shunsaku/data/売上情報_20080103.csv ; /home/Shunsaku/data/売上情報_20080104.csv" |
参照
エラーデータ出力ファイルの出力例は、“2.1.1.3 入力ファイルのエラー処理”のエラーデータ出力ファイルの例を参照してください。
連結処理の結果、入力マスタファイルのレコードと結合されなかった入力ジャーナルファイルのレコードが存在した場合、復帰の扱いを指定します。
0:正常終了させる。
1:警告終了させる。
本パラメタを省略した場合、0が指定されたものとみなします。
ユーザーが定義した関数(ユーザー定義関数)でデータを処理する場合に指定します。
ユーザー定義関数名、その変換処理を実装したC言語関数名およびライブラリ名を指定します。
本パラメタは、複数個指定できます。最大で256個までです。
本パラメタを省略した場合、ユーザー定義関数を記述しても構文エラーとなります。
図D.13 ユーザー定義関数の定義
ユーザー定義関数の変換処理を実装したC言語アプリケーションが格納された、実行モジュールのライブラリのパスを指定します。
パス名にパス区切り文字が含まれている場合、絶対パスまたはカレントディレクトリからの相対パスとみなします。
パス区切り文字が含まれていない場合、OS標準の探索方法に従ってファイルを探します。
ユーザー定義関数名は、変換処理が実装されたC言語関数名をData Effectorにおいて識別するための名前です。
ユーザー定義関数名は、1つの処理内で一意である必要があります。
ユーザー定義関数名には、以下の文字から成る1文字以上の文字列を使用してくださいです。ただし、関数名の先頭に、“-”および“.”は指定できません。
! | - | . | |||||||||||||
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 |
参照
ユーザー定義関数の利用方法については、“4.5 ユーザー定義関数を使う”を参照してください。
以下に、replace用動作環境ファイルの実行パラメタを示します。
入力ファイルがXML形式の場合
Windowsの場合
# 入力ファイル(入力ジャーナルファイル) JnlFile Journal "D:\Shunsaku\data\FactFile1.xml; D:\Shunsaku\data\FactFile2.xml; D:\Shunsaku\data\FactFile3.xml" # 入力ファイル(入力マスタファイル) MstFile { Master1 "D:\Shunsaku\data\NameFile.xml", Master2 "D:\Shunsaku\data\KbnFile.xml" } # 出力ファイル OutFile "pipe@\\.\pipe\named_pipe_Repoutput" # ログファイル LogFile "D:\Shunsaku\log\Replace.log" # 並列数 ParallelNum 3 # ジョイン警告:正常終了 JoinAlert 0 # 改行コードの扱い OutLineFeedCode CRLF |
Linux/Solarisの場合
# 入力ファイル(入力ジャーナルファイル) JnlFile Journal "/home/shunsaku/data/FactFile1.xml; /home/shunsaku/data/FactFile2.xml; /home/shunsaku/data/FactFile3.xml" # 入力ファイル(入力マスタファイル) MstFile { Master1 "/home/shunsaku/data/NameFile.xml", Master2 "/home/shunsaku/data/KbnFile.xml" } # 出力ファイル OutFile pipe@/home/shunsaku/data/named_pipe_Repoutput # ログファイル LogFile /home/shunsaku/log/Replace.log # 並列数 ParallelNum 3 # ジョイン警告:正常終了 JoinAlert 0 # 改行コードの扱い OutLineFeedCode LF |
入力ファイルがCSV形式の場合
Windowsの場合
# 入力ファイル(入力ジャーナルファイル) JnlFile Journal "D:\Shunsaku\data\FactFile1.csv; D:\Shunsaku\data\FactFile2.csv; D:\Shunsaku\data\FactFile3.csv" # 入力ジャーナルファイルの見出し行読飛ばし:なし SkipHeader 0 # 入力ファイル(入力マスタファイル) MstFile { Master1 "D:\Shunsaku\data\NameFile.csv", Master2 "D:\Shunsaku\data\KbnFile.csv" } # 入力マスタファイルの見出し行読飛ばし:なし MstSkipHeader 0 # 出力ファイル OutFile "pipe@\\.\pipe\named_pipe_Repoutput" # ログファイル LogFile "D:\Shunsaku\log\Replace.log" # 並列数 ParallelNum 3 # CSV形式の引用符の指定:あり QuotationMarkMode 0 # CSV形式の区切り文字 FieldSeparator "\s" # CSV形式の連続した区切り文字の扱い FieldSeparatorMode 0 # エラーデータ出力ファイル ErrFile "D:\Shunsaku\errdata\err.csv" 10 # ジョイン警告:正常終了 JoinAlert 0 # 改行コードの扱い OutLineFeedCode CRLF |
Linux/Solarisの場合
# 入力ファイル(入力ジャーナルファイル) JnlFile Journal "/home/shunsaku/data/FactFile1.csv; /home/shunsaku/data/FactFile2.csv; /home/shunsaku/data/FactFile3.csv" # 入力ジャーナルファイルの見出し行読飛ばし:なし SkipHeader 0 # 入力ファイル(入力マスタファイル) MstFile { Master1 "/home/shunsaku/data/NameFile.csv", Master2 "/home/shunsaku/data/KbnFile.csv" } # 入力マスタファイルの見出し行読飛ばし:なし MstSkipHeader 0 # 出力ファイル OutFile pipe@/home/shunsaku/data/named_pipe_Repoutput # ログファイル LogFile /home/shunsaku/log/Replace.log # 並列数 ParallelNum 3 # CSV形式の引用符の指定 QuotationMarkMode 0 # CSV形式の区切り文字 FieldSeparator "\s" # CSV形式の連続した区切り文字の扱い FieldSeparatorMode 0 # エラーデータ出力ファイル ErrFile /home/shunsaku/errdata/err.csv 10 # ジョイン警告:正常終了 JoinAlert 0 # 改行コードの扱い OutLineFeedCode LF |