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

B.4.2 ソート条件ファイル

shunsortコマンドが動作するにあたっての条件を記述します。


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

以下に、ソート条件ファイルの実行パラメタを示します。


注意

ソート条件ファイルの内容は、CharacterCodeパラメタで指定したデータの文字コードで記述してください。


パラメタ

省略

説明

CharacterCode

ソート対象となる文字列の文字コードを指定します。
本パラメタを省略した場合、UTF-8が指定されたとみなします。

InFileType

入力ファイルタイプを指定します。
本パラメタを省略した場合、CSVが指定されたとみなします。

LCondition

仮想項目機能を使う場合に、仮想項目定義を指定します。
本パラメタは複数行にまたがって定義できます。
詳細は、“B.2.2 連結条件ファイル”の“複数行にまたがるパラメタの定義”を参照してください。
本パラメタを省略した場合、仮想項目機能は使用できません。
仮想項目定義の詳細については、“A.7 仮想項目機能”を参照してください。

OCondition

不可

ソート式を指定します。
1~1024バイトの範囲で指定してください。
ソート式の詳細については、“A.4 ソート式”を参照してください。

RCondition

リターン式を指定します。
1~65535バイトの範囲で指定してください。
リターン式の詳細については、“A.5 リターン式”を参照してください。

本パラメタを省略した場合、入力レコードがそのまま出力されます。

MemorySize

ソート機能で利用するメモリサイズをメガバイト(MB)で指定します。
ソート機能で利用できるメモリ資源の最大サイズを100メガバイト以上で指定してください。
本パラメタを省略した場合、1000メガバイトが設定されたとみなします。

ソート機能で利用するメモリサイズは本パラメタで指定したサイズに加えデータ加工用にメモリを使用します。

SubstituteZeroForEmpty

ソート式に指定する数値演算式における空の扱いを指定します。
本パラメタを省略した場合、NOが指定されたとみなします。


CharacterCode

設定

意味

UTF-8

UTF-8の場合

SHIFT-JIS

Shift-JISの場合

EUC

EUC-JPの場合


InFileType

設定

意味

CSV

CSVの場合

XML

XMLの場合



RCondition

リターン式を指定します。

  • 本パラメタを省略した場合、入力レコードがそのまま出力されます。

  • 本パラメタ省略時、複数のCSVファイルを入力とし、各CSVファイルの見出し行が異なる場合、エラーとなります。

  • 本パラメタを指定した場合、出力形式はCSVとなります。

  • 入力ファイル形式とリターン式の関係は下記となります。


    InFileType

    RCondition

    出力形式

    出力内容

    XML

    省略

    XML

    入力レコード形式

    項目を指定

    CSV

    指定項目

    CSV

    省略

    CSV

    入力レコード形式

    項目を指定

    CSV

    指定項目


MemorySize

ソート機能で利用するメモリサイズをメガバイト(MB)で指定します。

  • ソート処理実行時、指定サイズを超えるメモリが必要となる場合、sort用動作環境ファイルのWorkFolderパラメタで指定した作業ディレクトリに、一時ファイルが作成されます。

  • 本パラメタはソート機能で利用できるメモリ資源の最大サイズを指定してください。ただし、32ビット用Data Effectorの場合、プロセス空間に対して使用可能なメモリサイズよりも小さい値を指定してください。プロセス空間に対して使用可能なメモリサイズよりも大きい値を指定すると、エラーになります。以下に32ビット用Data Effectorの場合、MemorySizeパラメタに指定可能な最大値を示します。


    OS

    MemorySizeパラメタに指定可能な最大値

    Windows

    3072MB

    Linux

    3072MB

    Solaris

    -

注意

  • プロセス空間に対して使用可能なメモリサイズは実行環境にも依存するため、上記の値より小さい値でも、プロセス空間に対して使用可能なメモリサイズの制限でエラーになる場合があります。

  • 本パラメタを省略した場合、1000メガバイトが設定されます。

  • 本パラメタに指定したサイズが、実行する環境の物理メモリサイズよりも大きい場合、実行する環境の物理メモリサイズが設定されます。このとき本コマンドは正常に終了し、以下の警告が出力されます。


出力例

