ページの先頭行へ戻る
Big Data Integration ServerV1.2.0 加工編導入・運用ガイド
FUJITSU Software

3.6.3 いろいろなソート方法

Data Effectorのソート機能には、以下に示すいろいろなソート方法があります。これらを組み合わせることで、多種多様な業務要件に対応できます。



3.6.3.1 大量データをソートする場合

大量データをソートする場合、マシンのメモリを大量に使用してしまい、他のプロセスの動作に影響が出てしまうことがあります。
ソート処理専用のメモリ量と作業ディレクトリ(一時ファイル)を設定することで、大量データのソート処理ができます。
メモリ量を指定することで、指定した一定のメモリ量の範囲でソート機能が動作します。
さらに、指定したメモリ量を超えると、自動的に一時ファイル使用に切り替わります。

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”


3.6.3.2 見出し行(項目名)の異なるCSVファイルをソートする場合

入力ファイルに、項目数、項目順が統一されていない複数の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","浦和店"

3.6.3.3 見出し行(項目名)のないCSVファイルを扱う場合

データベースのエクスポート機能などを使って抜き出した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”


3.6.3.4 特定の項目だけ出力する場合

ソート結果は入力レコードがそのまま出力されます。ソート結果を編集するにはリターン式を指定します。リターン式を指定することで、任意の項目を出力できます。各リターン項目は“,”で区切ります。リターン項目の指定の後にラベルを記述することで、出力データの項目名を指定できます。


参考

リターン式を指定した場合は、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","川崎店"