Data Effectorのソート機能には、以下に示すいろいろなソート方法があります。これらを組み合わせることで、多種多様な業務要件に対応できます。
大量データをソートする場合、マシンのメモリを大量に使用してしまい、他のプロセスの動作に影響が出てしまうことがあります。
ソート処理専用のメモリ量と作業ディレクトリ(一時ファイル)を設定することで、大量データのソート処理ができます。
メモリ量を指定することで、指定した一定のメモリ量の範囲でソート機能が動作します。
さらに、指定したメモリ量を超えると、自動的に一時ファイル使用に切り替わります。
shunsortコマンド利用時は、sort用動作環境ファイルのWorkFolderパラメタとソート条件ファイルのMemorySizeパラメタを指定します。
C API 利用時は、AsisSetEnvSort関数のWorkFolderパラメタとMemorySizeパラメタを指定します。
統合コマンド利用時は、統合定義ファイルの処理条件定義部:SortのWorkFolderタグとMemoryタグを指定します。
shunsortコマンド利用時は、“5.5.2 ソートコマンドの実行例”を参照してください。
C API利用時は、“リファレンス集”の“データのソート”を参照してください。
統合コマンド利用時は、“7.5 統合コマンドの業務例”を参照してください。
参照
指定書式の詳細については、“リファレンス集”の以下を参照してください。
shunsortコマンド利用時は、 “sort用動作環境ファイル”または“ソート条件ファイル”
C API利用時は “AsisSetEnvSort”
統合定義ファイル利用時は、 “処理条件定義部:Sort”
入力ファイルに、項目数、項目順が統一されていない複数のCSVファイルを指定できます。項目名が同じものを同一項目として扱い、合わせてソートを実行します。
項目数、項目順が統一されていない複数のCSVファイルを入力する場合、リターン式を指定する必要があります。
入力ファイル1
"Rcode","Rname","Scode","Sname","Sales","Location","Size" "001","東京","1002","渋谷店","3000","繁華街","150" "004","神奈川","4001","川崎店","5000","駅ビル","120" "002","千葉","2002","浦安店","2000","駅ビル","137" "002","千葉","2001","船橋店","1500","モール","215" "001","東京","1006","品川店","5000","駅中","90" |
入力ファイル2
"Scode","Sname","Sales","Rcode","Rname","Employees","parking" "3001","大宮店","3000","003","埼玉","8","○" "1004","新宿店","9000","001","東京","12","×" "4002","横浜店","8000","004","神奈川","10","○" |
入力ファイル3
"Scode","Sname","Sales" "1001","東京店","12000" "3002","浦和店","2000" |
ソート条件ファイル
ソート式 | $Rcode, val($Sales) DESC |
リターン式 | $Rcode コード, $Rname 地区名, $Sales 売上, $Sname 支店名 |
ソート結果イメージ
"コード","地区名","売上","支店名" "001","東京","9000","新宿店" "001","東京","5000","品川店" "001","東京","3000","渋谷店" "002","千葉","2000","浦安店" "002","千葉","1500","船橋店" "003","埼玉","3000","大宮店" "004","神奈川","8000","横浜店" "004","神奈川","5000","川崎店" ,,"12000","東京店" ,,"2000","浦和店" |
データベースのエクスポート機能などを使って抜き出したCSV形式のファイルには、見出し行(項目名)が付加されていない場合があります。このようなデータだけのファイルも、加工せずにData Effectorでソートできます。
見出し行だけのファイルをスキーマ情報ファイルとして別に定義しておけば、データファイルと合わせて処理します。
例
1つのスキーマ情報ファイルと、1つのCSV形式のデータファイルを入力ファイルとして定義します。
# 入力ファイル InFile /home/Shunsaku/Schema.csv;/home/shunsaku/Data.csv |
shunsortコマンド利用時は、sort用動作環境ファイルのInFileパラメタにスキーマ情報ファイルを指定します。
C API利用時は、AsisExecuteSort関数のInFileパラメタにスキーマ情報ファイルを指定します。
統合コマンド利用時は、統合定義ファイルの処理条件定義部:SortのInFileタグにSchemaFile属性を指定します。
参照
スキーマ情報ファイルの内容については、“2.1.1 CSV形式の場合”を参照してください。
スキーマ情報ファイルの指定方法については、“リファレンス集”の以下を参照してください。
shunsortコマンド利用時は “sort用動作環境ファイル”
C API利用時は“AsisExecuteSort”
統合定義ファイル利用時は、 “処理条件定義部:Sort”
ソート結果は入力レコードがそのまま出力されます。ソート結果を編集するにはリターン式を指定します。リターン式を指定することで、任意の項目を出力できます。各リターン項目は“,”で区切ります。リターン項目の指定の後にラベルを記述することで、出力データの項目名を指定できます。
参考
リターン式を指定した場合は、CSV形式で出力されます。
ラベルに指定した文字列が出力データの見出し行に出力されます。
"Rcode","Rname","Scode","Sname","Sales","Location","Size" "001","東京","1002","渋谷店","3000","繁華街","150" "004","神奈川","4001","川崎店","5000","駅ビル","120" "002","千葉","2002","浦安店","2000","駅ビル","137" "002","千葉","2001","船橋店","1500","モール","215" "001","東京","1006","品川店","5000","駅中","90" "003","埼玉","3001","大宮店","3000","専門店","200" "001","東京","1004","新宿店","9000","百貨店","120" "004","神奈川","4002","横浜店","8000","繁華街","170" "001","東京","1001","東京店","12000","駅中","100" "003","埼玉","3002","浦和店","2000","専門店","95" "002","千葉","2003","千葉店","6000","専門店","250" |
ソート式 | $Rcode, val($Sales) DESC |
リターン式 | $Rcode コード, $Rname 地区名, $Sales 売上, $Sname 支店名 |
"コード","地区名","売上","支店名" "001","東京","12000","東京店" "001","東京","9000","新宿店" "001","東京","5000","品川店" "001","東京","3000","渋谷店" "002","千葉","6000","千葉店" "002","千葉","2000","浦安店" "002","千葉","1500","船橋店" "003","埼玉","3000","大宮店" "003","埼玉","2000","浦和店" "004","神奈川","8000","横浜店" "004","神奈川","5000","川崎店" |