Sorter によるレコードのソート

Sorter ステージでは、指定したフィールドを使用してレコードをソートできます。

  1. [制御ステージ] の下で、[Sorter] をキャンバスまでドラッグし、データフロー内の配置したい位置にドロップします。
  2. [Sorter] をダブルクリックします。
  3. [追加] をクリックします。
  4. [フィールド名] 列の下矢印をクリックして、ソートするフィールドを選択します。
    注: 使用可能なフィールドのリストは、データフローの以前のステージで使用したフィールドに基づくものです。
  5. [順序] 列で、昇順または降順のいずれでソートするかを選択します。
  6. [タイプ] 列で、フィールドのデータ タイプを選択します。
    注: 入力データが文字列形式でない場合は、[タイプ] 列は無効になります。
    bigdecimal
    小数点以下 38 桁の精度をサポートする数値データ タイプ。高い精度が必要な算術計算で使用されるデータ (特に金融データ) には、このデータ タイプを使用してください。bigdecimal データ タイプは、double データ タイプより正確な計算をサポートします。
    double
    正と負の倍精度数を含む数値データ タイプ。値の範囲は、2-1074 ~ (2-2-52)×21023。指数表記すると、値の範囲は、-1.79769313486232E+308 ~ 1.79769313486232E+308 となります。
    float
    正と負の単精度数を含む数値データ タイプ。値の範囲は、2-149 ~ (2-223)×2127。指数表記すると、値の範囲は、-3.402823E+38 ~ 3.402823E+38 となります。
    integer
    正と負の整数を含む数値データ タイプ。値の範囲は、-231 (-2,147,483,648) ~ 231-1 (2,147,483,647)。
    long
    正と負の整数を含む数値データ タイプ。値の範囲は、-263 (-9,223,372,036,854,775,808) ~ 263-1 (9,223,372,036,854,775,807)。
    string
    文字シーケンス。
  7. ソートの前に、値の前後にある空白スペースを削除するには、[トリム] 列のボックスをチェックします。トリム オプションを使用しても、フィールドの値は変更されません。このオプションは、ソートのためにのみ、値をトリムします。入力データが文字列形式でない場合は、[トリム] 列は無効になります。
  8. [NULL を次の値とみなす] 列で、ソート済みリストにおける null 値の配置として [最大値] または [最小値] を選択します。配置は、[順序] フィールドと [NULL を次の値とみなす] フィールドで選択したオプションの組み合わせによって、以下の表のようになります。
    順序 NULL を次の値とみなす: ソート済みリストにおける null 値の配置
    昇順 最大値 リストの末尾
    昇順 最小値 リストの先頭
    降順 最大値 リストの先頭
    降順 最小値 リストの末尾
  9. 操作を繰り返して、ソートするフィールドをすべて追加します。
  10. [上へ] または [下へ] をクリックして、ソートの順序を必要に応じて変更します。これを使用すると、最初にあるフィールドによってソートし、その結果をさらに別のフィールドでソートできます。
  11. 管理者によって定義されているデフォルトのソート パフォーマンス オプションをオーバーライドする場合は、[詳細設定] をクリックし、[ソート パフォーマンス オプションをオーバーライド] ボックスをチェックして、次のオプションを指定します。
    メモリ内レコードの上限値
    ソートでメモリ内に保持できるデータ行の最大数を指定します。この上限を越えると、ディスクにページングします。デフォルトでは、10,000 レコード未満のソートはメモリ内で行われ、10,000 レコードを越えるソートはディスク ソートとして実行されます。上限値は 100,000 レコードです。通常、メモリ内ソートはディスク ソートよりはるかに速いため、大部分のソートがメモリ内ソートとなり、大規模セットのみがディスクに書き出されるよう、この値を十分大きく設定してください。
    注: 複数のジョブを同時並行で実行する環境では、[メモリ内レコードの上限値] の設定を増やすと、メモリ不足になる可能性が高くなります。
    一時ファイルの最大数
    ソート プロセスで使用できる一時ファイルの最大数を指定します。使用する一時ファイルの数を増やすと、パフォーマンスが向上する可能性があります。ただし、最適なファイル数は Spectrum™ Technology Platform を実行しているサーバーの構成に大きく依存します。さまざまな設定を試して、使用する一時ファイル数の増減がパフォーマンスに与える影響を確認する必要があります。必要になる可能性がある一時ファイルの適切な数を計算するには、次の式を使用します。
    (NumberOfRecords × 2) ÷ InMemoryRecordLimit = NumberOfTempFiles 
    一時ファイルの最大数は 1,000 を超える値にはできないことに注意してください。
    圧縮を有効にする
    一時ファイルをディスクに書き込むときに圧縮します。
    注: 最適なソート パフォーマンスの設定は、サーバーのハードウェア構成によって異なります。それでも一般には、次の式で妥当なソート パフォーマンスが得られます。
    (InMemoryRecordLimit × MaxNumberOfTempFiles ÷ 2) >= TotalNumberOfRecords
  12. [OK] をクリックします。
    注: 必要に応じて、ソート条件を削除するには、行をハイライト表示し、[削除] をクリックします。