shnde: WARNING: 02007: 
The memory size has exceeded the installing memory.
Memory size = 2500[MB]; Installing memory size = 2007[MB]. (sort)

  • 利用メモリサイズと実行環境のメモリサイズによって、ソート機能で使用するメモリの最大サイズは利用メモリサイズと実行環境のメモリサイズによって、ソート機能で使用するメモリの最大サイズは以下の例のようになります。


    表B.4 使用するメモリの最大サイズの設定例

      

      

      

      

      

    実行環境のメモリサイズ

    MemorySizeパラメタに指定したサイズより実行環境に搭載されたメモリサイズが小さい場合

    (例:物理メモリサイズ256MB)

    MemorySizeパラメタに指定したサイズより実行環境に搭載されたメモリサイズが大きい場合

    (例:物理メモリサイズ7GB)

    利用メモリサイズ

    MemorySizeパラメタを省略

    物理メモリサイズで動作し、MemorySizeパラメタに指定したサイズが搭載メモリサイズを超えた旨のメッセージ(shnde: WARNING: 02007)が出力されます。

    (例:256MBで動作します)

    省略値(1000MB)で動作します。

    MemorySizeパラメタに500を指定する

    物理メモリサイズで動作し、MemorySizeパラメタに指定したサイズが搭載メモリサイズを超えた旨のメッセージ(shnde: WARNING: 02007)が出力されます。

    (例:256MBで動作します)

    指定メモリサイズ(500MB)で動作します。

    MemorySizeパラメタに5000を指定する
    (32ビット用
    Data Effectorの場合)

    プロセス空間のメモリサイズ制限でエラーになります。

    プロセス空間のメモリサイズ制限でエラーになります。

    MemorySizeパラメタに5000を指定する
    (64ビット用
    Data Effectorの場合)

    物理メモリサイズで動作し、MemorySizeパラメタに指定したサイズが搭載メモリサイズを超えた旨のメッセージ(shnde: WARNING: 02007)が出力されます。

    (例:256MBで動作します)

    指定メモリサイズ(5000MB)で動作します。


SubstituteZeroForEmpty

ソート式に指定する数値演算式における空の扱いを指定します。

指定できる値は以下のいずれかです。


設定

意味

YES

数値演算式における算術演算において、空を0とみなして演算します。
また、数値演算式の結果が空となった場合、0を出力します。

NO

数値演算式における算術演算において、演算対象に空が含まれる場合、演算結果はすべて空を返します。
また、数値演算式の結果が空となった場合、何も出力しません。

参照

数値演算式における空の扱いについては、“A.3.2 数値演算式における空の扱い”を参照してください。


ソート条件ファイル指定例

以下に、ソート条件ファイルの実行パラメタを示します。


WindowsWindowsの場合

# 文字コード
CharacterCode  SHIFT-JIS
# 入力ファイルタイプ
InFileType     CSV 
# 仮想項目定義
LCondition	   {
                    $地方コード :=
                        IF      $所在地 == "東京" OR
                                $所在地 == "神奈川" OR
                                $所在地 == "埼玉" THEN 1
                        ELSEIF  $所在地 == "大阪" OR
                                $所在地 == "京都" THEN 2
                        ELSE EMPTY
                        ENDIF
                   }
# ソート式
OCondition	     $地方コード
# リターン式
RCondition	     $地方コード, sum( $売上げ ) 売上げの合計
# 利用可能メモリサイズ
MemorySize  1500
# 数値演算式における空の扱い
SubstituteZeroForEmpty        NO

SolarisLinuxLinux/Solarisの場合

# 文字コード
CharacterCode  EUC
# 入力ファイルタイプ
InFileType     CSV
# 仮想項目定義
LCondition	   {
                    $地方コード :=
                        IF      $所在地 == "東京" OR
                                $所在地 == "神奈川" OR
                                $所在地 == "埼玉" THEN 1
                        ELSEIF  $所在地 == "大阪" OR
                                $所在地 == "京都" THEN 2
                        ELSE EMPTY
                        ENDIF
                   }
# ソート式
OCondition	     $地方コード
# リターン式
RCondition	     $地方コード, sum( $売上げ ) 売上げの合計
# 利用可能メモリサイズ
MemorySize  1500
# 数値演算式における空の扱い
SubstituteZeroForEmpty        NO